# SistemasWeby Financeiro

## Banco recomendado

- PostgreSQL 16
- Banco: `sistemasweby_financeiro`
- Usuário técnico: `sistemasweby_admin`
- Senha inicial do banco: `SWeby-DB#2026!Trocar`
- Usuário inicial do sistema: `admin@sistemasweby.local`
- Senha inicial do sistema: `SistemasWeby@2026!Trocar`

As duas senhas devem ser trocadas antes de publicar. A senha do banco fica apenas no arquivo `.env.local`, que está ignorado pelo Git. A senha do usuário do sistema é armazenada como hash.

## Início rápido com Docker

1. Copie `.env.example` para `.env.local`.
2. Troque `DATABASE_PASSWORD` e `SESSION_SECRET` em `.env.local`.
3. Se a senha contiver símbolos, atualize também a versão codificada em `DATABASE_URL`.
4. Execute `docker compose --env-file .env.local up -d`.
5. O PostgreSQL criará automaticamente o banco e executará `database/init.sql` no primeiro início.
6. Instale as dependências com `npm install` e inicie o app com `npm run dev`.

## Criação manual do banco

Execute como administrador do PostgreSQL:

```sql
CREATE ROLE sistemasweby_admin LOGIN PASSWORD 'SWeby-DB#2026!Trocar';
CREATE DATABASE sistemasweby_financeiro OWNER sistemasweby_admin ENCODING 'UTF8';
```

Depois, conectado ao novo banco:

```bash
psql -U sistemasweby_admin -d sistemasweby_financeiro -f database/init.sql
```

## Segurança

- Não coloque a senha diretamente em arquivos TypeScript ou no navegador.
- Não envie `.env.local` ao repositório; envie somente `.env.example` sem segredos reais.
- Em produção, configure as variáveis no painel da hospedagem.
- O módulo SQL deve continuar aceitando somente `SELECT`, com usuário separado de leitura quando for exposto a operadores.
- Chaves de IA, CEP e CNPJ ficam em variáveis de ambiente ou em cofre de segredos; a tabela `parametros` guarda apenas configurações não secretas.

## Escopo desta entrega

A interface navegável, os módulos, relatórios demonstrativos e exportações estão no app. O esquema PostgreSQL contém todas as entidades solicitadas. Para produção, ainda é necessário conectar as telas às rotas de API, ativar autenticação, escolher os fornecedores de CNPJ/IA e realizar testes de segurança e LGPD.

