testes/docs/PRAFROT_MANUTENCAO_BACKEND.md

50 lines
2.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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.