# divida-ativa-modumfiscal-web Frontend SPA autônomo para gestão de Dívida Ativa municipal. ## Stack - Vue 3 + Vite - PrimeVue 4 + TailwindCSS - Pinia + Vue Router - Axios → `divida-ativa-modumfiscal-service` (porta **8094**) ## Multi-tenancy (igual ao core) 1. `getTenant()` extrai o subdomínio de `window.location.hostname` (ex.: `tutoia.divida.modumfiscal.com.br` → `tutoia`) 2. Antes de montar a app, `bootstrapPrefeitura()` chama `GET /api/v1/publico/prefeitura/{dominio}` 3. Resposta da tabela `divida_ativa.T065_CONFIGAPP`: `codigoMunicipio`, `nomePrefeitura`, `dominio`, `template`, `pathLogo` 4. `prefeituraStore` persiste os dados; interceptors enviam `X-Municipio` e `X-Dominio` em todas as requisições ## Desenvolvimento local ```bash npm install npm run dev ``` - Vite: `http://localhost:5174` - `.env.development`: `VITE_API_URL=http://localhost:8094` (igual ao core — API direta, sem proxy) - Tenant vem do subdomínio da URL (`tutoia.divida.modumfiscal.com.br` → `tutoia`); em localhost puro o tenant é `localhost`, fallback `sistema` - Para simular prefeitura em dev: apontar hosts para `tutoia.divida.modumfiscal.com.br` ou acessar via nginx (`*.divida.modumfiscal.com.br`) ## Telas (MVP) | Rota | Descrição | |---|---| | `/app` | Tela inicial | | `/app/livro` | Listagem de livros | | `/app/livro/cadastro` | Cadastro/edição de livro | | `/app/folha` | Listagem de folhas | | `/app/folha/cadastro` | Cadastro/edição de folha | | `/app/cda` | Listagem de CDAs | | `/app/cda/cadastro` | Cadastro/edição de CDA | ## Deploy - Imagem Docker: `modumfiscal-divida-ativa-web` - URL: `{tenant}.divida.modumfiscal.com.br` (ex.: `tutoia.divida.modumfiscal.com.br`) - Nginx encaminha `/api/` para o serviço Java e `/` para o SPA ## Variáveis | Variável | Descrição | |---|---| | `VITE_API_URL` | Base da API (`http://localhost:8094` em dev; vazio em prod = same-origin via nginx) |