package com.airlock.iam.publicselfservice.application.service;

import com.airlock.iam.common.api.domain.model.otp.UnverifiedOtp;
import com.airlock.iam.flow.api.domain.model.flow.FlowResult;
import com.airlock.iam.flow.domain.model.flow.FlowProvider;
import com.airlock.iam.publicselfservice.domain.model.step.MtanIdentityVerificationStep;
import jakarta.inject.Inject;

public class MtanIdentityVerification {
   private final FlowProvider flow;

   @Inject
   public MtanIdentityVerification(FlowProvider flow) {
      this.flow = flow;
   }

   public FlowResult verifyMtanOtp(UnverifiedOtp otp) {
      return this.flow.getCurrentOrStartNew().execute(step -> step.verifyMtanOtp(otp), MtanIdentityVerificationStep.class);
   }
}
