3 KiB
3 KiB
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_planosseguem a estrutura padronizada comcodigo_origem,codigo_usuario(UUID do sistema),canais: { email: boolean, push: boolean }, snapshot eminfoe campos padrão de auditoria. - Persistência JSONB: Armazenados na coluna
usuarios_notificacaodeagendamentos_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'oucategoria === '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_buscaem_agendamentos_planos.tsconsolida o nome do plano, descrição, identificadores/nomes de pontos e nomes/e-mails de destinatários. Uma única buscaLIKEsobreinfo.texto_buscaresolve filtros em milissegundos sem JOINs. - Eliminação de Consultas N+1: O snapshot
info.pontosarmazena{ 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
- Regras de negócio documentadas em
DOCUMENTAÇÃO/regras-negocio/notificacao-nao-conformidade-plano.md - Schemas Zod atualizados em
sigma-comuns(zUsuarioNotificacao,zInfoUsuarioNotificacao,zUsuarios) - Regra de limite de linhas (máximo 250 linhas) respeitada em todos os arquivos Vue/TS
tsc --noEmit&biome checkcom 0 erros em todos os 4 pacotes (comuns,migracao,back,front)