Ciclo de vida do frete

Os status pelos quais um frete passa, as transições permitidas e os efeitos colaterais.

Diagrama

text
   rascunho
       │ publicar
       ▼
   publicado ─────────► cancelado
       │ oferta aceita
       ▼
   ofertado
       │ aceitar
       ▼
    aceito ──────────► cancelado
       │ motorista chegou
       ▼
   em_coleta
       │ coletado
       ▼
   em_transito
       │ entregue
       ▼
    entregue

Status

  • rascunho — criado, ainda não visível para terceiros.
  • publicado — visível no marketplace, recebendo ofertas.
  • ofertado — pelo menos uma oferta foi recebida.
  • aceito — embarcador aceitou uma oferta; motorista será atribuído.
  • em_coleta — motorista chegou ao ponto de coleta.
  • em_transito — carga coletada, em deslocamento.
  • entregue — entrega confirmada (canhoto/foto).
  • cancelado — encerrado antes da entrega.

Eventos disparados

Cada transição dispara um evento que pode ser usado em regras e webhooks: freight.published, offer.received, freight.accepted, freight.in_transit, freight.delivered, freight.cancelled.

Regras de transição

  • Não é possível voltar de em_transito para aceito.
  • cancelado só é permitido até o status aceito; depois disso vira ocorrência.
  • Atualizações via API e WhatsApp respeitam as mesmas regras de transição.