# 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`)