testes/docs/PADROES_ROTAS_APRESENTACAO.md

9.2 KiB
Raw Blame History

Padrões de Rotas de Apresentação (BackFront)

Objetivo: Contrato único por rota de listagem: endpoint, resposta esperada e colunas sugeridas para o front.
Uso: Ao inserir ou alterar uma rota "apresentar", atualizar este documento; as views devem usar as colunas sugeridas aqui (ver comentário no código: "Ver docs/PADROES_ROTAS_APRESENTACAO.md § NomeDaRota").


Ambiente: Prafrot (Prafrota)

GET /cadastro_frota/apresentar

  • Descrição: Lista veículos cadastrados na frota.
  • Service: prafrotService.getVehicles().
  • View: Veículos / Status Frota.

Resposta esperada: array de objetos com campos, por exemplo: idveiculo_frota, placa, modelo, base, motorista, status, manutencao, atuacao, proprietario, vecfleet, obs, combustivel, tipo, marca, ano, cidade, etc.

Colunas sugeridas (copiar para a view que usa ExcelTable):

[
  { field: 'placa', header: 'Placa', width: '100px', className: 'font-mono font-bold text-emerald-600 dark:text-emerald-500' },
  { field: 'modelo', header: 'Modelo', width: '150px' },
  { field: 'base', header: 'Unidade', width: '120px' },
  { field: 'motorista', header: 'Motorista', width: '180px' },
  { field: 'status', header: 'Status', width: '140px' },
  { field: 'manutencao', header: 'Manutenção', width: '120px' },
  { field: 'atuacao', header: 'Atuação', width: '140px' },
  { field: 'proprietario', header: 'Proprietário', width: '140px' },
  { field: 'vecfleet', header: 'VecFleet', width: '140px' },
  { field: 'obs', header: 'OBS', width: '250px' }
]

filterDefs sugeridos: [{ field: 'placa', label: 'Placa', type: 'text' }, { field: 'motorista', label: 'Motorista', type: 'text' }, { field: 'base', label: 'Unidade', type: 'select' }]


GET /manutencao_frota/apresentar

  • Descrição: Lista todas as manutenções (total).
  • Service: prafrotService.getMaintenance().
  • View: MaintenanceView (Manutenção).

Resposta esperada: array de objetos com campos: idmanutencao_frota, atendimento, placa, placa_reserva, modelo, oficina, base_frota, cidade, uf, proprietario, responsavel, motivo_atendimento, status, manutencao, status_frota_veiculo, data_solicitacao, data_agendamento, data_parada_veiculo, previcao_entrega, data_finalizacao, data_retirada, orcamento_inicial, orcamento_final, dif_orcamento, condicao_pagamento, validacao_financeiro, resp_aprovacao, sla_oficina, sla_pos_oficina, obs, endereco_prestador, pdf_orcamento.

Colunas sugeridas (ver MaintenanceView.jsx já alinhado):

[
  { field: 'idmanutencao_frota', header: 'ID', width: '80px' },
  { field: 'atendimento', header: 'ATENDIMENTO', width: '100px' },
  { field: 'placa', header: 'PLACA', width: '100px', className: 'font-mono font-bold text-emerald-600 dark:text-emerald-500' },
  { field: 'placa_reserva', header: 'PLACA RESERVA', width: '100px' },
  { field: 'modelo', header: 'MODELO', width: '110px' },
  { field: 'oficina', header: 'OFICINA', width: '160px' },
  { field: 'base_frota', header: 'BASE FROTA', width: '100px' },
  { field: 'cidade', header: 'CIDADE', width: '120px' },
  { field: 'uf', header: 'UF', width: '60px' },
  { field: 'proprietario', header: 'PROPRIETÁRIO', width: '110px' },
  { field: 'responsavel', header: 'RESPONSÁVEL', width: '120px' },
  { field: 'motivo_atendimento', header: 'MOTIVO ATEND.', width: '120px' },
  { field: 'status', header: 'STATUS', width: '140px' },
  { field: 'manutencao', header: 'MANUTENÇÃO', width: '90px' },
  { field: 'status_frota_veiculo', header: 'STATUS FROTA', width: '120px' },
  { field: 'data_solicitacao', header: 'DATA SOLIC.', width: '100px' },
  { field: 'data_agendamento', header: 'DATA AGEND.', width: '100px' },
  { field: 'data_parada_veiculo', header: 'DATA PARADA', width: '100px' },
  { field: 'previcao_entrega', header: 'PREV. ENTREGA', width: '100px' },
  { field: 'data_finalizacao', header: 'DATA FINAL.', width: '100px' },
  { field: 'data_retirada', header: 'DATA RETIRADA', width: '100px' },
  { field: 'orcamento_inicial', header: 'ORÇ. INICIAL', width: '110px' },
  { field: 'orcamento_final', header: 'ORÇ. FINAL', width: '110px' },
  { field: 'dif_orcamento', header: 'DIF. ORÇ.', width: '100px' },
  { field: 'condicao_pagamento', header: 'COND. PAG.', width: '100px' },
  { field: 'validacao_financeiro', header: 'VALID. FINANC.', width: '110px' },
  { field: 'resp_aprovacao', header: 'RESP. APROV.', width: '110px' },
  { field: 'sla_oficina', header: 'SLA OFICINA', width: '100px' },
  { field: 'sla_pos_oficina', header: 'SLA PÓS-OF.', width: '100px' },
  { field: 'obs', header: 'OBS', width: '180px' },
  { field: 'endereco_prestador', header: 'END. PRESTADOR', width: '180px' },
  { field: 'pdf_orcamento', header: 'PDF ORÇAMENTO', width: '100px' }
]

