sistema-de-chamados/docs/alteracoes-2025-11-08.md
2025-11-08 02:47:39 -03:00

4.7 KiB
Raw Permalink Blame History

Alterações — 08/11/2025

Concluído

  • Agenda (Resumo & Calendário) — nova rota /agenda (AppShell + Tabs) com filtros persistentes (AgendaFilters), visão Resumo com KPIs por status/SLA e cards por seção, e Calendário mensal com eventos coloridos por SLA. Dataset derivado em src/lib/agenda-utils.ts normaliza tickets Convex → blocos (upcoming, overdue, unscheduled, completed) e gera eventos sintéticos até conectarmos ao modelo definitivo de agendamentos.
  • Sidebar & navegação — link “Agenda” habilitado no AppSidebar, replicando permissões das páginas de tickets.
  • Datas de admissão/desligamentouse-local-time-zone + Calendar atualizados; todos os fluxos (novo ticket, edição dentro do ticket, portal) aplicam o mesmo picker e normalizam valores em UTC, eliminando o deslocamento -1/-2 dias para nascimento e início.
  • Layout dos campos personalizados — seção “Editar campos personalizados” reutiliza o grid/style do modal de criação, mantendo labels compactos, espaçamento consistente e colunas responsivas semelhantes ao layout do portal.
  • CSAT no ticket individualticket-csat-card.tsx mantém a experiência para colaboradores, mas oculta a avaliação/“Obrigado pelo feedback!” de agentes/gestores. Também bloqueia o card inteiro para agentes (somente admins visualizam a nota rapidamente).
  • Toast globalsrc/lib/toast-patch.ts higieniza títulos/descrições removendo pontuação final (!, ., reticências). Patch tipado evita any e replica o comportamento em todos os métodos (success, error, loading, promise, etc.).
  • Linha do tempo mais útil — mutations de campos personalizados ignoram saves sem alteração e registram apenas os campos realmente modificados, reduzindo spam como “Campos personalizados atualizados (Nome do solicitante, …)” quando nada mudou.
  • SLA por categoria/prioridade
    • Convex: tabela categorySlaSettings, helpers (categorySlas.ts) e drawer na UI de categorias permitem definir alvos por prioridade (resposta/solução, modo business/calendar, pausas e alert threshold).
    • Tickets: snapshot (ticket.slaSnapshot) no momento da criação inclui regra aplicada; computeSlaDueDates trata horas úteis (08h18h, segsex) e calendário corrido; status respeita pausas configuradas, com slaPausedAt/slaPausedMs e build*CompletionPatch.
    • Front-end: ticket-details-panel e ticket-summary-header exibem badges de SLA (on_track/at_risk/breached/met) com due dates; sla-utils.ts centraliza cálculo para UI.
    • Prisma: modelo Ticket agora persiste slaSnapshot, due dates e estado de pausa; migration 20251108042551_add_ticket_sla_fields aplicada e client regenerado.
  • Relatório “SLA & Produtividade” com corte por categoria/prioridade/reports/sla ganhou tabela dedicada mostrando para cada categoria/prioridade o volume e as taxas de cumprimento de resposta e solução (dados vêm de categoryBreakdown no slaOverview). O item correspondente na sidebar agora se chama “SLA & Produtividade” para deixar o destino mais claro.
  • Polyfill de performancesrc/lib/performance-measure-polyfill.ts previne performance.measure negativo em browsers/server; importado em app/layout.tsx.
  • Admin auth fallback — páginas server-side (/admin, /admin/users) tratam bancos recém-criados onde AuthUser ainda não existe, exibindo cards vazios em vez do crash AuthUser table does not exist.
  • Chips de admissão/desligamentoconvex/tickets.ts garante formTemplateLabel com fallback nas labels configuradas (ex.: “Admissão de colaborador”), corrigindo etiquetas sem acentuação na listagem/título do ticket.
  • listTicketForms otimizada — handler faz uma única leitura por tabela (templates, campos, configurações) e filtra em memória para o usuário/empresa atual. Remove o fan-out (3 queries x template) que excedia 1s e derrubava o websocket com erro 1006/digest 500.

Observações e próximos passos

  • Agenda ainda usa eventos mockados (derivados de due dates). Integrar ao modelo real de TicketSchedule quando estiver pronto (drag & drop, eventos por agente e digest diário).
  • SLA business-hours está fixo em 08h18h (BR). Precisamos conectar com calendários por fila/categoria + feriados/expediente custom.
  • Drawer de SLA nas categorias carece de validações finas (ex.: impedir negativos, tooltips com modo escolhido) e feedback de sucesso/erro.
  • Relatórios/backlog ainda não consomem o snapshot Prisma recém-adicionado; alinhar APIs que leem tickets direto do banco.

Testes & build

  • bun run lint, bun run test e bun run build passam (webpack e prisma generate); Convex queries relacionadas foram atualizadas para manter índices consistentes.