package com.airlock.iam.publicselfservice.domain.model.selection.condition;

import com.airlock.iam.base.api.domain.model.plugin.LogicForConfig;
import com.airlock.iam.flow.api.domain.model.step.FlowCondition;
import com.airlock.iam.publicselfservice.api.domain.model.PublicSelfServiceUser;
import com.airlock.iam.publicselfservice.application.configuration.selection.condition.PublicSelfServiceAllowedConditionConfig;
import jakarta.inject.Inject;
import jakarta.inject.Provider;

@LogicForConfig(PublicSelfServiceAllowedConditionConfig.class)
public class PublicSelfServiceAllowedCondition implements FlowCondition {
   private final Provider<PublicSelfServiceUser> user;

   @Inject
   public PublicSelfServiceAllowedCondition(Provider<PublicSelfServiceUser> user) {
      this.user = user;
   }

   @Override
   public boolean isFulfilled() {
      return ((PublicSelfServiceUser)this.user.get()).isPublicSelfServiceAllowed();
   }

   @Override
   public String displayName() {
      return "Public Self-Service Allowed";
   }
}
