Saltar al contenido principal
Routal

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_transit cuando el driver abre el magic link (no cuando llamas a dispatch).
  • Una route pasa a finished cuando todos sus stops están en estado terminal.
  • Un plan pasa a in_progress cuando cualquier route suya pasa a in_transit.
  • Un plan pasa a finished cuando todos sus routes están finished.

Hard guards

  • POST /v2/route/{id}/dispatch no cambia el status — solo envía el email del magic link.
  • POST /v2/plan/{id}/optimize no cambia el status — solo reasigna stops.
  • DELETE /v2/plan/{id} no chequea status — borra incluso si está in-progress. El único guard duro es is_locked: true en una route.
  • Una vez que un stop tiene un report terminal (service_report_completed o service_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.

Leer la referencia completa de Lifecycle en inglés →