FakeSkill.java

package fr.avenirsesr.portfolio.api.infrastructure.adapter.seeder.fake;

import fr.avenirsesr.portfolio.api.domain.model.Skill;
import fr.avenirsesr.portfolio.api.domain.model.SkillLevel;
import fr.avenirsesr.portfolio.api.domain.model.enums.ELanguage;
import java.util.Set;
import java.util.UUID;

public class FakeSkill {
  private static final FakerProvider faker = new FakerProvider();
  private final Skill skill;

  private FakeSkill(Skill skill) {
    this.skill = skill;
  }

  public static FakeSkill of(Set<SkillLevel> skillLevels) {
    return new FakeSkill(
        Skill.create(
            UUID.fromString(faker.call().internet().uuid()),
            "Skill %s".formatted(faker.call().lorem().word()),
            skillLevels));
  }

  public static FakeSkill of(Skill skill, ELanguage language) {
    return new FakeSkill(
        Skill.create(
            skill.getId(),
            String.format("%s %s", skill.getName(), language.getCode()),
            skill.getSkillLevels()));
  }

  public Skill toModel() {
    return skill;
  }
}