Pular para o conteúdo principal
Routal

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_transit quando o motorista abre o magic link (não quando você chama dispatch).
  • Uma route vai para finished quando todos os seus stops estão em estado terminal.
  • Um plan vai para in_progress quando qualquer uma de suas routes vai para in_transit.
  • Um plan vai para finished quando todas as suas routes estão finished.

Hard guards

  • POST /v2/route/{id}/dispatch não muda o status — só envia o email do magic link.
  • POST /v2/plan/{id}/optimize nã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: true numa route.
  • Uma vez que um stop tem um report terminal (service_report_completed ou service_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.

Ler a referência completa de Lifecycle em inglês →