TDD — Signup email — Start
Status
Implementado
Contexto
Início do fluxo de signup por email. Envia código de verificação para o email.
Contratos
POST emailSignupStartHttp
- Method: POST
- Domain: resolvido por origin/referer → ministryId
- Payload:
{ email, password, name?, ministryId?, unitId? }— ministryId/unitId do backend quando não informados - Response 200:
{ ok: true, data: { expiresAt }, error: null, debug } - Erros: INVALID_EMAIL, INVALID_PASSWORD (min 6 chars), MINISTRY_REQUIRED, ACCOUNT_EXISTS (email já ativo)
Interface de Usuário (UI)
Primeiro passo do fluxo Signup email na RegisterPage.
Componentes e organização:
- Campo Email — TextField; validação de formato
- Campo Senha — TextField obscuro; mínimo 6 caracteres
- Campo Nome (opcional) — TextField
- Dropdown Igreja — obrigatório; lista de
publicChurchesHttp - Botão "Enviar código" ou similar — submit; loading durante request
Observação: Após sucesso, navega para tela de verificação (tdd-signup-verify); erros ACCOUNT_EXISTS, INVALID_EMAIL etc. exibidos inline ou SnackBar.
Fluxo
- Frontend: StartEmailSignup.execute(email, unitId)
- Backend: gera código, envia email (Resend), armazena em Firestore
- Redireciona para tela de verificação
Código de referência
frontend/lib/application/use_cases/start_email_signup.dartbackend/functions/src/application/use-cases/email-signup-flow.ts