package com.airlock.iam.common.application.configuration.userprofile;

import com.airlock.iam.common.domain.model.user.profileitems.UserProfileItemLogic;

public interface UserProfileItemConfig {
   String PROPERTY_NAME_PROPERTY = "propertyName";
   String SORTABLE_PROPERTY = "sortable";

   UserProfileItemLogic getProfileItemLogic();

   String getPropertyName();

   String getStringResourceKey();

   boolean isOptional();

   boolean isSortable();

   boolean isModifiable();

   boolean isValidateOnlyChangedValues();

   default UserProfileItemConfig.ProfileItemType getItemType() {
      return UserProfileItemConfig.ProfileItemType.STRING;
   }

   enum ProfileItemType {
      BOOLEAN,
      DATE,
      LIST,
      STRING;
   }
}
