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
- Usuário loga (Google ou email) — sem perfil prévio
- Frontend detecta "perfil não encontrado"
- Chama registerPendingAccount (callable)
- Backend cria UserAccount em Firestore (status PENDING)
- Frontend recarrega perfil
Código de referência
frontend/lib/application/use_cases/register_current_user_pending_account.dartbackend/functions/src/interfaces/http/register-pending-account-controller.tsbackend/functions/src/application/use-cases/create-pending-account.ts