Institution.java

package fr.avenirsesr.portfolio.api.domain.model;

import fr.avenirsesr.portfolio.api.domain.model.enums.EPortfolioType;
import java.util.Set;
import java.util.UUID;
import lombok.AccessLevel;
import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
public class Institution {
  @Setter(AccessLevel.NONE)
  private final UUID id;

  @Setter(AccessLevel.NONE)
  private final String name;

  private Set<EPortfolioType> enabledFields;

  private Institution(UUID id, String name) {
    this.id = id;
    this.name = name;
  }

  public static Institution create(UUID id, String name) {
    var institution = new Institution(id, name);
    institution.setEnabledFields(Set.of(EPortfolioType.values()));

    return institution;
  }

  public static Institution toDomain(UUID id, String name, Set<EPortfolioType> enabledFields) {
    var institution = new Institution(id, name);
    institution.setEnabledFields(enabledFields);

    return institution;
  }
}