diff --git a/memory/registro-otimizacoes-sessao-2026-08-26-aprimorar-ia.md b/memory/registro-otimizacoes-sessao-2026-08-26-aprimorar-ia.md deleted file mode 100644 index c5d37f6..0000000 --- a/memory/registro-otimizacoes-sessao-2026-08-26-aprimorar-ia.md +++ /dev/null @@ -1,33 +0,0 @@ -# Registro de Otimizações da Sessão — Aprimoramento da IA - -**Data:** 26/08/2026 -**Sessão / Contexto:** Implementação do sistema de Alertas de Não Conformidade por Plano de Monitoramento, observância do enum `usuarioCategoria` / `usuario_categoria`, exclusão de usuários de sistema nos alertas, exibição de pontos e destinatários na tabela de planos, e otimizações de consultas na camada `info`. - ---- - -## 📌 Principais Decisões e Padrões Consolidados - -### 1. Destinatários de Alertas de Não Conformidade (`usuarios_notificacao`) -- **Padrão de Entidade**: Os destinatários configurados em `agendamentos_planos` seguem a estrutura padronizada com `codigo_origem`, `codigo_usuario` (UUID do sistema), `canais: { email: boolean, push: boolean }`, snapshot em `info` e campos padrão de auditoria. -- **Persistência JSONB**: Armazenados na coluna `usuarios_notificacao` de `agendamentos_planos`, indexados e consultáveis sem necessidade de tabela intermediária. - -### 2. Tratamento de Categorias de Usuários e Exclusão de Contas de Sistema -- **Enum Oficial**: A categoria de usuário do e-Licencie Drive segue o enum oficial `usuarioCategoria` (`zUsuarioCategoria`: `externo`, `suporte`, `usuario`). -- **Exclusão de Contas de Sistema**: Ao listar destinatários para planos de monitoramento, contas de sistema (`usuario_categoria === 'sistema'` ou `categoria === 'sistema'`) são estritamente filtradas tanto no backend (`obterUsuarios` / `_usuarios_listar.ts`) quanto no frontend (`useSeletorUsuariosNotificacao.ts`), impedindo que contas de serviço/robô recebam alertas de campo. - -### 3. Tabela de Planos de Monitoramento (`PaginaConsultaPlanos.tabela.ts`) -- **Coluna `Pontos`**: Exibe diretamente os identificadores amigáveis e nomes dos pontos de monitoramento associados ao plano (ex: `P-01, P-02`), substituindo a contagem genérica anterior. -- **Coluna `Destinatários`**: Exibe a lista dos nomes dos usuários configurados para receber alertas no plano com suporte a truncamento. - -### 4. Otimização de Performance e Consultas via Camada `info` -- **Busca Multifatorial Indexada**: O gerador de `info.texto_busca` em `_agendamentos_planos.ts` consolida o nome do plano, descrição, identificadores/nomes de pontos e nomes/e-mails de destinatários. Uma única busca `LIKE` sobre `info.texto_busca` resolve filtros em milissegundos sem JOINs. -- **Eliminação de Consultas N+1**: O snapshot `info.pontos` armazena `{ codigo, id, nome }` de cada ponto no plano, permitindo renderização imediata de tabelas com uma única requisição. - ---- - -## 🔍 Checklist de Verificação de Artefatos - -- [x] Regras de negócio documentadas em `DOCUMENTAÇÃO/regras-negocio/notificacao-nao-conformidade-plano.md` -- [x] Schemas Zod atualizados em `sigma-comuns` (`zUsuarioNotificacao`, `zInfoUsuarioNotificacao`, `zUsuarios`) -- [x] Regra de limite de linhas (máximo 250 linhas) respeitada em todos os arquivos Vue/TS -- [x] `tsc --noEmit` & `biome check` com 0 erros em todos os 4 pacotes (`comuns`, `migracao`, `back`, `front`) diff --git a/rules/drive-entidades-internas.md b/rules/drive-entidades-internas.md index ea65f71..ee0cb13 100644 --- a/rules/drive-entidades-internas.md +++ b/rules/drive-entidades-internas.md @@ -1,11 +1,11 @@ -# Regra: Consultar Entidades do e-licencie via Drive Interno +# Regra: Consultar Entidades do e-Licencie via Drive Interno ## Contexto Dentro de `sigma-back/src/INFO/` e `sigma-back/src/_FILAS/`, quando um gerador de info ou um worker de fila precisa dos dados de **empreendedor**, **empreendimento** ou **usuário**, esses dados **não existem localmente no banco do SIGMA** — eles vivem no -e-licencie. A consulta deve ser feita via `eLicencieDrive` com token interno, +e-Licencie. A consulta deve ser feita via `eLicencieDrive` com token interno, nunca retornando campos em branco (`nome: ""`, `documento: ""`). ## Regra