.
This commit is contained in:
parent
c718c8f1a7
commit
1a25edc274
1 changed files with 33 additions and 0 deletions
|
|
@ -0,0 +1,33 @@
|
||||||
|
# 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`)
|
||||||
Loading…
Add table
Add a link
Reference in a new issue