Actualmente el sistema valida disponibilidad comparando únicamente el campo fecha, por ejemplo usando:
existsByMedicoIdAndFecha(...)
Entiendo que esto funciona si las consultas solo pueden agendarse en horarios exactos (por ejemplo 10:00, 11:00, 12:00) y todas duran lo mismo.
Pero mi duda es: ¿qué sucede si alguien intenta reservar a las 10:15 y ya existe una consulta a las 10:00 que dura 30 minutos?
En ese caso no habría igualdad exacta de fecha, pero sí habría solapamiento de horarios (10:00–10:30 con 10:15–10:45).
Entonces mi pregunta es:
¿El sistema está diseñado para permitir únicamente horarios cerrados (por ejemplo cada hora exacta)?
¿O más adelante se implementará una validación por rango de tiempo para evitar solapamientos?
También me surgió la duda de si este tipo de validación debería vivir en MedicoRepository o si conceptualmente sería más correcto manejarla desde ConsultaRepository, ya que el conflicto ocurre entre consultas y no directamente entre médicos.
Gracias