Fluxos
Este documento descreve o fluxo de instalação de templates. O objetivo é suportar instalação com ou sem plano/cupom, usando o caminho: Auth → Profile → Checkout → Success.
Etapas do Funil
Seção intitulada “Etapas do Funil”| Step | Descrição | Rota |
|---|---|---|
template_view | Visualização do template | /t/{slug} |
auth_pending | Autenticação | /t/{slug}/install/ |
profile_pending | Completar perfil + aceitar compartilhamento | /t/{slug}/install/profile |
checkout_pending | Checkout | /t/{slug}/install/checkout |
success | Sucesso | /t/{subscriptionId}/install/success |
Transições principais
Seção intitulada “Transições principais”| Estado Atual | Evento | Próximo Estado | Observação |
|---|---|---|---|
template_view | install_click | auth_pending | Início do funil |
auth_pending | auth_success | profile_pending | Usuário sem perfil completo |
auth_pending | auth_success | checkout_pending | Usuário com perfil completo |
auth_pending | auth_error | auth_pending | Exibe erro e permite retry |
profile_pending | profile_submit | checkout_pending | Dados válidos + consentimento |
checkout_pending | payment_success | success | Assinatura criada |
checkout_pending | payment_error | checkout_pending | Exibe erro e permite retry |
Regras de navegação
Seção intitulada “Regras de navegação”- Se o usuário já estiver autenticado e com perfil completo, pode ir direto para
checkout_pending. - Se não houver plano/cupom, o checkout pode ser apresentado como R$ 0 ou com plano nulo (de acordo com o backend).
- O
subscriptionIdé usado apenas na rota de sucesso. - O consentimento de compartilhamento é obrigatório para avançar do perfil para o checkout.
Estado mínimo do funil
Seção intitulada “Estado mínimo do funil”interface InstallationState { sessionId: string | null; currentStep: | "template_view" | "auth_pending" | "profile_pending" | "checkout_pending" | "success"; completedSteps: Array< | "template_view" | "auth_pending" | "profile_pending" | "checkout_pending" | "success" >; templateId?: string; templateSlug?: string; planId?: string | null; couponId?: string | null; consent?: boolean;}Eventos de tracking
Seção intitulada “Eventos de tracking”Os eventos estão em Tracking. Eventos adicionais podem ser criados para insights mais detalhados, mas não devem ser usados para controle de fluxo.