diff --git a/.agent b/.agent index 8bb558a..5ed5ad1 100644 --- a/.agent +++ b/.agent @@ -33,6 +33,21 @@ project_stack: optional_logic_layer: - "Go → WebAssembly (WASM), apenas se adotado explicitamente no projeto" +# ------------------------------------------------------------------- +# Painel administrativo (atualizações recentes) +# ------------------------------------------------------------------- +painel_policy: + - "Painel é server-side HTML (sem framework) e protegido por SENHA_PAINEL." + - "O painel deve ser usável em mobile: tabelas com scroll horizontal (overflow-x) e layout responsivo." + - "O painel exibe datas no fuso de Brasília (America/Sao_Paulo) no formato DD/MM/YYYY HH:mm." + - "Email deve ser exibido como link mailto:." + - "Telefone deve ter link tel: e ação para WhatsApp (https://wa.me/...), com normalização best-effort (somente dígitos; prefixo 55 quando parecer número BR de 10/11 dígitos)." + - "Ações do painel devem ser botões/ícones sem dependências externas (ex.: SVG inline)." + - "Persistência de preferências do painel (produto selecionado e filtro 'baixas') deve ficar no WASM (Go→WASM), sem JS de lógica inline no HTML." + - "O HTML do painel pode conter apenas bootstrap mínimo para carregar WASM (wasm_exec.js + painel.js)." + - "Exportação CSV do painel deve ser via endpoint protegido e streaming (sem carregar tudo em memória) e respeitar filtros atuais (produto e baixas)." + - "CSV deve usar ';' como separador e incluir BOM UTF-8 para compatibilidade com Excel PT-BR." + # ------------------------------------------------------------------- # Regras gerais # ------------------------------------------------------------------- @@ -42,6 +57,7 @@ rules: - "Evitar mudanças que quebrem widgets já embedados em clientes." - "Mudanças que impactem desenvolvedores OU usuários DEVEM ser documentadas." - "Código deve ser previsível, explícito e fácil de auditar." + - "Evitar dependências externas no painel e no widget (inclui ícones, libs e CDNs)." # ------------------------------------------------------------------- # Linguagem, nomes e comentários diff --git a/README.md b/README.md index cd90522..e54a623 100644 --- a/README.md +++ b/README.md @@ -222,6 +222,15 @@ Depois acesse: - Teste do widget: `http://localhost:8080/teste.html` - Painel: `http://localhost:8080/painel` (senha em `SENHA_PAINEL`) +Exportação CSV (painel): + +- Endpoint protegido: `GET /painel/export.csv` +- Parâmetros: + - `produto=` (obrigatório) + - `baixas=1` (opcional; exporta apenas notas baixas <=6) +- Exemplo: + - `http://localhost:8080/painel/export.csv?produto=exemplo&baixas=1` + Painel: - Acesse `http://localhost:8080/painel`