Promocionar reserva en espera
Confirma una reserva que estaba en lista de espera seleccionando una franja viable del análisis y convirtiéndola en `booked` con hora de inicio y duración actualizadas.
En este artículo
La lista de espera permite convertir demanda pendiente en una reserva confirmada cuando la ocurrencia está en modo `waiting_list` y el análisis encuentra una franja disponible.
En el demo ES, el caso documentado es Sara Molina en Grupo Marea Demo, ubicación Marea Gran Via. La acción confirma una franja sugerida, pero no debe entenderse como asignación automática de las mesas mostradas en el slot.
Antes de empezar
- Tener sesión iniciada en Grupo Marea Demo con contexto activo de Marea Gran Via.
- Abrir el detalle de la ocurrencia en `/:orgId/:locationId/reservations/:occurrenceId`.
- La ocurrencia debe estar en `booking_mode` igual a `waiting_list`.
- Debe existir una reserva en `waitlist` con al menos una franja viable; en el runtime localizado el caso previsto es Sara Molina.
- La persona usuaria necesita cargar el análisis de lista de espera y tener `reservation:manage` para confirmar la promoción.
Instrucciones
- 1.
Abrir la ocurrencia en lista de espera
Desde gestión de reservas, entra en la ocurrencia de Marea Gran Via que trabaja con lista de espera. En ese estado la pantalla muestra el botón principal `Lista de espera`.
- 2.
Abrir el análisis de lista de espera
Pulsa `Lista de espera`. La app carga el análisis de reservas pendientes y muestra las franjas sugeridas disponibles para cada reserva en espera.
- 3.
Seleccionar reserva y franja
Despliega la reserva de Sara Molina y elige una franja viable. Cuando la selección coincide con una reserva y un slot existentes, aparece el botón `Confirmar`.
- 4.
Confirmar la promoción
Pulsa `Confirmar`. La app actualiza la reserva a `booked` usando `start_at` y `duration_minutes` del slot; conserva cliente, canal, comensales, notas y preferencias de mesa.
- 5.
Comprobar el resultado
Tras guardar, la pantalla refresca ocurrencia, reservas y asignaciones. Si la ocurrencia sigue en lista de espera, también recarga el análisis y muestra `La reserva ha salido de la lista de espera.`
Validaciones y límites
- La pantalla puede consultarse con `reservation:view` o `reservation:manage`, pero confirmar requiere `reservation:manage`.
- El análisis de lista de espera requiere permisos de reserva u optimización y además `reservation-automatic:use`.
- Si la ocurrencia ya no está en `waiting_list`, el modal se cierra y se refresca el detalle.
- No aparece `Confirmar` hasta seleccionar una reserva en `waitlist` y una franja viable.
- El backend recalcula disponibilidad antes de guardar; si la franja ya no encaja, la promoción falla por conflicto.
- Para promocionar, la reserva debe seguir en la misma ocurrencia, haber estado en `waitlist` y recibir `start_at`.
- La UI no envía `table_ids` al confirmar; las mesas visibles en la franja son evidencia de disponibilidad, no asignación persistida automática.
- La acción usa rutas autenticadas `/api/app/...`; no debe documentarse como endpoint público de reservas.
Resultado esperado
La reserva sale de la lista de espera y queda confirmada como `booked` con hora y duración actualizadas. La disponibilidad se valida de nuevo en backend antes de persistir el cambio.