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