Entidades, relacionamentos, invariantes e agregados do Gestão de Tráfego.
Usuario
│
├──< Cliente ──< Relatorio ── (snapshot JSON)
│ │
│ ├──< Campanha ──< Diagnostico ──< RespostaDiagnostico
│ │ │ │
│ │ │ └──< PlanoCampanha ──< ItemPlano
│ │ ├──< Metrica
│ │ └──< Lead ──< InteracaoLead
│ │
│ └──< Lead
│
├──< Feedback
├──< EventoUso
├──< AuditLog
├──< TokenEmail
├──< Usuario2FA
├──< WebhookEvento
└──< FilaJob
senha_hash sempre presente.email_confirmado_em = null; só loga depois de confirmar.usuario (default) e admin.usuario_id.confirmacao_email, reset_senha.token_hash único, expira_em futuro, usado_em único por token.usado_em, não é reutilizável.UNIQUE usuario_id).secret presente; confirmado_em define se está ativo.Usuario (usuario_id obrigatório).ativo / inativo.slug único.campanhas.Usuario + um Cliente.canal_id).planejada, ativa, pausada, encerrada.leads, vendas, trafego, reconhecimento.slug único, opcoes (JSON) com pelo menos 2 opções.Usuario + uma Campanha.em_andamento, concluido.saudavel (≥80), atencao (60–79), risco (40–59), critico (<40).em_andamento por campanha.problema_principal (maior perda priorizando alta prioridade).Diagnostico + uma PerguntaDiagnostico.UNIQUE (diagnostico_id, pergunta_id).valor, pontos, recomendacao, prioridade.Usuario + uma Campanha + opcionalmente um Diagnostico.em_andamento, concluido, arquivado.ItemPlano.PlanoCampanhaService) ou manual.PlanoCampanha.Estrutura, Criativos, Rastreamento, …).alta, media, baixa.concluido_em.Usuario + uma Campanha.UNIQUE (campanha_id, data) — um lançamento por dia.Usuario + um Cliente.periodo_de ≤ periodo_ate, máximo 1 ano.gerado.Usuario + um Cliente + opcionalmente uma Campanha.novo, contatado, proposta, convertido, perdido.google_ads, meta_ads, tiktok_ads, instagram, organico,indicacao, outro.ultimo_contato_em, convertido_em, perdido_em.convertido, limpa perdido_em; ao moverperdido, limpa convertido_em e registra motivo_perda.Lead.nota, ligacao, email, whatsapp, reuniao, proposta.Usuario.bug, sugestao, duvida, elogio.novo, em_analise, resolvido, descartado.Usuario (pode ser null para anônimo).EventoUsoService::EVENTOS.outros. para auditoria.Usuario (SET NULL ao excluir).create, update, delete.***.google_ads, meta_ads.(origem, id_externo) quando processado/processando.recebido, processando, processado, erro.headers sanitizados.default, webhooks, emails.tentativas / max_tentativas; backoff exponencial.reservado_em + reservado_por (worker ID).concluido_em ou falhou_em.erro.500, disco.baixo, …).emCooldown() consulta o último envio da chave.| Agregado | Raiz | Contém |
|---|---|---|
| Cliente | Cliente |
(referências para campanhas e leads) |
| Campanha | Campanha |
(referências para diagnósticos, planos, métricas, leads) |
| Diagnóstico | Diagnostico |
RespostaDiagnostico |
| Plano | PlanoCampanha |
ItemPlano |
| Lead | Lead |
InteracaoLead |
| Relatório | Relatorio |
(snapshot imutável) |
ultimo_contato_em, convertido_em, perdido_em).ativo = 0).