50 lines
2.4 KiB
Markdown
50 lines
2.4 KiB
Markdown
# Prafrot – Manutenção: regras de backend
|
||
|
||
Regras que o **backend** deve implementar para alinhar com o frontend da tela de Manutenção (Prafrot).
|
||
|
||
---
|
||
|
||
## 1. Garantir que, ao atualizar um registro, as datas não fiquem vazias
|
||
|
||
- **Rota**: `PUT /manutencao_frota/:id`
|
||
- **Regra**: ao receber um payload de atualização, **não sobrescrever** com valor vazio campos de data que já existem no registro.
|
||
- **Campos de data**: `data_solicitacao`, `data_agendamento`, `data_parada_veiculo`, `previcao_entrega`, `data_finalizacao`, `data_retirada`.
|
||
- **Comportamento esperado**: se o cliente envia `data_finalizacao: ""` ou omite o campo, o backend mantém o valor atual em banco. Apenas valores não vazios (ex.: `"2025-01-15"`) devem alterar o registro.
|
||
|
||
O frontend já preserva datas existentes ao montar o payload de edição; o backend deve seguir a mesma lógica para evitar limpar datas acidentalmente.
|
||
|
||
---
|
||
|
||
## 2. Validar que todas as datas estejam preenchidas antes de permitir fechar uma manutenção
|
||
|
||
- **Rota**: `PUT /manutencao_frota/fechar_manutencao/:id`
|
||
- **Regra**: **recusar** o fechamento (ex.: 400) se alguma das datas abaixo estiver vazia:
|
||
- `data_solicitacao`
|
||
- `data_agendamento`
|
||
- `data_parada_veiculo`
|
||
- `previcao_entrega`
|
||
- `data_finalizacao`
|
||
- `data_retirada`
|
||
- **Resposta sugerida**: mensagem clara indicando quais datas estão faltando (ex.: `"Não é possível fechar: preencha Data Solicitação, Data Finalização."`).
|
||
|
||
O frontend já valida essas mesmas datas antes de chamar o fechamento; a validação no backend é obrigatória para segurança e consistência.
|
||
|
||
---
|
||
|
||
## 3. Formatar campos de orçamento como moeda (backend)
|
||
|
||
- **Campos**: `orcamento_inicial`, `orcamento_final`, `dif_orcamento`.
|
||
- **Regra**: armazenar e expor **valores numéricos** (ex.: `1234.56`). O frontend formata em pt-BR (R$ 1.234,56) na exibição.
|
||
- **APIs**: aceitar número em `POST /manutencao_frota` e `PUT /manutencao_frota/:id`; retornar número nos JSONs de listagem e detalhe.
|
||
|
||
---
|
||
|
||
## 4. Auto-preenchimento de datas no formulário (frontend)
|
||
|
||
O frontend já trata:
|
||
|
||
- Normalização de datas ao carregar para edição (ISO, `YYYY-MM-DD`, `DD/MM/YYYY` → `YYYY-MM-DD`).
|
||
- Uso de `type="date"` com valores normalizados para evitar campos vazios por formato incorreto.
|
||
|
||
O backend deve retornar datas em formato **ISO** ou **YYYY-MM-DD** quando possível, para facilitar o preenchimento correto no formulário.
|