Procesos y Eventos
El plugin mantiene pocos procesos activos y concentra las reglas críticas en eventos de modelo.
Procesos activos
| Proceso | Uso |
|---|---|
GenerateAppointmentSlots | Genera slots para el empleado, servicio y fecha seleccionados. Puede resolver valores desde la cita actual cuando se ejecuta desde ventana. |
ReopenAppointment | Reabre una cita procesada cambiándola a pendiente y limpiando Processed mediante un contexto controlado. |
Validación por evento
AppointmentModelValidator se ejecuta antes de crear o cambiar una cita. Para citas pendientes o aprobadas valida los datos mínimos y la disponibilidad real.
- Cliente requerido.
- Empleado requerido.
- Servicio requerido.
- Fecha de cita requerida.
- Hora inicial y final requeridas.
- Hora inicial menor que hora final.
- Fecha de cita igual al día de la hora inicial.
- Duración mayor que cero.
- Precio no negativo.
- Empleado habilitado para prestar el servicio.
- Slot consistente con empleado, servicio, horas, duración y precio.
- Sin bloqueo por día libre de organización o empleado.
- Horario cubierto por agenda del empleado.
- Sin conflicto con otra cita activa pendiente o aprobada.
Estados y procesamiento
- Si el estado viene vacío, se asigna
Draft. - Los estados finales marcan
Processed = true. - Los estados no finales limpian
Processed. - Una cita procesada no se puede modificar salvo mediante reapertura controlada.