EscrituraService.java
package com.licensis.notaire.service;
import com.licensis.notaire.negocio.Escritura;
import com.licensis.notaire.negocio.Persona;
import com.licensis.notaire.repository.EscrituraRepository;
import com.licensis.notaire.repository.PersonaRepository;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.Optional;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
@Service
@Transactional
public class EscrituraService {
private static final Logger logger = LoggerFactory.getLogger(EscrituraService.class);
private final EscrituraRepository escrituraRepository;
private final PersonaRepository personaRepository;
public EscrituraService(EscrituraRepository escrituraRepository, PersonaRepository personaRepository) {
this.escrituraRepository = escrituraRepository;
this.personaRepository = personaRepository;
}
@Transactional(readOnly = true)
public Page<Escritura> findAllPaged(Pageable pageable) {
return escrituraRepository.findAll(pageable);
}
public List<Escritura> findAll() {
logger.debug("Finding all escrituras");
return escrituraRepository.findAll();
}
@Transactional(readOnly = true)
public Optional<Escritura> findById(Integer id) {
logger.debug("Finding escritura by id: {}", id);
return escrituraRepository.findById(id);
}
public Escritura save(Escritura entity) {
logger.info("Saving escritura with numero: {}", entity.getNumero());
return escrituraRepository.save(entity);
}
public void deleteById(Integer id) {
logger.info("Deleting escritura with id: {}", id);
escrituraRepository.deleteById(id);
}
@Transactional(readOnly = true)
public List<Persona> findEscribanosDisponibles() {
logger.debug("Finding all available escribanos");
return personaRepository.findAllEscribanos();
}
@Transactional(readOnly = true)
public List<Escritura> buscarPorNumero(Integer numero) {
logger.debug("Searching escrituras by numero: {}", numero);
if (numero == null) {
return escrituraRepository.findAll();
}
return escrituraRepository.findByNumero(numero)
.map(List::of)
.orElse(List.of());
}
}