package com.airlock.iam.publicselfservice.domain.model.mtan;

import com.airlock.iam.common.api.domain.model.user.UserIdentity;
import com.airlock.iam.core.misc.impl.token.MtanItem;
import com.airlock.iam.publicselfservice.api.domain.model.PublicSelfServiceUser;
import jakarta.inject.Inject;
import jakarta.inject.Provider;
import java.util.Optional;

public class PublicSelfServiceUserWithMtan {
   private final Provider<PublicSelfServiceUser> user;
   private final Provider<Optional<MtanItem>> mtanItem;

   @Inject
   public PublicSelfServiceUserWithMtan(Provider<PublicSelfServiceUser> user, Provider<Optional<MtanItem>> mtanItem) {
      this.user = user;
      this.mtanItem = mtanItem;
   }

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

   public UserIdentity getIdentity() {
      return ((PublicSelfServiceUser)this.user.get()).getIdentity();
   }

   public Optional<MtanItem> getMtanItem() {
      return (Optional<MtanItem>)this.mtanItem.get();
   }
}
