fix: ajustes dashboards tv e titulos

This commit is contained in:
Esdras Renan 2025-11-06 11:21:40 -03:00
parent 80abd92e78
commit 1b32638eb5
9 changed files with 609 additions and 232 deletions

View file

@ -1,113 +0,0 @@
# Roadmap de Próximos Passos
Redeploy: atualização do segredo de provisionamento de máquinas aplicada na VPS. Este commit dispara o pipeline para atualizar a stack com o novo `.env`.
Lista priorizada de evoluções propostas para o Sistema de Chamados. Confira `agents.md` para visão geral, escopo atual e diretrizes de uso.
# 🧩 Permissões e acessos
- [x] Criar perfil **Gestor da Empresa (cliente)** com permissões específicas
- [x] Ver todos os chamados da sua empresa
- [x] Acessar relatórios e dashboards resumidos
- [x] Exportar relatórios em PDF ou CSV
- [x] Manter perfis: Administrador, Gestor, Agente e Colaborador
---
# 🧾 Tickets e atendimentos
- [x] Adicionar opção **Exportar histórico completo em PDF** (conversa, logs, movimentações)
- [x] Implementar **justificativa obrigatória ao pausar** o chamado
- [x] Categorias: Falta de contato / Aguardando terceiro / Em procedimento
- [x] Ajustar **status padrão dos tickets**
- [x] Pendentes
- [x] Aguardando atendimento
- [x] Pausados
- [x] (Remover “Aguardando resposta” e “Violados”)
- [x] Remover automaticamente da listagem ao finalizar o chamado
---
# 📊 Dashboards e relatórios
- [x] Criar **dashboard inicial com fila de atendimento**
- [x] Exibir chamados em: atendimento, laboratório, visitas
- [x] Indicadores: abertos, resolvidos, tempo médio, SLA
- [x] Criar **relatório de horas por cliente (CSV/Dashboard)**
- [x] Separar por atendimento interno e externo
- [x] Filtrar por período (dia, semana, mês)
- [x] Permitir exportar relatórios completos (CSV ou PDF)
---
# ⏱️ Controle de tempo e contratos
- [x] Adicionar botão **Play interno** (atendimento remoto)
- [x] Adicionar botão **Play externo** (atendimento presencial)
- [x] Separar contagem de horas por tipo (interno/externo)
- [x] Exibir e somar **horas gastas por cliente** (com base no tipo)
- [ ] Incluir no cadastro:
- [ ] Horas contratadas por mês (Convex pronto; falta migração Prisma)
- [x] Tipo de cliente: mensalista ou avulso
- [x] Enviar alerta automático por e-mail quando atingir limite de horas
---
# 💬 Comunicação e notificações
- [ ] Diferenciar **comentários públicos** e **privados**
- [ ] Público → envia e-mail ao cliente
- [ ] Privado → visível apenas internamente
- [ ] Enviar e-mail automático quando houver comentário público
- [ ] Incluir trecho da mensagem e link direto para o chamado
- [x] Criar **biblioteca de templates de comentário prontos**
- [x] Exemplo: “Agradecemos seu contato”, “Seu chamado foi atualizado”, etc.
---
# ⚙️ Extras e automações (futuro)
- [ ] Enviar alertas automáticos para gestores quando:
- [ ] Chamado estiver pausado há mais de 48h
- [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)