Resource lifecycle
Los estados que recorren Plan, Route y Stop, y qué transiciones son automáticas.
Plans, Routes y Stops tienen cada uno un campo status. Routal computa las transiciones automáticamente — los clients no llaman a un endpoint para avanzar el estado.
Status enums
- Plan:
draft·planning·in_progress·finished - Route:
not_started·in_transit·finished - Stop:
pending·incomplete·completed·canceled
Transiciones clave
- Una route pasa a
in_transitcuando el driver abre el magic link (no cuando llamas adispatch). - Una route pasa a
finishedcuando todos sus stops están en estado terminal. - Un plan pasa a
in_progresscuando cualquier route suya pasa ain_transit. - Un plan pasa a
finishedcuando todos sus routes estánfinished.
Hard guards
POST /v2/route/{id}/dispatchno cambia el status — solo envía el email del magic link.POST /v2/plan/{id}/optimizeno cambia el status — solo reasigna stops.DELETE /v2/plan/{id}no chequea status — borra incluso si está in-progress. El único guard duro esis_locked: trueen una route.- Una vez que un stop tiene un report terminal (
service_report_completedoservice_report_canceled), no se aceptan reports posteriores.
La especificación detallada de cada transición, con <EnumTable> auto-sincronizados con el spec y reglas exactas para reports / attempts, vive en inglés.
