# Ellux Hub Comercial — início da homologação e preparação de banco (v2.1)

## Estado atual (não confundir com implantação concluída)
- Interface de referência: **v2.0.3**, copiada sem alterações para `sistema-atual/`.
- **Não há banco criado, domínio configurado ou API ligada ao frontend**. A v2.0.3 ainda utiliza armazenamento do navegador.
- API PHP 8.2 e SQL MySQL/MariaDB são um **esqueleto técnico de homologação**. Não colocar em produção sem auditoria, testes de segurança e conexão da interface.
- Integrações Onclick e Digisac NÃO estão ativas; recuperação de senha por e-mail e Cloudflare Access NÃO estão ativos.
- O SQL é para MySQL/MariaDB, hipótese a confirmar no cPanel. **Não execute em PostgreSQL**.

## Homologação funcional da versão 2.0.3
[ ] Abrir o sistema e confirmar navegação dos menus.
[ ] Dashboard comercial zerado (sem indicadores de demonstração).
[ ] Minhas metas exibe 'Não definida', R$ 0,00 e '—', sem tela vazia.
[ ] Clientes, contatos, pedidos, transportadoras e produtos sem dados fictícios.
[ ] Representantes reais mantidos com dados principais, CORE, sociedade, dados bancários, cidades, histórico e tarefas.
[ ] Mapa apresenta círculos vermelhos com borda azul e quantidade por UF coerente com cadastros.
[ ] Filtros e buscas mantidos após navegar entre telas.
[ ] Gestão > Acessos permite editar e-mail no protótipo (ainda sem login seguro).
[ ] Documentos e contratos continuam acessíveis; testar exportação DOCX.
[ ] Fazer backup e verificar que o JSON contém os representantes reais.

## Preparação do banco — sem risco para os dados atuais
1. Confirmar no cPanel se existe **MySQL/MariaDB** e a versão.
2. Fazer **backup do armazenamento do navegador**, dos modelos DOCX e dos documentos assinados (estes podem estar no IndexedDB e não fazer parte do JSON).
3. Criar banco e usuário **novos** no cPanel, com permissões apenas nesse banco; não enviar senhas pelo chat.
4. Guardar `backend/private/config.php` fora de `public_html` e configurar HTTPS e `allowed_origin`.
5. Executar `backend/sql/001_initial.sql` em banco vazio; testar rollback/restauração.
6. Criar primeiro gestor por CLI com `php backend/scripts/create_admin.php "Nome" "email@dominio"`.
7. Publicar **somente** `backend/public/` como raiz da API e proteger arquivos privados.
8. Testar `GET /health`, login, sessão, CSRF, importação de representantes em base vazia e leitura da mesma contagem.
9. Criar adaptador de dados no frontend para migrar gradualmente do localStorage à API, preservando backups e vínculos.
10. Configurar SMTP para recuperação de senha e Cloudflare Access; testar antes de habilitar acesso remoto.
11. Integrar Digisac e Onclick **após** homologação do banco e autenticação.

## Contrato inicial da API
- GET `/health`: verifica banco.
- POST `/auth/login`: e-mail e senha, devolve token CSRF e cookie de sessão.
- GET `/auth/me`: verifica sessão.
- POST `/auth/logout`: encerra sessão (CSRF obrigatório).
- GET `/representatives/snapshot`: leitura das coleções representantes e vínculos (somente gestor).
- PUT `/representatives/snapshot`: **importação inicial uma única vez**, em banco vazio, JSON `{data:{reps,leads,tasks,history,categories,refusalReasons}}` (somente gestor).
- GET/PUT `/preferences`: preferências por usuário.

## Lacunas e bloqueios antes de produção
- Falta sincronização bidirecional e edição individual de cadastros pela interface.
- Falta reset de senha por SMTP, MFA Cloudflare, rate limit de login, gestão de sessões, política de backup automático e testes completos de permissões.
- Migração de arquivos de contratos assinados e documentos requer fluxo específico (IndexedDB/arquivos).
- A API de snapshot é exclusivamente para importação inicial; não usar como gravação cotidiana.
- Confirmar formatos reais de IDs e vínculos antes de importar.
- Não armazenar credenciais em arquivos públicos, no Git ou em mensagens.

## Testes feitos
- Verificação sintática dos arquivos PHP (`php -l`), validação da estrutura ZIP e inspeção da base 2.0.3.
- **Não realizados:** conexão real MySQL, deploy cPanel, envio SMTP, Cloudflare, testes de navegador ponta a ponta ou migração de dados reais.
