docs: update GEMINI.md guidelines and MEMORY.md session logs for Fase 15
Build and Deploy (Gitea) / build-and-deploy (push) Successful in 2m4s
Details
Build and Deploy (Gitea) / build-and-deploy (push) Successful in 2m4s
Details
This commit is contained in:
parent
14e12d2096
commit
7691b0e3ab
|
|
@ -91,4 +91,7 @@
|
|||
57. **Correção de Autofill no Chrome**: Modais de IA devem desativar ou evitar elementos de formulário que induzam o Chrome a preencher incorretamente campos de texto irrelevantes (como busca de provas) com dados armazenados de login (ex: 'admin').
|
||||
58. **Limitação de Decimais em Formatação Financeira**: Todos os valores financeiros renderizados na tela (especialmente parcelas, multas e juros de atraso) devem ser limitados a exatamente duas casas decimais utilizando `toLocaleString('pt-BR', { minimumFractionDigits: 2, maximumFractionDigits: 2 })` para garantir conformidade visual e evitar o arredondamento incorreto do navegador com 3 ou mais dígitos.
|
||||
59. **Resiliência do Modelo de IA**: O backend em `server.selfhosted.js` implementa um filtro ativo contra modelos descontinuados da API Gemini (como `gemini-1.5-flash` e `gemini-2.5-flash-lite`) salvos no banco. O fallback forçado sob o capô deve ser sempre `gemini-2.0-flash`.
|
||||
|
||||
60. **Disparo em Massa (Pré-Matrícula)**: O disparo de mensagens em massa para interessados na pré-matrícula deve ser feito exclusivamente através da aba de Pré-Matrícula (`PreMatricula.tsx`) utilizando o botão e modal dedicados. O módulo geral de mensagens (`Messages.tsx`) deve ser mantido restrito apenas a alunos matriculados e ativos.
|
||||
61. **Metadados Open Graph Dinâmicos (Previews)**: A rota pública do formulário de pré-matrícula deve injetar metadados Open Graph (`og:title`, `og:description`, `og:image`) estaticamente no cabeçalho `<head>` a partir do Express antes do envio do HTML ao cliente. O link da imagem deve ser sempre absoluto, resolvendo o protocolo e host corretos a partir dos cabeçalhos do servidor.
|
||||
62. **Compactação de Imagens da Pré-Matrícula (MinIO)**: Todos os uploads de imagens no módulo de pré-matrícula (logos de preview e folders de promoção) devem ser interceptados no Express, compactados e redimensionados para no máximo 1200x1200px e convertidos para o formato JPEG progressivo com 75% de qualidade usando a biblioteca `sharp`. Uploads que não sejam de imagem (ex: PDFs) devem ser mantidos intactos.
|
||||
63. **Progress Bar no Upload (XMLHttpRequest)**: O upload de imagens de configuração (pré-visualização e folders promocionais) na tela administrativa da pré-matrícula deve utilizar a interface `XMLHttpRequest` para capturar eventos de progresso e renderizar uma barra de carregamento com porcentagem em tempo real, acompanhada de miniaturas ou previews ampliados de alta qualidade.
|
||||
|
|
|
|||
10
MEMORY.md
10
MEMORY.md
|
|
@ -111,3 +111,13 @@ Nesta sessão de trabalho, realizamos o "core" da transição do sistema EduMana
|
|||
- **Exibição Estrita de Duas Casas Decimais**: Adicionado o parâmetro `maximumFractionDigits: 2` em todos os locais onde valores financeiros são formatados no painel Manager (arquivos `Finance.tsx`, `Students.tsx` e `Courses.tsx`). Isso corrige de forma definitiva a exibição de parcelas vencidas com 3 casas decimais (ex: R$ 175,871), aplicando o formato monetário padrão brasileiro de exatamente 2 casas decimais.
|
||||
- **Fallback e Filtro de Modelos Gemini Descontinuados**: Atualizado o modelo padrão de IA nas camadas de banco (`database.js`), backend (`server.selfhosted.js`) e frontend (`Exams.tsx`) de `gemini-1.5-flash` para `gemini-2.0-flash`. Além disso, foi adicionado um filtro que intercepta modelos inexistentes ou inválidos configurados no banco (como `gemini-2.5-flash-lite`) e faz o redirecionamento automático sob o capô para o modelo estável `gemini-2.0-flash`, evitando erros 404.
|
||||
|
||||
### Fase 15: Disparo de Mensagens em Massa da Pré-Matrícula e Pré-Visualizações Dinâmicas no WhatsApp (Julho de 2026)
|
||||
- **Disparo em Massa na Pré-Matrícula**: Criado botão independente de "Disparo em Massa" na aba de Pré-Matrícula do Manager (`PreMatricula.tsx`). Ele abre um modal completo idêntico ao painel geral de mensagens (com filtros de destino: todas as inscrições, por turma ou individual; editor de texto; emojis; e envio de anexos via multipart/form-data). Removi as opções duplicadas de pré-matrícula da aba de Mensagens geral (`Messages.tsx`), que agora é exclusiva para alunos matriculados.
|
||||
- **Metadados Open Graph Dinâmicos (OG Tags)**: O gerador de HTML público do formulário de pré-matrícula no backend (`server.selfhosted.js`) foi atualizado para receber metadados dinâmicos da pré-matrícula. Agora, ele busca no PostgreSQL as configurações de título, descrição e imagem de pré-visualização. Ele monta e injeta as tags `<meta property="og:*">` estaticamente no cabeçalho `<head>` do HTML final entregue à rede social.
|
||||
- **Resolução de URL Absoluta de Mídia**: O Express agora detecta o protocolo e host reais das requisições via cabeçalhos proxy (`x-forwarded-proto`, `x-forwarded-host`) no Express e monta uma URL de imagem absoluta para que plataformas como o WhatsApp consigam puxar o preview do link.
|
||||
- **Upload de Imagem de Pré-visualização com Progresso e Exclusão**: Adicionada opção para upload e exclusão de imagem de visualização personalizada na aba de Configurações da Pré-Matrícula. Ela é integrada com o MinIO local via `/api/prematricula/upload`. A interface exibe uma barra de progresso em tempo real usando `XMLHttpRequest` e um banner de preview grande e de alta qualidade.
|
||||
- **Fallback da Logo Escolar**: Se nenhuma imagem de visualização personalizada for carregada nas configurações de pré-matrícula, o sistema exibe e usa automaticamente a logo padrão da escola configurada no perfil global.
|
||||
- **Compactação de Imagens e Conversão de Formato (Sharp)**: O endpoint `/api/prematricula/upload` agora detecta arquivos de imagem, redimensiona-os proporcionalmente (limite de até 1200x1200px) e converte-os para o formato JPEG progressivo com qualidade 75% usando a biblioteca `sharp`. Isso impede que o WhatsApp recuse previews de imagens WebP ou imagens muito pesadas (acima de 300KB), enquanto mantém os arquivos de PDF/documentos intactos.
|
||||
- **Upload com Progresso nos Folders Promocionais**: A mesma barra de progresso animada e upload via `XMLHttpRequest` foram integrados nas áreas de upload de folders/banners promocionais (no formulário de novo campo e edição de campo em `PreMatricula.tsx`).
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue