# Próxima Fase — Arquitetura preparada (não desenvolvida no MVP)

O banco **já nasceu** com as tabelas destes módulos (ver
[MODELO-DE-DADOS.md](MODELO-DE-DADOS.md)). Entram como **atualização**, sem
reconstruir o que o MVP fez. Abaixo, o que cada um exige e onde se encaixa.

---

## 1. Estoque QR — Ativos (banheiros químicos) · Módulo 2B

**Tabelas prontas:** `ativo_qr`, `cabine`, `componente`, `composicao`,
`modelo_receita` (regra Simples/Luxo/Super Luxo).

- **Leitura de QR pelo celular:** o app (PWA) usa a câmera para ler o QR da
  cabine e dos componentes. Já temos PWA e telas mobile-first (a fila de
  Aprovações é a prova de conceito).
- **Modelo calculado, nunca digitado:** ao bipar a cabine + as peças, o sistema
  grava a `composicao` e calcula o `modelo_calculado` pela receita.
- **Status do ativo** (disponível/locado/manutenção) já existe em `cabine`.

## 2. Registro de manutenção e de limpeza dos banheiros

- **Manutenção:** reaproveita o padrão de `status_historico` (genérico) e de
  anexos (`RequisicaoAnexo` serve de molde) para registrar intervenções por
  ativo, com data, responsável e documento.
- **Limpeza:** evento simples por ativo/QR (data, responsável, GPS) — mesma
  estrutura de eventos.
- Liga também ao **backlog B2** (histórico de veículo expandido), que usa a
  mesma ideia de "eventos por ativo".

## 3. Logística / Locação · Módulo 3

**Tabelas prontas:** `ordem_locacao`, `entrega` (com `foto`, `gps_lat`,
`gps_lng`, vínculo cabine↔ordem).

- **Geolocalização:** os campos de GPS já existem em `entrega`. O PWA captura a
  posição no momento da entrega/devolução.
- **Foto de comprovante:** mesma infraestrutura de anexos do MVP.
- **Offline:** o QR da ordem carrega o payload completo; sincroniza pelo número
  da ordem quando houver sinal.

## 4. Controle orçamentário · Módulo 1.5

**Tabela pronta:** `orcamento` (mensal por centro de custo, anual por empresa).
O consumo já é medido na **aprovação** (status APROVADA/COMPRADA), então o alerta
de estouro (80% amarelo / 100% vermelho / 120% trava) liga sem retrabalho. A
"aprovação especial por estouro" é um segundo gatilho somado à alçada por valor
— a estrutura de etapas de aprovação (`requisicao_aprovacao`) já suporta.

---

## 4.1 Frota — Diesel, Sem Parar e custo total por veículo

**Tabela já criada:** `despesa_veiculo` (tipo: DIESEL · SEM_PARAR · PEDAGIO ·
MANUTENCAO · OUTRO; campos `valor`, `data`, `km`, `litros`, `descricao`,
`origem`). É genérica de propósito, para receber as próximas fontes **sem
refatorar**:

- **Diesel:** `tipo=DIESEL`, com `litros` e `km` (habilita custo/km e consumo).
- **Sem Parar:** `tipo=SEM_PARAR` (ou PEDAGIO), `origem="Sem Parar"`.
- **Custo total por veículo:** soma das **compras** vinculadas ao veículo
  (já temos — ver "Compras por veículo" no dashboard) **+** as despesas de
  `despesa_veiculo`. O dashboard de Frota já mostra a parte de compras; quando
  as despesas entrarem, o card "custo total" liga sobre a mesma base.
- **Importação de planilha Excel da frota:** prevista como uma rotina de import
  (upload de `.xlsx` → cria/atualiza `veiculo` e/ou lança `despesa_veiculo`).
  Reaproveita a biblioteca **ExcelJS** já usada na exportação. Sem tela no MVP.

> Nada disso foi desenvolvido agora — apenas a **estrutura** (tabela + enum +
> relacionamento) e o **dashboard** já preparados para receber os dados.

## 5. Integração ADM Server — via arquivo TXT (sem API)

O sistema já é a **fonte de verdade** e exporta planilha (Excel) dos lançamentos.
Para o ADM Server, a integração planejada é por **arquivo TXT** gerado pelo
sistema (sem necessidade de API):

**Tabela pronta:** `integracao_outbox` (fila de lançamentos a espelhar).

**Formato proposto (a confirmar com o fornecedor do ADM Server):** um registro
por linha, campos separados por `;`, codificação UTF-8, por exemplo:

```
TIPO;NUMERO;DATA;EMPRESA_CNPJ;CENTRO_CUSTO;CATEGORIA;FORNECEDOR_CNPJ;VALOR;STATUS
COMPRA;REQ-2026-000123;2026-06-08;00000000000101;FROTA;PECAS;12345678000190;3500.00;COMPRADA
```

- Geração sob demanda (por período) e/ou automática a partir da `integracao_outbox`.
- Reaproveita a mesma camada de exportação do Excel (já construída na Etapa 4).
- Quando o layout exato do ADM Server for fornecido, ajusta-se apenas o
  "tradutor" de saída — o resto não muda.

---

## Resumo

Nenhum item acima exige **refatoração** do MVP: as tabelas existem, os padrões
(eventos, anexos, exportação, aprovação em etapas, PWA mobile) já estão prontos.
Cada módulo entra como uma nova tela + regras, plugando na base existente.
