Skip to main content

Flujo de Configuración y Cita

Esta página describe el flujo objetivo para preparar una agenda y poder crear citas válidas. El flujo parte de una configuración general, continúa con servicios y empleados, y termina con la creación de una cita validada por backend.

Importante: parte de este flujo representa el comportamiento objetivo. Algunas reglas todavía deben implementarse en el modelo y en AppointmentModelValidator para que sean obligatorias tanto desde la UI como desde REST/API.

Flujo objetivo

flowchart TD
    A[Configurar Agenda] --> B[Definir reglas generales]
    B --> B1[Horas mínimas de anticipación]
    B --> B2[Días máximos de anticipación]
    B --> B3[Regla de asignación]
    B --> B4[Forzar aprobación]
    B --> B5[Autoaprobar si el servicio lo permite]

    A --> C[Definir horario macro de agenda]
    C --> C1[Lunes a viernes]
    C --> C2[Rangos de hora permitidos]
    C --> C3[Días o rangos cerrados de organización]

    A --> D[Relacionar servicios con la configuración]
    D --> D1[Cada servicio pertenece a una sola configuración]

    D --> E[Configurar Servicio]
    E --> E1[Duración]
    E --> E2[Precio]
    E --> E3[Intervalo de slot]
    E --> E4[Requiere aprobación]

    E --> F[Configurar Empleado]
    F --> F1[Servicios que puede atender]
    F --> F2[Precio/duración override]
    F --> F3[Horario laboral del empleado]
    F --> F4[Días libres o bloqueos]

    F --> G[Crear Cita]
    G --> G1[Seleccionar empleado]
    G --> G2[Seleccionar servicio]
    G --> G3[Resolver configuración del servicio]
    G --> G4[Validar reglas de agenda]
    G --> G5[Validar horario macro]
    G --> G6[Validar horario y días libres del empleado]
    G --> G7[Validar conflictos]

    G7 --> H{¿Requiere aprobación?}
    H -->|Sí| I[Guardar como Pendiente]
    H -->|No y configuración permite autoaprobar| J[Guardar como Aprobada]
    H -->|Configuración fuerza aprobación| I
yoFttEn6HSRcxnol-drawing-1-1779470586.png

Secuencia funcional

    Crear una configuración de agenda por organización o por alcance operativo. Definir reglas generales como anticipación mínima, anticipación máxima, regla de asignación y política de aprobación. Definir el horario macro de la agenda. Por ejemplo: lunes a viernes de 8:00 a 17:00. Relacionar cada servicio con una sola configuración de agenda. Configurar cada servicio con duración, precio, intervalo de slot y si requiere aprobación. Configurar empleados y definir qué servicios puede atender cada uno. Definir horario laboral y días libres del empleado. Crear la cita seleccionando empleado, servicio, fecha y slot. Validar primero la configuración de agenda y luego las reglas del empleado. Guardar la cita como pendiente o aprobada según las reglas de aprobación.

    Jerarquía de disponibilidad esperada

    Nivel Regla Prioridad Configuración de agenda Define el marco general de operación: anticipación, días permitidos, horarios macro y aprobación. Debe estar por encima del empleado. Si la agenda general está cerrada, ningún empleado puede abrir disponibilidad. Servicio Define duración, precio, intervalo y si requiere aprobación. Debe resolver qué configuración aplica. Empleado Define servicios que puede atender, horario propio y bloqueos personales. Solo puede reducir o especializar la disponibilidad de la configuración, no ampliarla. Cita Consume empleado, servicio, configuración, slot y reglas de conflicto. Debe ser validada por evento antes de guardarse.

    Reglas pendientes para completar el flujo

      Relacionar cada servicio con una configuración de agenda. Validar que un servicio no pertenezca a más de una configuración. Agregar horario macro de configuración, similar al horario del empleado. Validar anticipación mínima y máxima desde la configuración. Aplicar la política de aprobación automática o forzada en BeforeNew. Hacer que los días libres de organización puedan aplicar por configuración cuando corresponda.