Cómo analizar la lista de espera
Revisa las franjas que calcula el optimizador para reservas en `waitlist` dentro de una ocurrencia en modo `waiting_list`, comparando opciones antes de una promoción posterior sin confirmar reservas ni asignar mesas.
En este artículo
El análisis de lista de espera ayuda al equipo de sala a decidir con criterio qué reservas pendientes tienen huecos viables. La pantalla muestra reservas, franjas, mesas propuestas y métricas del optimizador antes de ejecutar cualquier cambio operativo.
En el demo ES, el caso principal se documenta en Marea Gran Via con la reserva `Sara Molina`. Esta guía cubre la revisión previa: dejar visible una opción y el botón `Confirmar`, sin pulsarlo.
Antes de empezar
- Estar en el detalle de una ocurrencia de reservas con `orgId`, `locationId` y `occurrenceId` válidos.
- Tener permiso para ver o gestionar reservas en la localización y capacidad para usar reservas automáticas.
- La ocurrencia debe ser de tipo servicio, pertenecer a la localización activa y tener `booking_mode` igual a `waiting_list`.
- La ocurrencia o su evento deben tener plano y configuración de optimización disponibles.
- Para capturas del demo ES, usar `BOOKING_WAITLIST_OCCURRENCE_ID` y `OPTIMIZATION_WAITLIST_RESERVATION_LABEL` con valor `Sara Molina`.
Instrucciones
- 1.
Abre la ocurrencia en lista de espera
Entra en el detalle de la ocurrencia de Marea Gran Via desde el calendario o con el enlace directo del runtime. Cuando la ocurrencia está en modo lista de espera, la acción principal de la cabecera aparece como `Lista de espera`; si aparece `Nueva reserva`, esta guía no corresponde a esa ocurrencia.
- 2.
Pulsa Lista de espera
La app abre el modal, limpia cualquier selección anterior y consulta el análisis si no tiene resultados locales para la misma ocurrencia. Mientras carga, puede mostrar `Cargando opciones de lista de espera...`.
- 3.
Revisa las reservas pendientes
Comprueba la lista de reservas en espera. En el demo debe aparecer `Sara Molina`, junto con teléfono si existe, comensales y número de franjas disponibles. Si no hay reservas pendientes, el modal muestra `No hay reservas pendientes en lista de espera.`.
- 4.
Compara las franjas calculadas
Expande la reserva para ver las franjas devueltas por el optimizador, con hora, mesas y métricas de riesgo, saturación, preferencia y puntuación global. Seleccionar una franja solo prepara una posible promoción posterior; el análisis no cambia la reserva.
- 5.
Actualiza si la sala ha cambiado
Usa `Actualizar` cuando quieras recalcular la disponibilidad visible. La app repite la consulta con `force=true`, pero sigue siendo una revisión previa: no bloquea la mesa ni confirma la reserva.
Validaciones y límites
- La consulta usa `GET /api/app/{orgId}/{locationId}/service-occurrences/{occurrenceId}/optimization/waitlist-analysis` y no envía cuerpo.
- El backend exige al menos acceso a reservas u optimización y también `reservation-automatic:use`.
- La acción solo es válida si la ocurrencia tiene `booking_mode` igual a `waiting_list`; en otros modos el backend devuelve estado inválido.
- Solo entran en el análisis reservas con estado `waitlist`, ordenadas por fecha de creación y después por `ID`.
- Si una reserva no tiene opciones, al expandirla se muestra `Ahora mismo no hay una franja viable para esta reserva.`.
- El botón `Actualizar` usa `force=true`; el backend solo interpreta el forzado cuando el query vale `true`.
- La acción no actualiza reservas, no cambia estados y no crea ni modifica `reservation_table_assignments`.
- Una franja mostrada puede dejar de estar disponible antes de ejecutar el flujo posterior de promoción.
Resultado esperado
El equipo ve las opciones calculadas para la lista de espera y puede preparar una decisión posterior sin que esta acción confirme la reserva, asigne mesas ni modifique el estado operativo.