Listar servicios optimizables
Permite elegir un servicio de calendario de una fecha concreta para iniciar una reserva optimizada interna. La lista muestra candidatos públicos, automáticos y abiertos; no calcula disponibilidad, no asigna mesas y no crea reservas.
En este artículo
Antes de calcular disponibilidad, Antylogic necesita saber qué servicio del día va a recibir la nueva reserva. En Marea Gran Via, el operador llega a esta lista desde Nueva reserva en el calendario de reservas.
La acción trabaja con la fecha local de la ubicación y con los permisos del usuario. Para el runtime ES vigente, las capturas deben usar 2026-06-23, derivada de SERVICE_OCCURRENCE_START=2026-06-23T11:30:00+00:00.
Antes de empezar
- Sesión iniciada en Grupo Marea Demo con la ubicación Marea Gran Via seleccionada.
- La ubicación tiene timezone Europe/Madrid configurada.
- Existe Servicio de comidas Gran Via como servicio de calendario público y visible en el día local 2026-06-23.
- El usuario tiene service:view y al menos uno de optimization:view, reservation:view o reservation-availability:view.
- El botón Nueva reserva requiere reservation:manage en la ubicación, pero ese permiso no sustituye los permisos de lectura del listado.
Instrucciones
- 1.
Entrar en Marea Gran Via
Trabaja desde Grupo Marea Demo > Marea Gran Via. El listado se limita siempre a la ubicación activa y no mezcla servicios de otras sedes.
- 2.
Abrir Nueva reserva
En el calendario de reservas, pulsa Nueva reserva. Si el modal no recibe un servicio ya seleccionado desde el detalle de una ocurrencia, empieza por Fecha y después pasa a Servicio.
- 3.
Seleccionar la fecha
Elige 23/06/2026 para el demo ES. La app convierte la fecha a YYYY-MM-DD y solicita GET /api/app/{orgId}/{locationId}/optimization/services?date=2026-06-23.
- 4.
Revisar los servicios disponibles
En el paso Servicio, cada tarjeta representa un candidato devuelto por la acción. El operador debe ver el título del servicio y su rango horario local antes de continuar.
- 5.
Elegir Servicio de comidas Gran Via
Pulsa la tarjeta del servicio. La selección queda guardada por occurrence_id y habilita el avance al paso Personas; todavía no se ha creado ninguna reserva.
- 6.
Gestionar fechas sin candidatos
Si no hay servicios públicos, automáticos y abiertos para la fecha seleccionada, el paso Servicio muestra No hay servicios disponibles para la fecha seleccionada.
Validaciones y límites
- date es obligatorio y se acepta como YYYY-MM-DD o RFC3339.
- El día se calcula en la timezone de la ubicación, no en la timezone del dispositivo.
- La ruta HTTP actual sólo acepta date como query param; booking_mode, acceptance_state y automatic_only existen en el modelo interno pero no están expuestos aquí.
- Sólo aparecen servicios kind=service con visibilidad public, booking_mode=automatic y acceptance_state=open.
- Los servicios con visibility=internal se omiten aunque existan en calendario.
- El GET puede materializar una calendar_occurrence si falta para un servicio elegible.
- La respuesta incluye IDs de layout, catálogo y configuración, pero no carga esos objetos completos.
- La acción no depende de que Location.PublicBookingEnabled esté activo; public_booking=false no bloquea el listado interno.
- Abrir el flujo desde el detalle de una ocurrencia puede saltar el selector inicial de Servicio.
- Esta acción no calcula slots, no selecciona mesas y no crea reservation.
Resultado esperado
El operador deja seleccionado el servicio optimizable de la fecha. El modal puede continuar con personas, mesas y disponibilidad, pero esta acción sólo lista y selecciona el candidato inicial.