package com.airlock.iam.common.api.domain.model.user;

import com.airlock.iam.base.api.domain.model.exception.ViolationException;
import org.apache.commons.lang3.StringUtils;

public record RepresenterId(String value) {
   public RepresenterId {
      ViolationException.checkFalse(StringUtils.isBlank(value), "Representer ID must not be null or blank");
      ViolationException.checkFalse(hasLeadingOrTrailingSpaces(value), "Representer ID must not contain leading or trailing spaces");
      ViolationException.checkTrue(value.length() < 100, "Representer ID is too long");
   }

   private static boolean hasLeadingOrTrailingSpaces(String representerId) {
      return !representerId.trim().equals(representerId);
   }

   @Deprecated
   public String getValue() {
      return this.value;
   }

   @Deprecated
   public static RepresenterId representerId(String representerId) {
      return new RepresenterId(representerId);
   }
}
