# Ellux Hub Comercial — prévia integrada

## O que foi entregue
- **HTML de prévia**: Hub compilado original preservado, com grupo "Gestão de Representantes" no menu, disponível visualmente apenas quando o protótipo mostra usuário gestor.
- **Módulo de representantes 2.1** incorporado integralmente em iframe local, com submenus: cadastro, mapa, prospecção, agenda, histórico, relatórios e configurações.
- **Código-fonte React modificado** com navegação de gestão, checagem de papel no cliente, e paleta visual azul e branco. O arquivo JSX precisa ser compilado no ambiente React do projeto original.
- **Esboço de banco/API** em `backend/`, preparado para implementação futura, NÃO executável como backend.
- **Exportador de backup local** para as duas chaves conhecidas.

## Como abrir
1. Extraia o ZIP inteiro, sem alterar a estrutura de pastas.
2. Na pasta extraída, execute `python -m http.server 8080` (Python instalado).
3. Abra `http://localhost:8080/ellux-hub-integrado.html` no Chrome/Edge.
4. Entre como usuário de gestão no protótipo e abra **Gestão de Representantes**.
5. Teste o fluxo com dados fictícios; confira a preservação dos dados originais e faça backup.

## Limitações e cuidados
- Esta é uma **integração funcional de navegação** por iframe. Os dois módulos continuam usando chaves distintas do localStorage. Não há banco compartilhado, sincronização, migração ou login único seguro.
- O login de demonstração do Hub e a ocultação do menu são controles **visuais**, não proteção de servidor. **Não usar com dados sensíveis reais em produção** até backend, autenticação e autorização reais.
- O código React foi atualizado, mas não compilado neste pacote. O HTML de prévia usa ponte de interface sobre o bundle original.
- O mapa depende de serviço geográfico externo e deve ser validado no navegador.
- Backup localStorage é por origem. Se os sistemas anteriores rodavam em origens diferentes, cada origem precisa de exportação individual e migração controlada.
- Não substituir arquivos antigos antes de validar cópias e dados. Não foi executada migração.

## Próximos passos técnicos
1. Unificar componentes React do módulo de representantes (eliminar iframe), definindo rotas e estado comuns.
2. Implementar backend autenticado e políticas de autorização do gestor.
3. Criar migração assistida de dados, com validação de CNPJ e vinculação de usuários.
4. Testes E2E de navegação, CRUD, impressão, mapa, máscaras e permissões.

## Ajuste de layout clean
- Menu lateral do Hub com fundo branco, textos cinza-azulados e seleção azul suave, seguindo o padrão do sistema de Representantes.
- Área de trabalho em cinza muito claro, cartões brancos e sem sombreamento pesado.
- Submenus de Gestão de Representantes com o mesmo padrão visual.
- O HTML de prévia recebe as alterações via CSS e ponte de navegação; o JSX fonte foi ajustado separadamente, mas não recompilado neste pacote.
- O funcionamento e as limitações da integração v1 permanecem os mesmos. 

## v1.2 — Contatos e automação de cadastro
- Contatos: editar nome, cargo, telefone, e-mail e vínculo com empresa; excluir com confirmação; incluir novo contato.
- Busca instantânea por nome, empresa, telefone, e-mail e CNPJ.
- Salva automaticamente na chave original do Hub (`ellux-hub-comercial-v1`), preservando as demais coleções.
- O HTML usa uma tela complementar de Contatos sobre o bundle anterior. Ao sair da tela depois de salvar alterações, recarrega o Hub para sincronizar o estado React em memória.
- Não há sincronização com ERP, WhatsApp externo ou backend real. A exclusão não altera automaticamente negociações antigas que mencionem o nome do contato.
- Faça backup antes de usar, pois o armazenamento continua local e a exclusão é definitiva.
- Não foi realizado teste E2E em navegador; a sintaxe JavaScript da camada de Contatos foi verificada.


## v1.3.1 — menu Gestão de Representantes
- Tipografia dos submenus alinhada ao menu lateral do Hub (Inter, 13px, peso 500).
- Título Gestão de Representantes agora é um botão com seta que expande/recolhe os submenus, sem apagar o conteúdo aberto.
- Estado expandido acessível via aria-expanded, com controle por teclado nativo.
- A versão validada 1.2 e a candidata 1.3 permanecem intactas.
- Alteração restrita ao HTML de prévia; não foi recompilado o bundle React.


## v1.3.2 — correção do menu
- Corrigido o evento que fazia a seta de expandir/recolher ser tratada como botão de navegação do Hub.
- Botão do título não recebe mais o estilo dos botões normais do Hub.
- Submenus padronizados para 14px (text-sm), mesma família Inter e mesmo peso dos demais itens.
- Título padronizado em 12px, peso 600, como os demais grupos.
- Nenhuma regra fiscal ou cadastro foi alterado.


