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

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.step.StepId;

public class DynamicStepActivationInformationMapificationUtil {
   private static final String ACTIVATED_KEY = "activated";
   private static final String STEP_ID_KEY = "stepId";
   private static final String ACTIVATABLE_KEY = "activatable";
   private static final String DEACTIVATABLE_KEY = "deactivateable";

   public static MapifiedValues mapify(DynamicStepActivationInformation information) {
      return MapifiedValuesBuilder.mapifiedValues()
         .put("activated", information.isActivated())
         .put("stepId", information.getStepId().stepId())
         .put("activatable", information.isActivatable())
         .put("deactivateable", information.isDeactivatable())
         .build();
   }

   public static DynamicStepActivationInformation demapify(MapifiedValues values) {
      return new DynamicStepActivationInformation(
         new StepId(values.get("stepId")), values.<Boolean>get("activatable"), values.<Boolean>get("deactivateable"), values.<Boolean>get("activated")
      );
   }
}
