Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
0
respuestas

Haga lo que aprendimos en aula en el aula:

@Component
public class ValidadorPacienteSinOtraConsulta implements ValidadorDeConsultas {

@Autowired
private ConsultaRepository repository;

public void validar(DatosConsulta datos) {
    var primerHorario = datos.fecha().withHour(7);
    var ultimoHorario = datos.fecha().withHour(18);

    var pacienteTieneOtraConsultaEnElDia = repository
            .existsByPacienteIdAndMotivoCancelamientoIsNullAndFechaBetween(
                    datos.idPaciente(),






                    primerHorario,
                    ultimoHorario
            );

    if (pacienteTieneOtraConsultaEnElDia) {
        throw new ValidacionException(
                "Paciente ya tiene una consulta reservada para ese dia"
        );
    }
}

}

package med.voll.api.domain.consulta;

import org.springframework.data.jpa.repository.JpaRepository;

import java.time.LocalDateTime;

public interface ConsultaRepository extends JpaRepository<Consulta, Long> {

boolean existsByPacienteIdAndMotivoCancelamientoIsNullAndFechaBetween(
        Long idPaciente,
        LocalDateTime primerHorario,
        LocalDateTime ultimoHorario
);

boolean existsByMedicoIdAndFechaAndMotivoCancelamientoIsNull(
        Long idMedico,
        LocalDateTime fecha
);

}