Cómo abrir el análisis de lista de espera
Abre una ocurrencia en modo lista de espera, revisa reservas pendientes como Sara Molina en Marea Gran Via y consulta las franjas sugeridas antes de promover ninguna reserva.
En este artículo
Cuando una ocurrencia de servicio está en `waiting_list`, Antylogic cambia la acción principal a `Lista de espera`. Esa entrada abre un análisis operativo para ver qué reservas siguen pendientes y qué huecos propone el optimizador.
Este flujo sirve para leer opciones, no para confirmar cambios. Abrir o actualizar el análisis no asigna mesas ni cambia el estado de la reserva; la promoción a una franja pertenece a otro paso operativo.
Antes de empezar
- Trabajar con sesión autenticada en Grupo Marea Demo y la ubicación Marea Gran Via.
- Tener acceso de reservas en la ubicación: `reservation:view` o `reservation:manage`; para consultar el análisis también hace falta `reservation-automatic:use`.
- Abrir una ocurrencia de servicio válida en `booking_mode=waiting_list`, como `BOOKING_WAITLIST_OCCURRENCE_ID` en el runtime ES.
- La ocurrencia debe tener plano y configuración de optimización asociados a la misma ubicación.
- Para que el panel tenga contenido útil debe existir al menos una reserva `waitlist`; en el demo ES la reserva esperada es Sara Molina.
Instrucciones
- 1.
Abre la ocurrencia de lista de espera
Desde el calendario de reservas o mediante el enlace profundo de la ocurrencia, entra en el detalle del servicio. La acción principal debe mostrarse como `Lista de espera`, no como `Nueva reserva`.
- 2.
Pulsa Lista de espera
La app abre el modal de análisis, limpia cualquier selección previa y carga las reservas pendientes con sus opciones calculadas. En la primera carga puede aparecer `Cargando opciones de lista de espera...`.
- 3.
Revisa las reservas pendientes
Comprueba las filas del modal. En el demo ES debe aparecer Sara Molina con el estado `Lista de espera` y un resumen de franjas disponibles o `Sin franjas`; si el cliente tiene teléfono, se muestra junto al nombre.
- 4.
Expande una reserva
Pulsa la fila de Sara Molina para ver las franjas sugeridas. Cada opción puede mostrar hora, mesas propuestas, posible desdoble y métricas como `mu_low_risk`, `mu_low_saturation`, `preference_satisfaction` y `score`.
- 5.
Actualiza solo si necesitas recalcular
Usa `Actualizar` cuando necesites recomputar el análisis con el estado actual del servicio. Esa acción envía `force=true` y evita reutilizar el análisis local o cacheado.
Validaciones y límites
- Si aparece `Nueva reserva`, la ocurrencia abierta no está en `booking_mode=waiting_list`.
- La pantalla de detalle necesita `reservation:view` o `reservation:manage`; el endpoint acepta `reservation:view`, `reservation:manage` u `optimization:view`, además de `reservation-automatic:use`.
- El endpoint `waitlist-analysis` solo acepta `GET`; otros métodos devuelven `405 metodo no permitido`.
- `force` solo se considera verdadero si el query param, tras trim, coincide con `true` sin distinguir mayúsculas.
- Solo aparecen reservas con estado `waitlist`; no se listan reservas `booked`, `seated`, `hold`, `noshow` ni `cancelled`.
- Las reservas en espera se ordenan por `CreatedAt` ascendente y, en empate, por `ID`.
- La ocurrencia debe pertenecer a la ubicación actual, estar asociada a un evento `service` y tener `layout_id` y `optimization_config_id` válidos.
- Si no hay reservas pendientes, el modal muestra `No hay reservas pendientes en lista de espera.`
- Si el optimizador no encuentra una opción viable para una reserva, el panel expandido muestra `Ahora mismo no hay una franja viable para esta reserva.`
- Si la API falla, el modal se cierra y se muestra un toast `Lista de espera` con el mensaje resuelto por la app.
- Abrir o actualizar el análisis no confirma reservas, no cambia estados y no asigna mesas; esa operación corresponde a `reservations.waitlist.promote`.
Resultado esperado
El equipo ve la lista de espera de la ocurrencia, identifica las reservas pendientes y lee las franjas sugeridas por el optimizador sin aplicar todavía ningún cambio operativo.