Approve delivery changes
PUT/company/delivery/aprove/:service_code
Aprova as alterações realizadas pelo transportador em um envio replanejado. O status deve ser 'replanned' com replannedBy === 'trucker'.
Objetivo
Permitir que as empresas aceitem modificações solicitadas pelo transportador, finalizando o processo de negociação de alterações.
Casos de Uso
- Confirmar alterações de datas solicitadas pelo transportador
- Aprovar modificações na carga (peso, paletes, temperatura)
- Aceitar alterações em metros lineares ou altura da carga
- Finalizar o processo de negociação de alterações
Fluxo de Aprovação
flowchart LR
A[Transportador Edita] -->|replannedBy=trucker| B[Status: replanned]
B --> C[Empresa Revisa]
C -->|Aprovar| D[PUT /aprove]
D -->|replannedBy=aproved| E[Status: planned]
C -->|Rejeitar| F[Reverter Manualmente]
Lógica de Validação
flowchart TD
A[Receber Aprovação] --> B{Entrega Existe?}
B -->|Não| C[404 NOT_FOUND]
B -->|Sim| D{Empresa é Dono da Entrega?}
D -->|Não| E[404 NOT_ALLOWED]
D -->|Sim| F{É Status Final?}
F -->|Sim| G[401 NOT_ALLOWED]
F -->|Não| H{Já Aprovado?}
H -->|replannedBy=aproved| I[400 ALREADY_APROVED]
H -->|Não| J{Deve Aprovar Transportador?}
J -->|replannedBy≠trucker| K[401 MUST_APROVE_TRUCKER]
J -->|Sim| L[Definir status=planned]
L --> M[Definir replannedBy=aproved]
M --> N[Salvar - 200]
Observações
- O envio deve estar no status 'replanned'
- replannedBy deve ser 'trucker' (não pode ser 'aproved' nem vazio)
- Não
Request
Responses
- 200
- 400
- 401
- 403
- 404
Mudanças aprovadas com sucesso
Não pode ser aprovado. Já foi aprovado anteriormente.
Não pode ser aprovado. É necessário aprovar as alterações do transportador.
Não permitido. O estado final não permite aprovação.
Envio não encontrado. O service_code fornecido não existe ou não pertence à empresa do usuário autenticado.