GestionQueryService.java
package com.licensis.notaire.service;
import com.licensis.notaire.dto.DtoGestionSummary;
import com.licensis.notaire.negocio.GestionDeEscritura;
import com.licensis.notaire.repository.GestionDeEscrituraRepository;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Optional;
@Service
public class GestionQueryService {
private final GestionDeEscrituraRepository repository;
public GestionQueryService(GestionDeEscrituraRepository repository) {
this.repository = repository;
}
@Transactional(readOnly = true)
public Page<DtoGestionSummary> findAll(Pageable pageable) {
return repository.findAll(pageable).map(GestionQueryService::toSummary);
}
@Transactional(readOnly = true)
public Optional<DtoGestionSummary> findById(Integer id) {
return repository.findById(id).map(GestionQueryService::toSummary);
}
@Transactional(readOnly = true)
public Optional<DtoGestionSummary> findByNumero(int numero) {
return repository.findByNumero(numero).map(GestionQueryService::toSummary);
}
private static DtoGestionSummary toSummary(GestionDeEscritura gestion) {
return new DtoGestionSummary(
gestion.getIdGestion(),
gestion.getNumero(),
gestion.getEncabezado(),
gestion.getFechaInicio(),
gestion.getFkIdEstadoDeGestion() != null ? gestion.getFkIdEstadoDeGestion().getNombre() : null,
gestion.getTramiteList() != null ? gestion.getTramiteList().size() : 0);
}
}