package com.airlock.iam.flow.shared.domain.model.email;

import com.airlock.iam.authentication.api.domain.model.step.AuthenticationFlowStep;
import com.airlock.iam.common.api.domain.model.otp.UnverifiedOtp;
import com.airlock.iam.flow.api.domain.model.step.StepAction;
import com.airlock.iam.flow.api.domain.model.step.StepError;
import com.airlock.iam.flow.api.domain.model.step.StepResult;

public interface EmailVerificationStep extends AuthenticationFlowStep {
   String EMAIL_ADDRESS_ATTRIBUTE = "emailAddress";

   StepResult verifyEmailOtp(UnverifiedOtp var1);

   enum EmailVerificationStepAction implements StepAction {
      EMAIL_OTP_REQUIRED;
   }

   enum EmailVerificationStepError implements StepError {
      EMAIL_OTP_WRONG,
      EMAIL_OTP_EXPIRED;
   }
}
