Previsualizar solución de optimización
Revisa alternativas del optimizador para un servicio, carga una como borrador en el cronograma y decide si guardar o revertir antes de modificar las mesas reales.
En este artículo
Esta guía cubre la revisión previa al guardado: el operador compara soluciones de mesa propuestas por el optimizador y solo las precarga como cambios temporales en el cronograma.
En el demo ES se documenta con Grupo Marea Demo, ubicación Marea Gran Via y `BOOKING_SOLUTIONS_OCCURRENCE_ID`, para distinguir claramente entre previsualizar una disposición y persistir asignaciones reales.
Antes de empezar
- Sesión activa en Grupo Marea Demo / Marea Gran Via con `reservation:manage` para ver `Configuraciones` y guardar borradores si se decide aplicar cambios.
- La ocurrencia debe abrirse desde `/:orgId/:locationId/reservations/:occurrenceId` y pertenecer a un evento `service` de la ubicación actual.
- La ocurrencia debe tener `layout_id` y `optimization_config_id` resueltos, con mesas de layout disponibles para dibujar el cronograma.
- El backend debe poder ejecutar el cliente de optimización o reutilizar una corrida fresca ya cacheada.
- Para capturas documentales, no pulsar `Guardar`; la acción explicada termina en la revisión temporal del cronograma.
Instrucciones
- 1.
Abrir la ocurrencia de servicio
Entra en el detalle operativo del servicio de reservas de Marea Gran Via. La pantalla carga ocurrencia, reservas, asignaciones actuales, layout y configuración de optimización antes de pedir propuestas.
- 2.
Pedir disposiciones propuestas
Pulsa `Configuraciones` y selecciona `Disposiciones propuestas`. La app valida que exista configuración de optimización y solicita una corrida con `force: false` si la cache está fresca; si no, pide una nueva con `force: true`.
- 3.
Comparar alternativas
En el modal `Disposiciones propuestas`, revisa etiqueta, `Score`, `objective_value`, `desdobles_used` y las asignaciones por reserva. Selecciona la alternativa que quieras revisar en el cronograma.
- 4.
Precargar en cronograma
Pulsa `Precargar en cronograma`. El modal se cierra, la pantalla cambia a `Cronograma` y los `table_ids` sugeridos se cargan como borradores locales, sin guardar cambios en backend.
- 5.
Revisar, guardar o revertir
Comprueba el pie `Disposición aplicada: {{label}}`. Usa `Guardar` solo si quieres persistir las mesas por reserva; usa `Revertir cambios` para borrar los borradores y volver al estado anterior.
Validaciones y límites
- Si falta `optimization_config_id`, la pantalla muestra un aviso y no llama al backend.
- Si la corrida no devuelve soluciones, aparece `No se han encontrado soluciones aplicables para este servicio` y el modal no se abre.
- El botón `Precargar en cronograma` queda deshabilitado cuando no hay solución seleccionada.
- El backend valida permisos, uso automático de reservas, ocurrencia de tipo `service`, layout y configuración antes de crear o reutilizar la corrida.
- La precarga ignora reservas que no están en pantalla, filtra mesas ajenas al layout y no crea borrador si la propuesta coincide con la asignación actual.
- La previsualización usa `reservation_id` y `table_ids`; no aplica `starts_at`, `ends_at` ni `duration_minutes` al cronograma.
- Si ya hay cambios temporales, la pantalla pide aplicar, descartar o cancelar antes de iniciar otra acción.
- La UI inspeccionada no usa el endpoint `runs/{runId}/apply` para esta previsualización; el guardado posterior usa `PUT /reservations/{reservationId}/tables` por reserva modificada.
Resultado esperado
El operador ve la disposición propuesta como cambios temporales sobre el cronograma y puede revisarla con seguridad antes de decidir si guarda las asignaciones reales o revierte el borrador.