Antylogic
Probar demoAcceso app

399 guías operativas

Secciones de Docs
DocsReservas y sala
Dispositivo

Cómo activar el modo automático

Devuelve una ocurrencia de servicio en modo manual al flujo automático de reservas y lanza una optimización forzada para recalcular soluciones sin aplicar asignaciones de mesa.

En este artículo

Este flujo sirve cuando el responsable de sala ha intervenido una ocurrencia manualmente y quiere devolverla al comportamiento automático de reservas.

La acción cambia primero el modo de la ocurrencia y después crea una corrida forzada del optimizador. Recalcula soluciones, pero no aplica ninguna distribución propuesta ni reemplaza asignaciones de mesas.

Antes de empezar

  • Trabajar en Grupo Marea Demo y Marea Gran Via, o en la organización y ubicación equivalentes del entorno real.
  • Tener `reservation:manage` en la ubicación para ver `Configuraciones` y ejecutar la acción desde la UI.
  • Tener `reservation-automatic:use` para activar el modo automático y lanzar la optimización.
  • Abrir el detalle desde `/:orgId/:locationId/reservations/:occurrenceId` o con `antylogic://${ORG_ID}/${LOCATION_ID}/reservations/${BOOKING_MANUAL_OCCURRENCE_ID}?returnRoute=LocationReservationsCalendar&returnMode=week`.
  • La ocurrencia debe estar en `booking_mode: manual`, con `acceptance_state: open`, no ser de un día pasado y tener `layout_id` y `optimization_config_id` válidos.
  • El backend de optimización debe estar configurado para completar la llamada al optimizador.

Instrucciones

  1. 1.

    Abrir la ocurrencia manual

    Abre el detalle de la ocurrencia que quieres devolver al flujo automático. En el demo ES se usa Marea Gran Via, `BOOKING_MANUAL_OCCURRENCE_ID` y Javier Martin como reserva de referencia.

  2. 2.

    Abrir Configuraciones

    Pulsa `Configuraciones`. La opción `Pasar a modo automatico` sólo aparece cuando la ocurrencia está en manual, abierta, no es pasada y tiene configuración de optimización disponible.

  3. 3.

    Seleccionar Pasar a modo automatico

    Elige `Pasar a modo automatico`. La app envía `PUT /api/app/{orgId}/{locationId}/service-occurrences/{occurrenceId}/mode` con `{ "booking_mode": "automatic" }`.

  4. 4.

    Esperar el recálculo

    Después del cambio de modo, la app lanza `POST /api/app/{orgId}/{locationId}/service-occurrences/{occurrenceId}/optimization/runs` con `{ "force": true }`. Esta corrida usa el trigger `manual_request` y evita reutilizar una caché fresca previa.

  5. 5.

    Confirmar el estado posterior

    Revisa el estado tras el refresco. Si la corrida termina correctamente, la caché queda `fresh` y la pantalla puede mostrar `Automatico`; si el optimizador marca el servicio completo puede quedar `Completo`, y si hay lista de espera con huecos puede derivar a `Lista de espera`.

Validaciones y límites

  • La pantalla de detalle puede consultarse con `reservation:view` o `reservation:manage`, pero esta acción exige gestión desde la UI.
  • El frontend valida `occurrenceId`, `occurrence`, `canManage` y `hasOptimizationConfig` antes de mutar datos.
  • La acción no se muestra en ocurrencias automáticas, en `waiting_list`, completadas, pasadas o sin configuración de optimización.
  • El endpoint de modo sólo acepta `PATCH` o `PUT`; JSON inválido devuelve `400 payload invalido`.
  • `booking_mode` sólo acepta `automatic` o `manual`; `waiting_list` no se puede elegir desde esta acción.
  • El endpoint de optimización sólo acepta `POST`; el payload vacío es válido y `force` es opcional, aunque la UI envía `force: true`.
  • El snapshot de optimización exige ocurrencia de tipo `service`, misma ubicación, `layout_id`, layout de la ubicación y `optimization_config_id` cargable.
  • La corrida usa reservas activas, layout, configuración, mesas, combinaciones y asignaciones actuales; reservas `cancelled` y `waitlist` quedan fuera del payload.
  • Si `Optimize` o `Completed` falla después de crear el run, el run queda `failed` y la ocurrencia puede volver a `manual` con `optimization_cache_status: failed`.

Resultado esperado

La ocurrencia vuelve al flujo automático o a un estado derivado por reglas internas, queda registrada una nueva corrida de optimización y la pantalla refresca ocurrencia, reservas y asignaciones sin aplicar automáticamente ninguna solución de mesas.

Artículos relacionados