33 lines
1.6 KiB
Markdown
33 lines
1.6 KiB
Markdown
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, e‑mail, avatar e equipes do solicitante no momento da abertura.
|
||
- assigneeSnapshot: nome, e‑mail, 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.
|
||
|