Aplicar solución de optimización
Aplica una alternativa ya generada por el optimizador a una ocurrencia de servicio, reemplazando solo las mesas de las reservas incluidas en la solución y conservando la trazabilidad del run usado.
En este artículo
Usa esta guía cuando el equipo de sala ya ha generado disposiciones propuestas para una ocurrencia de servicio y necesita aplicar una alternativa concreta con control operativo.
En la app actual, la pantalla de Disposiciones propuestas sirve como superficie visual relacionada para revisar y precargar la solución. La aplicación directa del run está expuesta por la API y el hook programático, por lo que no debe presentarse como una acción visual demostrada por esa pantalla.
Antes de empezar
- Trabajar en una ubicación con reservas automáticas habilitadas, como Marea Gran Via.
- Tener permiso para gestionar reservas u optimización en la ubicación.
- Contar con una ocurrencia de servicio accesible en la ubicación activa.
- Disponer de un run de optimización de esa misma ocurrencia finalizado con estado `succeeded`.
- Elegir una alternativa existente dentro de las disposiciones propuestas.
Instrucciones
- 1.
Abrir la ocurrencia de servicio
Desde el calendario de reservas, abre la ocurrencia que quieres reorganizar. En la demo de Marea Gran Via, la referencia operativa es la ocurrencia del Servicio de comidas Gran Via asociada a `BOOKING_SOLUTIONS_OCCURRENCE_ID`.
- 2.
Revisar las disposiciones propuestas
Abre Configuraciones y entra en Disposiciones propuestas. Compara las alternativas disponibles, sus métricas y las asignaciones que propone cada una antes de decidir cuál aplicar.
- 3.
Aplicar la alternativa seleccionada
Confirma la alternativa elegida. En integraciones o soporte, la operación envía `solution_index` a `POST /api/app/{orgId}/{locationId}/service-occurrences/{occurrenceId}/optimization/runs/{runId}/apply`; la misma ruta también acepta `PUT`.
- 4.
Añadir control de versión si hace falta
Cuando quieras evitar aplicar una propuesta sobre una ocurrencia que ha cambiado desde que se generó el run, incluye `expected_occurrence_version` con la versión esperada de la ocurrencia.
- 5.
Comprobar el resultado en el cronograma
Verifica que las reservas incluidas en la alternativa aparecen con las mesas propuestas. Las reservas que no forman parte de la solución seleccionada no se reemplazan por esta acción.
Validaciones y límites
- La ubicación debe permitir el uso de reservas automáticas.
- La petición debe usar `POST` o `PUT` y un payload con `solution_index`.
- El run debe pertenecer a la misma ocurrencia y estar en estado `succeeded`.
- Si se informa `expected_occurrence_version`, debe coincidir con la versión actual de la ocurrencia.
- `solution_index` debe apuntar a una alternativa existente dentro del `ResponsePayloadJSON` del run.
- Las asignaciones aplicadas quedan registradas como `optimizer_applied` y con `source_run_id` del run usado.
- La ocurrencia incrementa su versión, marca la caché de optimización como obsoleta y limpia la caché de análisis de lista de espera.
Resultado esperado
La alternativa seleccionada queda aplicada con trazabilidad del run. Solo se reemplazan las asignaciones de las reservas presentes en la solución, y el run conserva la alternativa aplicada en `SelectedSolutionIndex`.