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

import com.airlock.iam.base.api.domain.model.mapification.MapifiedValues;
import com.airlock.iam.base.domain.model.mapification.MapifiedValuesBuilder;
import com.airlock.iam.flow.api.domain.model.flowcontrol.InteractiveGotoTarget;
import com.airlock.iam.flow.api.domain.model.step.StepId;

public class InteractiveGotoTargetMapificationUtil {
   private static final String STEP_ID_KEY = "stepId";
   private static final String TREATED_AS_FAILURE_KEY = "treatedAsFailure";

   public static InteractiveGotoTarget demapify(MapifiedValues values) {
      return new InteractiveGotoTarget(new StepId(values.get("stepId")), values.<Boolean>get("treatedAsFailure"));
   }

   public static MapifiedValues mapify(InteractiveGotoTarget target) {
      return MapifiedValuesBuilder.mapifiedValues()
         .put("stepId", target.getTargetStepId().stepId())
         .put("treatedAsFailure", target.isTreatedAsFailure())
         .build();
   }
}
