13 Módulo Horarios de Atención para Citas Migración, Modelo, Relación, Rutas, Controladores y Vistas

Duración: 8 min
Módulo: Horarios de Atención & Agenda Médica Lección 2 de 2

Descripción

🎓 Lección 13 Módulo Horarios de Atención para Citas: Integración CRUD Completa

El propósito principal de esta lección es completar la gestión del módulo de horarios de atención médica en Laravel, implementando las acciones de visualización (show), actualización (edit/update) con control de estado (activo/suspendido), y eliminación (destroy), garantizando la correcta integración con la base de datos y la preparación del sistema para el módulo de agenda de citas médicas.

🚀 Pasos Clave del Tutorial

  • ⏱️ 00:00 📑 Revisión del Estado Inicial del Proyecto: Introducción al objetivo del video y breve repaso del controlador y las vistas preliminares creadas en el capítulo anterior.
  • ⏱️ 00:46 💻 Estructura Interna del Controlador (HorarioController): Explicación del flujo de métodos (index, create, store, show, edit, update y destroy) y optimización de instanciación en el método store.
  • ⏱️ 02:26Asignación de Nuevo Horario al Médico: Registro práctico de un nuevo turno de noche para un doctor y verificación directa del nuevo registro en la base de datos.
  • ⏱️ 03:36 👁️ Consulta Detallada de Horario (show): Visualización del resumen completo de asignación de horario, datos del médico y detalles de la cita.
  • ⏱️ 03:55 ✏️ Edición y Manejo de Estados (edit / update): Modificación del estado del horario a suspendido para permisos temporales sin requerir la eliminación del registro en la base de datos.
  • ⏱️ 05:20 🗑️ Eliminación Definitiva de Registros (destroy): Proceso de confirmación modal y eliminación física de turnos de la base de datos, verificando la reducción de registros en tiempo real.
  • ⏱️ 06:42 🗓️ Proyección al Módulo de Citas Médicas: Presentación de la integración futura con la librería FullCalendar para gestionar la agenda médica por fechas y horas.

🛠️ Comandos y Rutas Principales

TipoComando / Ruta HTTPDescripción / Propósito
🛠️ Artisanphp artisan make:controller HorarioController --resourceGenera el controlador de recursos para el CRUD de horarios.
🌐 HTTP GET/horariosRenderiza el listado principal de horarios asignados (index).
🌐 HTTP GET/horarios/{id}Muestra la información detallada de un horario específico (show).
🌐 HTTP GET/horarios/{id}/editMuestra el formulario para modificar un horario existente (edit).
🌐 HTTP PUT/PATCH/horarios/{id}Procesa la actualización de los datos del horario en BD (update).
🌐 HTTP DELETE/horarios/{id}Elimina el registro del horario seleccionado de la base de datos (destroy).

🔒 Buenas Prácticas y Seguridad

  1. Gestión Semántica de Estados (Soft Status vs. Soft Delete):

    Utilizar campos booleanos como activo o suspendido para deshabilitar temporalmente turnos por permisos médicos, evitando la pérdida de trazabilidad e historial de citas que causaría una eliminación de registro.

  2. Validación de Datos en Actualizaciones:

    Mantener reglas de validación estricta en el método update equivalentes a las del método store para evitar incongruencias en los rangos de horas de atención (hora_inicio / hora_fin).

  3. Confirmación de Acciones Destructivas en UX:

    Implementar alertas modales de confirmación antes de ejecutar peticiones DELETE para prevenir borrados accidentales de información sensible en producción.