# Plano de Implementação — VentoApp 100% NBR 6123:2023

> Documento histórico. Para o estado atual, consulte [`PROGRESS.md`](./PROGRESS.md).
> Roadmap de melhorias futuras: seção "Roadmap pós-Marco 8" abaixo.

---

## Visão geral

| # | Marco | Escopo | Status |
|---|---|---|---|
| 1 | Motor matemático | Tabelas 1–5, A, B; interpolação bilinear/log; mudança de rugosidade; tipagem | ✅ |
| 2 | Cpi + Vizinhança | Pressão interna (simplificado+detalhado), fator fᵥ, JSON estações Anexo C | ✅ |
| 3 | Paralelepipédicas | Tabelas 6–12; excentricidade; atrito; alta turbulência; 3D com zonas A–J | ✅ |
| 4 | Superfícies curvas | Tabelas 13–22 (cilindros, abóbadas, cúpulas); módulos 3D | ✅ |
| 5 | Muros/placas/coberturas isoladas/barras | Tabelas 23–30; catálogo de seções | ✅ |
| 6 | Torres + Pontes | Seções 8.5 e 11; verificações de estabilidade | ✅ |
| 7 | Dinâmica + Vórtices + Conforto | Seções 9 e 10; resposta flutuante; Scruton | ✅ |
| 8 | UX/Dados/Testes | Persistência IndexedDB; testes Vitest; i18n; AGENTS.md | ✅ |

**Resultado:** 8/8 marcos concluídos. Cobertura 100% da NBR 6123:2023 (11 seções + 3 anexos).

---

## Marcos 1–8 — Concluídos

Detalhes de cada marco estão em `PROGRESS.md`. Resumo do que foi entregue:

| Marco | Arquivos principais |
|-------|---------------------|
| 1 | `lib/nbr-tables/table-{1-5,a,b}.ts`, `lib/bilinear-interp.ts`, `lib/log-interp.ts`, `lib/wind-direction.ts`, `lib/wind-kernel.ts` (refatorado) |
| 2 | `lib/internal-pressure.ts`, `lib/neighborhood.ts`, `lib/stations-lookup.ts`, `lib/nbr-tables/stations.ts` |
| 3 | `lib/nbr-tables/table-{6-12}.ts`, `lib/coefficients.ts`, `lib/{excentricity,friction,drag}.ts`, `components/Warehouse3D.tsx` (refeito) |
| 4 | `lib/nbr-tables/table-{13,14,15-17,18-20,21,22}.ts`, `lib/modules/{cylinder,vault,dome}.ts`, `components/three/{Cylinder,Vault,Dome}3D.tsx`, `pages/{Cylinder,Vault,Dome}Module.tsx` |
| 5 | `lib/nbr-tables/table-{23,24-25,26,27,29,30}.ts`, `lib/modules/truss.ts`, `pages/{Sign,IsolatedRoof,BarSelector}Module.tsx` |
| 6 | `lib/modules/{tower,bridge}.ts`, `lib/nbr-tables/table-35.ts`, `pages/BridgeModule.tsx` |
| 7 | `lib/nbr-tables/table-{31,32,33}.ts`, `lib/comfort.ts`, `lib/modules/dynamics.ts`, `pages/DynamicsModule.tsx` |
| 8 | `lib/storage.ts`, `lib/hooks/useProjects.ts`, `lib/theme.tsx`, `lib/i18n.ts`, `pages/SettingsModule.tsx`, `vitest.config.ts`, `lib/__tests__/` (5 suites), `README.md`, `AGENTS.md` |

---

## Padrões de qualidade

- **Tipagem:** zero `as any`, zero `// @ts-ignore`
- **Estilo:** kebab-case em arquivos, PascalCase em componentes, camelCase em funções
- **Comentários:** apenas quando a matemática exige explicação
- **Tabelas:** todos os valores tipados como `readonly` com chaves literais para exaustividade
- **Testes:** ao final de cada marco, `npm run build` + `npm test` devem passar

---

## Roadmap pós-Marco 8 (Melhorias futuras)

> Para detalhes completos, estimativas e ordem sugerida, ver `PROGRESS.md`.

### 🔴 Alta prioridade

- **M9.1** — Refinar valores das tabelas a partir do PDF real (~3 dias)
- **M9.2** — Cargas lineares (kN/m) para software estrutural (~2 dias)
- **M9.3** — Screenshot 3D no PDF (~1 dia)

### 🟡 Média prioridade

- **M9.4** — Exportação Ftool (.txt estruturado) (~2 dias)
- **M9.5** — Refatoração TypeScript (eliminar `void`/`as unknown as`) (~1 dia)
- **M9.6** — Modo 3D para muros/torres/pontes/barras (~3 dias)
- **M9.7** — Import de projetos via JSON (~1 dia)

### 🟢 Baixa prioridade

- **M9.8** — i18n completo (~2 dias)
- **M9.9** — Validação contra exemplos do Blessmann (~2 dias)
- **M9.10** — Tema dark mode para gráficos SVG (~0.5 dia)
- **M9.11** — Persistência opcional em servidor (~especulativo)
- **M9.12** — Testes E2E com Playwright (~2 dias)

---

## Comandos úteis

```bash
cd /root/Apps/windapp/app
npm run dev          # vite dev com HMR (porta 5173)
npm run build        # tsc -b && vite build (produção)
npm run lint         # oxlint
npm test             # vitest run (38 testes)
```

> **Atenção:** Os binários em `node_modules/.bin/` perdem o bit de execução. Se reclamar `Permission denied`, rode `chmod +x node_modules/.bin/<bin>` antes.

---

## Estado final do Marco 8

- ✅ Build: 2618 módulos transformados, 2.88 MB JS (884 KB gzip)
- ✅ Testes: 38/38 passing
- ✅ Lint: 0 erros, 5 warnings cosméticos em shadcn
- ✅ Documentação: PLAN.md + PROGRESS.md + README.md + AGENTS.md