Resource lifecycle
Os estados que Plan, Route e Stop percorrem, e quais transições são automáticas.
Plans, Routes e Stops têm cada um um campo status. A Routal computa as transições automaticamente — os clients não chamam um endpoint para avançar o estado.
Status enums
- Plan:
draft·planning·in_progress·finished - Route:
not_started·in_transit·finished - Stop:
pending·incomplete·completed·canceled
Transições-chave
- Uma route vai para
in_transitquando o motorista abre o magic link (não quando você chamadispatch). - Uma route vai para
finishedquando todos os seus stops estão em estado terminal. - Um plan vai para
in_progressquando qualquer uma de suas routes vai parain_transit. - Um plan vai para
finishedquando todas as suas routes estãofinished.
Hard guards
POST /v2/route/{id}/dispatchnão muda o status — só envia o email do magic link.POST /v2/plan/{id}/optimizenão muda o status — só reatribui stops.DELETE /v2/plan/{id}não checa status — exclui mesmo se está in-progress. O único guard duro éis_locked: truenuma route.- Uma vez que um stop tem um report terminal (
service_report_completedouservice_report_canceled), reports posteriores são rejeitados.
A especificação detalhada de cada transição, com <EnumTable> auto-sincronizados com o spec e regras exatas para reports / attempts, vive em inglês.
