Roadmap: mark alerts (>=90%) as done; add 'Arestas e observações' with risks/next steps for cron, panel, filters, PDF, types and tests

This commit is contained in:
Esdras Renan 2025-10-07 15:57:53 -03:00
parent 9c8a43a6b1
commit 53c76a0289

View file

@ -47,7 +47,7 @@ Lista priorizada de evoluções propostas para o Sistema de Chamados. Confira `a
- [ ] Incluir no cadastro: - [ ] Incluir no cadastro:
- [ ] Horas contratadas por mês (Convex pronto; falta migração Prisma) - [ ] Horas contratadas por mês (Convex pronto; falta migração Prisma)
- [x] Tipo de cliente: mensalista ou avulso - [x] Tipo de cliente: mensalista ou avulso
- [ ] Enviar alerta automático por e-mail quando atingir limite de horas - [x] Enviar alerta automático por e-mail quando atingir limite de horas
--- ---
@ -67,6 +67,45 @@ Lista priorizada de evoluções propostas para o Sistema de Chamados. Confira `a
- [ ] Enviar alertas automáticos para gestores quando: - [ ] Enviar alertas automáticos para gestores quando:
- [ ] Chamado estiver pausado há mais de 48h - [ ] Chamado estiver pausado há mais de 48h
- [ ] Horas contratadas atingirem 90% do limite - [x] Horas contratadas atingirem 90% do limite
---
## Arestas e observações (implantado)
- Alerta de horas por cliente (≥ 90%)
- SMTP precisa estar configurado no Next e no Convex (envs SMTP_ e MAILER_SENDER_EMAIL) — sem isso o envio é pulado.
- Cron executa de hora em hora e só dispara às 08:00 America/Sao_Paulo (config `ALERTS_LOCAL_HOUR`). Hoje o cálculo do “início do dia” usa `-03:00` fixo; revisar se houver mudança de offset/DST.
- Prevenção de duplicados por empresa/dia é feita via consulta por intervalo. Podemos otimizar com índice específico (`by_tenant_company_created`).
- Divergência de fonte de gestores: rota Next usa Prisma (role MANAGER), cron usa Convex. Ideal unificar a origem ou sincronizar regularmente.
- Cliente SMTP atual usa AUTH LOGIN e `rejectUnauthorized: false`. Melhorar: validar certificado, timeout/retry e suporte a múltiplos destinatários.
- Painel de alertas enviados (Admin)
- Filtros atuais (empresa/período) aplicados no client; quando o Convex estiver atualizado, mover filtros para a query para melhor desempenho.
- Adicionar paginação/limite configurável e ordenação por colunas.
- Admin > Empresas — “Último alerta”
- Endpoint agrega por slug em loop (N chamadas ao Convex). Melhorar com query em lote (por IDs/empresa) no Convex.
- Exibir também percentual do uso e threshold para contexto.
- Relatórios com filtro de empresa (Backlog/SLA/CSAT)
- CSVs já aceitam `companyId`. Garantir que o Convex esteja na versão com `companyId` opcional nos relatórios.
- Considerar persistir seleção global de empresa (ex.: por sessão) para consistência entre páginas.
- Entrada de tickets por canal (dashboard)
- Seletor de empresa com busca dentro do dropdown. Melhorias: limpar busca ao fechar o menu; paginar/virtualizar se lista for grande.
- CSV acompanha `companyId` e período.
- Horas por cliente
- Busca por nome e filtro por empresa aplicados no UI; CSV aceita `q` e `companyId` para exportar filtrado.
- Considerar paginação e indicadores agregados (soma total por período; top N clientes).
- PDF do ticket
- Usa Inter de `public/fonts` quando disponível; fallback para Helvetica. Em ambientes serverless, garantir acesso aos arquivos de fonte.
- Melhorias possíveis: incorporar logo/cores por tenant e fontes customizadas por cliente.
- Tipos e testes
- Removidos `any` nas áreas alteradas. Ainda há `any` em módulos antigos (tickets/mappers/admin). Plano: tipificar por módulo gradualmente.
- Testes adicionados (CSV/TZ). Próximos: snapshots de CSVs de relatórios, validação de formatação de data/hora, e2e dos endpoints principais (modo mockado).
- [ ] Implementar **trilha de auditoria** (quem pausou, finalizou, comentou) - [ ] Implementar **trilha de auditoria** (quem pausou, finalizou, comentou)
- [ ] Permitir exportar logs de auditoria (CSV/PDF) - [ ] Permitir exportar logs de auditoria (CSV/PDF)