filterDefs sugeridos: [{ field: 'placa', label: 'Placa', type: 'text' }, { field: 'oficina', label: 'Oficina', type: 'select' }, { field: 'status', label: 'Status', type: 'select' }, { field: 'motivo_atendimento', label: 'Motivo Atendimento', type: 'select' }, { field: 'responsavel', label: 'Responsável', type: 'select' }, { field: 'cidade', label: 'Cidade', type: 'select' }]


GET /manutencao_frota/aberto_fechado/apresentar

  • Descrição: Lista manutenções agrupadas em aberto/fechado.
  • Service: prafrotService.getAbertoFechado().
  • Uso: Filtro na MaintenanceView (statusFilter: total | aberta | fechada).

Resposta esperada: estrutura com listas ou grupos aberta e fechada (ou array com campo de status). Formato exato depende do backend; a view filtra localmente se receber array único.


GET /disponibilidade_frota/apresentar

  • Descrição: Lista disponibilidade de veículos.
  • Service: prafrotService.getAvailability().

Resposta esperada: array de objetos; campos típicos a confirmar com o backend. Colunas sugeridas: espelhar campos retornados (ex.: placa, disponivel, periodo, etc.).


GET /moki_frota/apresentar

  • Descrição: Lista checklists Moki.
  • Service: prafrotService.getMoki().

GET /status_frota/apresentar

  • Descrição: Lista status da frota.
  • Service: prafrotService.getStatus().

GET /monitoramento_frota/apresentar

  • Descrição: Lista monitoramento.
  • Service: prafrotService.getMonitoring().

GET /sinistro_devolucao_venda_frota/apresentar

  • Descrição: Lista sinistros/devoluções/vendas.
  • Service: prafrotService.getClaims().

GET /oficinas_frota/apresentar

  • Descrição: Lista oficinas.
  • Service: prafrotService.getWorkshops().

Ambiente: Workspace / Financeiro-v2

GET /extrato/apresentar

  • Descrição: Extrato bancário; filtrar por tipoOperacao: "C" = receitas, "D" = despesas.
  • Service: extratoService.fetchExtrato().

Resposta esperada: array de objetos com campos, por exemplo: idextrato, dataEntrada (ou data), descricao, valor, tipoOperacao, categoria, beneficiario_pagador (ou beneficiario), caixinha, etc.

Colunas sugeridas (transações):

[
  { field: 'data', header: 'Data', width: '120px' },
  { field: 'descricao', header: 'Descrição', width: '400px' },
  { field: 'valor', header: 'Valor', width: '150px' },
  { field: 'tipo', header: 'Tipo', width: '120px' },
  { field: 'status', header: 'Status', width: '120px' }
]

GET /categorias/apresentar

  • Descrição: Lista categorias para conciliação/labels.
  • Service: extratoService.fetchCategorias() ou workspaceConciliacaoService.

Resposta esperada: array de objetos (ex.: id, nome, descricao, tipoMovimento, cor).


GET /caixinhas/apresentar

  • Descrição: Lista caixinhas.
  • Service: extratoService.fetchCaixinhas() ou workspaceConciliacaoService.

Resposta esperada: array de objetos (ex.: id, nome, banco, agencia, conta).


GET /contas_a_pagar/apresentar

  • Descrição: Contas a pagar planejadas.
  • Service: workspaceDespesasService (ou equivalente).

Resposta esperada: array com campos do planejado (categoria, valor, data, etc.). Colunas sugeridas: espelhar campos retornados.


GET /saldo/armazenado/apresentar

  • Descrição: Saldos armazenados (histórico); usado para último saldo do mês anterior no fluxo de caixa.
  • Service: extratoService.fetchSaldoArmazenado().

Resposta esperada: array (ou objeto único) com data_saldo, saldo_disponivel, mes, ano, idsaldos_mensais, etc.


Ambiente: GR

GET /cadastro/drivers/apresentar

  • Descrição: Lista motoristas (cadastro).
  • Service: grService (getRegistrations ou equivalente).

GET /contrato/drivers/apresentar

  • Descrição: Lista motoristas em contrato ativo.
  • Service: grService.

Como usar este documento

  1. Nova rota de apresentação: adicione um bloco acima com endpoint, resposta esperada e colunas sugeridas; na view, use as colunas do doc e comente: // Ver docs/PADROES_ROTAS_APRESENTACAO.md § NomeDaRota.
  2. Backend mudou: atualize a "Resposta esperada" e as "Colunas sugeridas" aqui; depois ajuste a view para manter alinhamento.
  3. Playground: a seção "Rotas e Ambientes" pode exibir este documento por ambiente para gerenciamento visual.