# 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)