Skip to main content

Procesos y Eventos

El plugin mantiene pocos procesos activos y concentra las reglas críticas en eventos de modelo.

Procesos activos

ProcesoUso
GenerateAppointmentSlotsGenera slots para el empleado, servicio y fecha seleccionados. Puede resolver valores desde la cita actual cuando se ejecuta desde ventana.
ReopenAppointmentReabre 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.