36 lines
2.8 KiB
Markdown
36 lines
2.8 KiB
Markdown
# Feature Specification: Cadastro Rico de Cliente (Perfil Completo no Registro)
|
|
|
|
**Feature Branch**: `012-register-rich-profile`
|
|
**Created**: 2026-04-14
|
|
**Status**: In Progress
|
|
|
|
## Contexto
|
|
|
|
A página `/cadastro` atualmente coleta apenas nome, email, senha e confirmação de senha. A feature 011 adicionou campos ricos ao model `ClientUser` (phone, whatsapp, cpf, birth_date, address_*) e ao painel admin, mas o fluxo de auto-registro do cliente (`/cadastro`) não foi atualizado. Esta feature expande o formulário público de cadastro para também permitir que o próprio cliente informe seus dados de contato (telefone, WhatsApp) e documento (CPF) já no ato do registro. Os campos de endereço e data de nascimento serão opcionais e disponíveis. O formulário mantém etapas lógicas para não sobrecarregar o usuário.
|
|
|
|
## User Stories
|
|
|
|
### US1 — Dados de contato no cadastro (P1)
|
|
**Given** usuário na página `/cadastro`, **When** preenche o formulário, **Then** pode opcionalmente informar telefone e WhatsApp além de nome/email/senha.
|
|
|
|
### US2 — CPF no cadastro (P1)
|
|
**Given** usuário na página `/cadastro`, **When** preenche o formulário, **Then** pode opcionalmente informar CPF com máscara automática.
|
|
|
|
### US3 — Dados de endereço no cadastro (P2)
|
|
**Given** usuário na página `/cadastro`, **When** expande seção de endereço (ou preenche naturalmente), **Then** pode informar logradouro, número, complemento, bairro, cidade, estado e CEP.
|
|
|
|
### US4 — Data de nascimento no cadastro (P2)
|
|
**Given** usuário na página `/cadastro`, **When** preenche seus dados pessoais, **Then** pode informar data de nascimento.
|
|
|
|
### US5 — Campos opcionais sem bloqueio (P1)
|
|
**Given** usuário preenchendo o cadastro, **When** não preenche campos opcionais, **Then** o cadastro é realizado normalmente sem erro.
|
|
|
|
## Acceptance Criteria
|
|
- `RegisterIn` schema em `auth.py` aceita os novos campos opcionais: `phone`, `whatsapp`, `cpf`, `birth_date`, `address_street`, `address_number`, `address_complement`, `address_neighborhood`, `address_city`, `address_state`, `address_zip`
|
|
- Endpoint `POST /auth/register` passa novos campos ao `ClientUser` ao criar
|
|
- `RegisterCredentials` em `types/auth.ts` expandido com campos opcionais
|
|
- `registerUser` em `services/auth.ts` passa os novos campos (exceto `confirmPassword`)
|
|
- `RegisterPage.tsx` expandida com seções: **Acesso** (nome, email, senha, confirmar senha), **Contato** (telefone, WhatsApp, CPF, data de nascimento), **Endereço** (logradouro, número, complemento, bairro, cidade, estado, CEP)
|
|
- Máscaras automáticas para CPF (`000.000.000-00`), telefone (`(00) 00000-0000`) e CEP (`00000-000`)
|
|
- Visual consistente com o design atual da `RegisterPage` (dark, `border-white/6`, `bg-[#0f1011]`)
|
|
- Seções de Contato e Endereço separadas visualmente mas acessíveis sem scroll excessivo
|