# Kixikila Finance — Deploy SmarterASP.NET (Windows / iisnode)

**Pacote completo, pronto a correr — sem comandos no servidor.**
Inclui `node_modules` já preparado para Windows e o `.next` já compilado.

## Passos

1. **Extrai** tudo para a raiz do site (ex.: `C:\home\site\wwwroot`).
   Confirma que ficam na raiz: `server.js`, `web.config`, `.env`, `.next/`,
   `node_modules/`, `package.json`, `prisma/`, `src/`. **Não** dentro de subpasta.

2. No painel SmarterASP confirma (importante):
   - **Node ≥ 18.17**
   - **Aplicação a 64 bits** (NÃO "Enable 32-Bit Applications") — o motor Prisma
     e o SWC incluídos são x64; em 32 bits a app não arranca.
   - **Ficheiro de arranque = `server.js`** (o `web.config` já encaminha tudo).

3. Reinicia a aplicação. Abre o site e testa o login.

> Não precisas de `npm install` nem de build — está tudo incluído.

## Esta versão inclui

- Aviso global de **versão experimental** (topo de todas as páginas)
- Feedback de carregamento no **login** (spinner "A entrar…")
- Referência ao banco **BAI removida** ("Custódia bancária regulada")
- **Navegação inferior** no telemóvel + estado activo
- Admin → **Utilizadores**: criar, repor senha, mudar a minha senha,
  suspender/reactivar, mudar perfil
- Grupos: **só mensais**, **só privados**, **convite por link** (com Copiar/Partilhar)
- Nota "grupos públicos chegam em breve"

## Variáveis de ambiente (já no `.env`)

- `DATABASE_URL` — MySQL SmarterASP (já migrado e povoado; **não** corras seed)
- `JWT_SECRET` — segredo único deste pacote
- `NODE_ENV=production`

## Logins de demonstração (já na base de dados)

- Admin:  `admin@kixikila.ao` / `admin1234`
- Membro: `esperanca@kixikila.ao` / `senha1234`  (restantes: `senha1234`)

## Se der erro 500 ao arrancar

Vê a pasta `iisnode/` (criada ao lado do `server.js`) — contém os logs. Por ordem:
1. Aplicação em **32 bits** → muda para 64 bits.
2. **Node** demasiado antigo.
3. Arranque não aponta para `server.js`.

## Notas

- A base de dados **já tem tabelas e dados** — o deploy não lhe mexe.
- O cron de ciclos não corre sozinho. Para os ciclos avançarem, agenda
  `node_modules\.bin\ts-node src/lib/cron/tick.ts` no Agendador de Tarefas (opcional).
