Skip to main content

TDD — Register Pending Account (callable)

Status

Implementado

Contexto

Cria conta pendente quando o usuário faz primeiro login e ainda não tem perfil. Chamado pelo frontend após autenticação (Firebase callable, não HTTP).

Interface de Usuário (UI)

O callable é acionado por um diálogo na HomePage quando o perfil não é encontrado no primeiro login:

  • Dropdown Igreja — usuário seleciona igreja (lista de publicChurchesHttp)
  • Botão Confirmar — dispara registerPendingAccount; loading durante chamada
  • Após sucesso: recarrega perfil e pode abrir AccountSheet

Observação: Não há tela dedicada; o diálogo é o mesmo do fluxo tdd-auto-registro; o callable pode ser usado em paralelo ou em alternativa ao USER_SELF_REGISTER via gateway.

Contratos

Callable registerPendingAccount

  • Context: usuário autenticado (Firebase Auth)
  • Payload: { ministryId: string, unitId?: string } — ministryId obrigatório
  • Response: { status: string, accountId: string }
  • Erros: unauthenticated (sem auth), invalid-argument (ministryId ausente)

Fluxo

  1. Usuário loga (Google ou email) — sem perfil prévio
  2. Frontend detecta "perfil não encontrado"
  3. Chama registerPendingAccount (callable)
  4. Backend cria UserAccount em Firestore (status PENDING)
  5. Frontend recarrega perfil

Código de referência

  • frontend/lib/application/use_cases/register_current_user_pending_account.dart
  • backend/functions/src/interfaces/http/register-pending-account-controller.ts
  • backend/functions/src/application/use-cases/create-pending-account.ts