Muchas Gracias por la enseñanza. A repasar y seguir adelante...!!
Muchas Gracias por la enseñanza. A repasar y seguir adelante...!!
¡Hola Wilder, espero que estés bien!
Parece que estás siguiendo bien los pasos para implementar la funcionalidad de cancelamiento de consultas. Aquí tienes un resumen de lo que debes asegurarte de haber hecho:
Controlador de Cancelamiento: Asegúrate de que el método cancelar
en ConsultaController
esté correctamente implementado para recibir la solicitud de cancelamiento.
@DeleteMapping
@Transactional
public ResponseEntity cancelar(@RequestBody @Valid DatosCancelamientoConsulta datos) {
reserva.cancelar(datos);
return ResponseEntity.noContent().build();
}
DTO y Enum: Verifica que DatosCancelamientoConsulta
y MotivoCancelamiento
estén definidos correctamente.
public record DatosCancelamientoConsulta(
@NotNull Long idConsulta,
@NotNull MotivoCancelamiento motivo) {
}
public enum MotivoCancelamiento {
PACIENTE_DESISTIO,
MEDICO_CANCELO,
OTROS;
}
Método de Cancelamiento en ReservaDeConsultas
: Revisa que el método cancelar
valide la existencia de la consulta y actualice el motivo del cancelamiento.
public void cancelar(DatosCancelamientoConsulta datos) {
if (!consultaRepository.existsById(datos.idConsulta())) {
throw new ValidacionException("Id de la consulta informado no existe!");
}
var consulta = consultaRepository.getReferenceById(datos.idConsulta());
consulta.cancelar(datos.motivo());
}
Entidad Consulta
: Asegúrate de que la entidad Consulta
tenga el atributo motivoCancelamiento
y el método cancelar
.
@Column(name = "motivo_cancelamiento")
@Enumerated(EnumType.STRING)
private MotivoCancelamiento motivoCancelamiento;
public void cancelar(MotivoCancelamiento motivo) {
this.motivoCancelamiento = motivo;
}
Constructor de Consulta
: Actualiza el constructor de Consulta
para incluir el nuevo atributo.
var consulta = new Consulta(null, medico, paciente, datos.fecha(), null);
Migración de Base de Datos: Asegúrate de haber creado la migración para agregar la columna motivo_cancelamiento
.
alter table consultas add column motivo_cancelamiento varchar(100);
Si has seguido todos estos pasos, deberías estar en buen camino. Si encuentras algún error, revisa los logs para obtener más detalles sobre lo que podría estar fallando.
Espero haber ayudado y buenos estudios!