## v1.4 — Organização solicitada dos menus
- Quatro grupos expansíveis: CRM, Força de Vendas, Representantes e Gestão.
- Automações transferidas para Configurações gerais; Atendimento ocultado; Roteiro de visitas transferido para CRM.
- Pedidos agora abre a lista de pedidos, com botão vermelho + Novo pedido no cabeçalho.
- Agenda de representantes não aparece como submenu isolado; sua unificação de dados com tarefas do CRM depende de migração/backend e NÃO está implementada.
- Configurações de representantes ficam em Gestão > Configurações gerais.
- Navegação reestruturada no HTML, mantendo handlers React originais; o código JSX não foi recompilado.
- A versão 1.2 segue validada e intocada. Sem testes E2E no navegador.


## v1.4.1 — Correções de navegação e aprovação
- Corrigida abertura das telas de Representantes: o menu chama a ponte diretamente, sem depender de clicar em um botão original oculto.
- Ao mudar um lead para Aprovado, o sistema cria automaticamente um cadastro incompleto de representante com os dados disponíveis.
- Ao salvar um lead já em Aprovado, a conversão também é executada.
- Vinculação `sourceLeadId` e `repId` evita criar outro representante quando o mesmo lead for aprovado novamente; também procura coincidência de e-mail ou telefone antes de criar.
- Nenhuma conta de acesso é concedida automaticamente.
- Persistência continua local, sem backend. Recomenda-se exportar backup antes de testar.
- A alteração é feita no HTML do Hub e no HTML do módulo de Representantes; a fonte JSX do Hub não foi recompilada.


## v1.4.2 — clique na linha inteira do submenu
- Nome e seta dos submenus são uma única área clicável, em todos os grupos.
- Corrigido conflito entre o clique da navegação nova e o listener antigo que fechava a tela de Representantes imediatamente após abri-la.
- Clicar no título de cada grupo continua expandindo/recolhendo seus submenus.
- Alterações somente no HTML da prévia; não foi recompilado o JSX.
- Ainda requer teste manual no navegador.

## v1.4.3 — Ajustes solicitados
- CRM / Novo negócio: modal com altura limitada à janela e rolagem interna (HTML e JSX).
- Roteiro de visitas: inclusão, edição e exclusão no HTML e no JSX. No HTML a interface complementar usa o mesmo armazenamento local e recarrega a página após salvar para sincronizar o React; não altera outras coleções.
- Pedidos / Excluídos: opção disponível somente à gestão; ação de restaurar removida do JSX e ocultada na prévia HTML. Os registros excluídos permanecem visíveis, sem edição.
- Representantes / Cadastro: ações reduzidas a Histórico Ficha, ícone de edição e ícone de WhatsApp. A exclusão pela tabela foi retirada; não foi apagado nenhum dado.
- Prospecção: removido o atalho genérico '+ Novo cadastro' no cabeçalho do módulo; o botão específico '+ Novo lead' permanece.
- Mapa: um marcador de engrenagem estilizada por UF com representantes cadastrados; número = total de cadastros naquele estado (inclusive inativos), não posição/ordem do representante. Não é reprodução vetorial exata da engrenagem da logomarca.
- As correções foram feitas sobre a versão 1.4.2; a versão validada 1.2 não foi alterada.
- Sintaxe dos scripts adicionais verificada; não houve teste de ponta a ponta no navegador.

## v1.4.4 — Ajustes de gestão e representantes
- Removido o botão global `+ Novo cadastro` do cabeçalho do módulo Representantes, independentemente do submenu. Botões específicos de inclusão (ex.: Novo representante, Novo lead) continuam disponíveis.
- Cadastro de representantes: Histórico e Ficha separados em botões independentes. Ficha mostra dados cadastrais e impressão; Histórico mostra registros vinculados e inclusão de registro.
- Acessos: código-fonte React atualizado com botão `Ver perfil` para cada vendedor, mostrando dados comerciais em modo leitura à gestão. **O bundle HTML distribuído não foi recompilado**, portanto essa última função está apenas no código-fonte, não na prévia HTML.
- Mantida a versão 1.2 como última validada. Esta é uma candidata e requer testes no navegador.


## v1.4.5 — Filtros de tabelas
Ao selecionar um valor no filtro de qualquer coluna do módulo Representantes, a caixa de opções se fecha automaticamente, mantendo o filtro aplicado. Ordenação A–Z / Z–A já fechava o painel e foi preservada. Alteração pontual sobre v1.4.4; versão validada v1.2 permanece intacta.
