Cómo calcular disponibilidad interna
Calcula franjas disponibles para una reserva interna a partir de una ocurrencia automática, los comensales y las condiciones de mesas, sin crear ni modificar reservas.
En este artículo
El flujo vive dentro de `Nueva reserva` y sirve para comprobar qué horarios puede ofrecer sala antes de confirmar nada. Antylogic cruza la ocurrencia del servicio, el plano, las reservas existentes y las reglas de optimización para devolver opciones comparables.
Está pensado para responsables de reservas y jefes de sala que necesitan probar condiciones de mesas en Marea Gran Via o en una ubicación equivalente, ver si hay hueco real y decidir si continúan con un slot, ajustan condiciones o pasan a lista de espera.
Antes de empezar
- Sesión autenticada en Grupo Marea Demo y en la ubicación Marea Gran Via, o en una ubicación equivalente con reservas internas activas.
- Permiso operativo para abrir `Nueva reserva`, normalmente `reservation:manage`.
- Ocurrencia de servicio automática, abierta y futura, con `layout_id` y `optimization_config_id` disponibles.
- Plano con mesas configuradas y combinaciones cuando se usen mesas unidas.
- Servicio de optimización disponible para mostrar franjas; los estados sin franjas o fallback manual requieren escenarios preparados en el runtime documental.
Instrucciones
- 1.
Abrir Nueva reserva
Desde el calendario de reservas o desde el detalle de una ocurrencia automática, pulsa `Nueva reserva` para abrir el asistente de reserva optimizada.
- 2.
Confirmar servicio y comensales
Revisa la fecha y el servicio cargado, introduce el número de comensales y deja que la app prepare el plano asociado cuando el servicio tiene `layout_id`.
- 3.
Definir condiciones de mesas
Elige si el cálculo será indiferente, con mesas preferidas, con mesas obligatorias o con asignación manual. Si eliges mesas concretas, usa mesas reales del plano cargado.
- 4.
Pasar a Horario
Avanza al paso `Horario`. La app solicita disponibilidad con la ocurrencia, los comensales y las condiciones de mesas; el backend construye el escenario y consulta el optimizador interno.
- 5.
Revisar franjas o salida alternativa
Compara horarios, mesas propuestas, duración, puntuación y métricas. Si no hay franjas, revisa condiciones o usa `Añadir a lista de espera`; si falla el optimizador y existe fallback, pasa a modo manual.
Validaciones y límites
- La ocurrencia debe pertenecer a la ubicación, ser de tipo `service`, estar en `booking_mode` `automatic`, con `acceptance_state` `open` y no estar en una fecha pasada.
- No se lanza el cálculo sin `occurrence_id`, `party_size`, `orgId` y `locationId`; `party_size` debe ser mayor que cero.
- Si el modo de mesas no es indiferente, la app espera al menos una mesa efectiva seleccionada y descarta ids que no pertenezcan al plano.
- Si falta `layout_id` u `optimization_config_id`, la disponibilidad interna queda inválida.
- La acción sólo calcula: no crea reservas, no modifica asignaciones y no cambia la ocurrencia.
- Las reservas `cancelled` o `waitlist` no se envían como ocupantes al optimizador.
- La ruta interna por ocurrencia reemplaza cualquier `occurrence_id` del cuerpo por el `{occurrenceId}` de la URL.
- No documentar `GET /api/app/{orgId}/{locationId}/reservations-availability` ni la disponibilidad pública como esta acción interna.
Resultado esperado
El operador obtiene franjas disponibles con mesas y métricas de calidad, o un estado operativo sin franjas/fallback, manteniendo la reserva sin confirmar hasta que el usuario elija continuar.