Cómo reservar un slot optimizado
Confirma una franja calculada por el optimizador, crea el cliente si hace falta y deja registrada una reserva interna vinculada a una ocurrencia automática de servicio.
En este artículo
La reserva optimizada sirve para convertir la disponibilidad calculada por Antylogic en una reserva operativa. El equipo elige personas, mesas y horario, revisa el resumen y guarda solo si el slot sigue disponible al recalcularse en backend.
En Marea Gran Via este flujo se inicia desde el calendario o desde el detalle de una ocurrencia automática. Es útil cuando sala necesita confirmar una hora concreta sin pasar por la reserva manual ni perder las reglas del optimizador.
Antes de empezar
- Sesión iniciada en Grupo Marea Demo con Marea Gran Via como ubicación activa.
- Permisos `customer:manage` y `reservation:manage` u `optimization:manage` sobre la ubicación.
- Uso de reservas automáticas habilitado para la ubicación mediante `reservation-automatic:use`.
- Una ocurrencia de servicio automática, abierta, futura o del día actual, con layout y configuración de optimización disponibles.
- Disponibilidad calculada para la ocurrencia, el número de personas y, si aplica, las mesas seleccionadas, requeridas o preferidas.
- Nombre y teléfono del cliente preparados antes de guardar.
Instrucciones
- 1.
Abre la nueva reserva optimizada
Desde el calendario de reservas pulsa Nueva reserva. También puedes abrirla desde el detalle de una ocurrencia; en ese caso el servicio queda precargado y el formulario empieza en personas.
- 2.
Elige personas y estrategia de mesas
Indica el tamaño del grupo y decide si la mesa es indiferente, si quieres asignar mesas concretas o si solo necesitas mesas requeridas o preferidas. Para que se creen asignaciones de mesa al guardar, usa Asignar mesas y selecciona mesas concretas como B1 y B2 cuando estén disponibles.
- 3.
Calcula disponibilidad
Avanza al paso Horario y revisa los slots devueltos por el optimizador. Cada hora puede mostrar métricas, mesas propuestas y avisos de desdoble. Si un slot exige confirmación de salida, acepta esa confirmación antes de continuar.
- 4.
Selecciona el horario
Elige el `starts_at` visible que quieras confirmar. Si no hay slots adecuados, usa la lista de espera como flujo alternativo; esa ruta no crea la reserva con `optimization/book`.
- 5.
Introduce los datos del cliente
Rellena Nombre cliente y Teléfono cliente. Al guardar, la app crea primero el cliente y usa su `customer_id` para confirmar la reserva optimizada.
- 6.
Revisa y guarda
En el resumen final comprueba cliente, teléfono, fecha, servicio, personas, mesas y horario seleccionado. Pulsa Guardar reserva solo cuando todo sea correcto; la app confirma con `POST /api/app/{orgId}/{locationId}/optimization/book` y canal `phone`.
Validaciones y límites
- No se puede continuar sin fecha, servicio, `party_size` válido, slot seleccionado, nombre de cliente y teléfono.
- Si el modo de mesas no es Indiferente, debe haber al menos una mesa seleccionada.
- Cambiar personas, servicio o mesas borra el slot seleccionado y obliga a recalcular o elegir horario otra vez.
- La reserva solo se crea si el backend recalcula disponibilidad y el `starts_at` sigue apareciendo en los slots.
- La acción solo acepta ocurrencias automáticas abiertas; manual, waiting_list, completadas o de días pasados son estados inválidos.
- Solo `table_ids` genera `ReservationTableAssignment` con `manual_fixed`; las mesas preferidas o requeridas quedan como preferencias o restricciones de la reserva.
Resultado esperado
La UI muestra Reserva creada, cierra el modal, invalida las cachés de reservas y optimización, y la ocurrencia queda marcada para recalcularse después de la reserva. Si la optimización posterior falla, la reserva puede existir igualmente con un warning operativo.