package com.airlock.iam.system.module;

import java.util.Locale;
import java.util.Optional;

public enum IamModule {
   ADMINAPP("Adminapp"),
   LOGINAPP("Loginapp"),
   TRANSACTION_APPROVAL("Transaction Approval"),
   API_POLICY_SERVICE("Api Policy Service"),
   SERVICE_CONTAINER("Service Container"),
   H2("H2");

   private final String displayName;

   IamModule(String displayName) {
      this.displayName = displayName;
   }

   public static Optional<IamModule> fromIdentifier(String identifier) {
      for (IamModule module : values()) {
         if (module.identifier().equalsIgnoreCase(identifier)) {
            return Optional.of(module);
         }
      }

      return Optional.empty();
   }

   public String identifier() {
      return this.name().toLowerCase(Locale.ROOT).replace("_", "-");
   }

   public String displayName() {
      return this.displayName;
   }

   @Override
   public String toString() {
      return this.identifier();
   }
}
