Skip to main content

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

  1. Frontend: StartEmailSignup.execute(email, unitId)
  2. Backend: gera código, envia email (Resend), armazena em Firestore
  3. Redireciona para tela de verificação

Código de referência

  • frontend/lib/application/use_cases/start_email_signup.dart
  • backend/functions/src/application/use-cases/email-signup-flow.ts