Cómo crear una reserva desde el calendario
Crea una reserva interna desde el calendario semanal de Marea Gran Via, con cálculo de disponibilidad, selección de mesas, horario, contacto y alternativa de lista de espera.
En este artículo
El calendario de reservas permite iniciar una reserva interna sin salir del contexto operativo de sala. El equipo puede revisar la semana, abrir `Nueva reserva` y completar fecha, servicio, personas, mesas, horario y contacto en el mismo asistente.
Cuando el servicio está abierto y en modo automático, Antylogic propone franjas optimizadas según capacidad y mesas disponibles. Si no hay una hora adecuada, el flujo permite conservar la demanda como lista de espera.
Antes de empezar
- Sesión iniciada con Grupo Marea Demo y la ubicación Marea Gran Via seleccionadas.
- Permiso `reservation:manage` para ver la acción `Nueva reserva` y guardar reservas internas.
- Permiso `reservation-automatic:use` para calcular disponibilidad y confirmar la reserva optimizada.
- Permiso `customer:manage` para crear el cliente asociado a la reserva.
- Debe existir un servicio abierto en modo automático, con plano y configuración de optimización.
Instrucciones
- 1.
Abre el calendario de reservas
Entra en `/:orgId/:locationId/calendars/reservations?mode=week` para revisar los servicios, ocurrencias y reservas visibles de Marea Gran Via antes de crear la nueva reserva.
- 2.
Inicia la nueva reserva
Pulsa `Nueva reserva`. Si entras desde el detalle de una ocurrencia, la misma acción abre el asistente con fecha y servicio ya seleccionados y empieza directamente en `Personas`.
- 3.
Confirma fecha y servicio
En el asistente, confirma la fecha y selecciona el servicio. El servicio debe estar en `booking_mode="automatic"`, `acceptance_state="open"` y tener `layout_id` y `optimization_config_id` para calcular franjas.
- 4.
Indica personas y mesas
Introduce el número de comensales y decide si la reserva queda sin preferencia, con mesas preferidas, restringida a mesas concretas o con mesas asignadas.
- 5.
Elige horario optimizado
Revisa las franjas propuestas y selecciona una hora disponible. Si la franja es `desdoble_eligible`, confirma la hora de salida antes de avanzar.
- 6.
Registra el contacto
Introduce nombre y teléfono del cliente. El asistente crea un cliente nuevo antes de crear la reserva; en esta superficie no se reutilizan clientes existentes.
- 7.
Guarda la reserva o pásala a lista de espera
Guarda para crear la reserva con canal `phone`. Si no hay una franja compatible o el operador no quiere aceptar un desdoble, usa `Añadir a lista de espera`.
Validaciones y límites
- `Nueva reserva` sólo aparece en el calendario si el usuario tiene `reservation:manage`.
- La fecha debe existir y tener un servicio disponible para poder buscar servicios optimizables.
- No se puede avanzar sin servicio seleccionado ni con `party_size` menor o igual que cero.
- Si el modo de mesas no es `indifferent`, debe seleccionarse al menos una mesa.
- Debe elegirse un `selectedSlot` para guardar, salvo que se use lista de espera.
- `customerName` y `customerPhone` son obligatorios en la UI; el análisis no confirma validación estricta de formato E.164.
- Al guardar, el backend recalcula disponibilidad y rechaza la hora si ya no aparece entre los slots devueltos.
- Desde calendario no hay fallback manual conectado si el optimizador no está disponible.
- Un perfil con sólo `reservation:manage` podría ver el botón, pero `GET /optimization/services` exige permisos de vista u optimización según el backend analizado.
Resultado esperado
La reserva queda creada como `booked` con canal `phone`, el calendario se refresca y, si la reserva devuelta tiene `occurrence_id`, la app navega al detalle de la ocurrencia. Si se usa lista de espera, queda registrada como `waitlist` sin asignaciones de mesa.