sistema-de-chamados/docs/ticket-snapshots.md

33 lines
1.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Ticket snapshots e histórico
Este projeto agora preserva o “lastro” de dados sensíveis em tickets através de snapshots gravados no momento da criação e atualizações chave:
- requesterSnapshot: nome, email, avatar e equipes do solicitante no momento da abertura.
- assigneeSnapshot: nome, email, avatar e equipes do responsável atribuído.
- companySnapshot: nome, slug e flag isAvulso da empresa associada ao ticket.
Benefícios
- Tickets continuam exibindo nome do solicitante/empresa mesmo após exclusões ou renomeações.
- Comentários já utilizavam authorSnapshot; a lógica foi mantida e ampliada para tickets.
Fluxos atualizados
- Criação de ticket: snapshots do solicitante, responsável inicial (se houver) e da empresa são persistidos.
- Reatribuição e início de atendimento: atualizam o assigneeSnapshot.
- Exclusão de usuário: preenche requesterSnapshot de todos os tickets onde a pessoa é solicitante, antes da remoção.
- Exclusão de empresa: preenche companySnapshot de tickets vinculados, antes da remoção.
Consultas e hidratação
- Resolvers de lista e detalhes de tickets passaram a usar os snapshots como fallback quando o documento relacionado não existe mais (sem “Solicitante não encontrado”, salvo ausência total de dados).
Índices novos
- tickets.by_tenant_requester: otimiza buscas por histórico de um solicitante.
Backfill
- Há uma mutation de migração para preenchimento retroativo de snapshots: convex.migrations.backfillTicketSnapshots.
- Execute com um tenant por vez (e opcionalmente um limite) se necessário.