diff --git a/PROXIMOS_PASSOS.md b/PROXIMOS_PASSOS.md index d89fd94..08a0033 100644 --- a/PROXIMOS_PASSOS.md +++ b/PROXIMOS_PASSOS.md @@ -47,7 +47,7 @@ Lista priorizada de evoluções propostas para o Sistema de Chamados. Confira `a - [ ] Incluir no cadastro: - [ ] Horas contratadas por mês (Convex pronto; falta migração Prisma) - [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: - [ ] 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) - [ ] Permitir exportar logs de auditoria (CSV/PDF)