13 Módulo Horarios de Atención para Citas Migración, Modelo, Relación, Rutas, Controladores y Vistas
Duración: 8 minDescripció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:26 ➕ Asignació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
| Tipo | Comando / Ruta HTTP | Descripción / Propósito |
|---|---|---|
| 🛠️ Artisan | php artisan make:controller HorarioController --resource | Genera el controlador de recursos para el CRUD de horarios. |
| 🌐 HTTP GET | /horarios | Renderiza 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}/edit | Muestra 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
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.
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).
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.