Pular para o conteúdo principal

Feature: Signup Confirmation

Introdução ao documento

Este documento descreve a feature de confirmação de cadastro em /{slug}/inscricao/confirmacao, responsável por pré-preencher, validar, persistir dados do participante e disparar o envio do OTP.

Evidências:

Versionamento

Atualizar este documento quando mudarem:

  • os campos do formulário de participante;
  • a estratégia de pré-preenchimento via AMEI/sessão;
  • o upsert em /v1/participantes/{cpf};
  • o disparo de OTP e o tracking de CompleteRegistration.

Evidências:

Referencial teórico

O mapeamento desta feature foi derivado da página protegida, do componente de confirmação, do formulário, das validações e dos endpoints internos de participante/OTP/tracking.

Evidências:

Visão geral

Atores

Pré-condições

Fluxo principal

  1. A página protegida renderiza SignupConfirmation (confirmacao/page.tsx#L11-L15).
  2. O componente detecta se amei_auth está ativo e monta participant a partir de user AMEI ou da sessão local (SignupConfirmation.component.tsx#L21-L78).
  3. Em AMEI, a feature busca o ID canônico do participante por CPF e atualiza a sessão com esse id (SignupConfirmation.component.tsx#L45-L53).
  4. ProfileForm valida os campos, normaliza strings e executa PUT /v1/participantes/{cpf} (ProfileForm.component.tsx#L72-L105, subscribeToCourse.api.ts#L8-L21).
  5. Em sucesso, a feature dispara /v1/otp/send, atualiza a sessão e faz router.push para /{slug}/inscricao/codigo (ProfileForm.component.tsx#L50-L57, ProfileConfirmation.component.tsx#L17-L20).

Fluxos alternativos

Regras de negócio

Estados possíveis

Endpoints envolvidos

Dados impactados

Pendências

  • A atualização de sessão em onUpdateProfile usa participant.ID e não participant.id, o que sugere divergência de contrato entre frontend e runtime.
  • modalMultipleInscriptions é setado a partir de canceledEnrolls, mas não participa de renderização observável nesta feature.

Evidências: