package com.airlock.iam.authentication.application.service.airlock2fa;

import com.airlock.iam.airlock2fa.api.domain.model.Airlock2FADeviceId;
import com.airlock.iam.flow.api.domain.model.flow.FlowResult;
import com.airlock.iam.flow.domain.model.flow.FlowProvider;
import com.airlock.iam.flow.shared.domain.model.airlock2fa.Airlock2FADeviceSelectionStep;
import jakarta.inject.Inject;

public class Airlock2FAAuthenticationDeviceSelection {
   private final FlowProvider flow;

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

   public FlowResult selectDevice(Airlock2FADeviceId deviceId) {
      return this.flow.getCurrentOrStartNew().execute(step -> step.selectDevice(deviceId), Airlock2FADeviceSelectionStep.class);
   }
}
