AdditionalSkillDatabaseRepository.java

package fr.avenirsesr.portfolio.additionalskill.infrastructure.adapter.repository;

import fr.avenirsesr.portfolio.additionalskill.domain.model.AdditionalSkill;
import fr.avenirsesr.portfolio.additionalskill.domain.port.output.repository.AdditionalSkillRepository;
import fr.avenirsesr.portfolio.additionalskill.infrastructure.adapter.mapper.AdditionalSkillMapper;
import fr.avenirsesr.portfolio.additionalskill.infrastructure.adapter.model.AdditionalSkillEntity;
import fr.avenirsesr.portfolio.shared.infrastructure.adapter.repository.GenericJpaRepositoryAdapter;
import java.util.List;
import org.springframework.stereotype.Component;

@Component
public class AdditionalSkillDatabaseRepository
    extends GenericJpaRepositoryAdapter<AdditionalSkill, AdditionalSkillEntity>
    implements AdditionalSkillRepository {
  private final AdditionalSkillJpaRepository jpaRepository;

  public AdditionalSkillDatabaseRepository(AdditionalSkillJpaRepository jpaRepository) {
    super(
        jpaRepository,
        jpaRepository,
        AdditionalSkillMapper::fromDomain,
        AdditionalSkillMapper::toDomain);
    this.jpaRepository = jpaRepository;
  }

  @Override
  public List<AdditionalSkill> findByPathSegmentsSkillCodeIn(List<String> skillCodes) {
    return jpaRepository.findByPathSegmentsSkillCodeIn(skillCodes).stream()
        .map(AdditionalSkillMapper::toDomain)
        .toList();
  }
}