Edit delivery
PUT/company/delivery/:service_code
Atualiza os detalhes de um envio existente. Os campos editáveis dependem do estado atual do envio.
Objetivo
Permitir que as empresas modifiquem certos aspectos de seus envios de acordo com o estado em que se encontram, mantendo um controle de alterações por meio de replannedBy.
Casos de Uso
- Modificar datas de carga/descarga em envios planejados ou aceitos
- Atualizar detalhes da carga (peso, altura, paletes, temperatura)
- Corrigir metros lineares de carga
- Iniciar um processo de replanejamento que requer aprovação
Campos Editáveis por Estado
Estado 'planned' ou 'replanned': Podem editar: etl_date, etd_date, pallets_num, fresh_cargo_temp, cargo_weight, cargo_height, linear_meters
Estado 'accepted': Podem editar: etl_date, etd_date
Qualquer outra edição:
- Altera o status para 'replanned'
- Define replannedBy como 'cia' (empresa)
Fluxo de Validação
flowchart TD
A[Receber Solicitação de Edição] --> B{Envio Existe?}
B -->|Não| C[404 NOT_FOUND]
B -->|Sim| D{Empresa é Dono do Envio?}
D -->|Não| E[404 NOT_ALLOWED]
D -->|Sim| F{É Estado Final?}
F -->|Sim| G[401 NOT_ALLOWED]
F -->|Não| H[Obter Chaves Editáveis]
H --> I{Alguma Chave Válida?}
I -->|Não| J[401 NOT_ALLOWED]
I -->|Sim| K[Atualizar Campos]
K --> L[Definir status=replanned]
L --> M[Definir replannedBy=cia]
M --> N[Salvar Alterações - 200]
Notas
- Não é possível editar envios em estado final (delivered, claimed, canceled)
- Qualquer edição altera automaticamente o estado para 'replanned'
- Se o motorista deve aprovar as alter
Request
Responses
- 200
- 400
- 401
- 404
Envio atualizado com sucesso
Operação não permitida. Ocorre quando:
- Os dados fornecidos são inválidos
Não autorizado. O token JWT é inválido ou expirou, ou os campos solicitados não podem ser editados para o estado atual.
Envio não encontrado. O service_code fornecido não existe ou não pertence à empresa do usuário autenticado.