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

import com.airlock.iam.flow.api.domain.model.step.FlowStep;
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 TermsOfServiceStep extends FlowStep {
   StepResult retrieve();

   StepResult deny();

   StepResult acceptRetrieved();

   enum TermsOfServiceAction implements StepAction {
      TERMS_OF_SERVICES_RETRIEVAL_REQUIRED,
      TERMS_OF_SERVICES_ACCEPT_REQUIRED;
   }

   enum TermsOfServiceError implements StepError {
      TERMS_OF_SERVICES_DENIED;
   }
}
