sass-imobiliaria/.specify/features/011-enrich-client-profile/spec.md

34 lines
2.3 KiB
Markdown

# Feature Specification: Enriquecimento do Perfil de Cliente
**Feature Branch**: `011-enrich-client-profile`
**Created**: 2026-04-14
**Status**: In Progress
## Contexto
O cadastro de clientes atualmente possui apenas: nome, email, senha e tipo (role). Esta feature expande o perfil do cliente adicionando: telefone, WhatsApp, CPF, data de nascimento, endereço completo (logradouro, número, complemento, bairro, cidade, estado, CEP) e observações internas do admin. A página de gerenciamento de clientes no admin também será redesenhada com busca, avatar com iniciais e exibição rica das novas informações.
## User Stories
### US1 — Cadastro rico (P1)
**Given** admin em novo cliente, **When** preenche o formulário, **Then** pode informar dados pessoais (CPF, nascimento), contato (tel, whatsapp), endereço completo e observações internas.
### US2 — Exibição rica no admin (P1)
**Given** admin na listagem de clientes, **When** visualiza a tabela, **Then** vê avatar com iniciais, e-mail, telefone com link `tel://`, link WhatsApp, CPF, endereço resumido, tipo e data de cadastro.
### US3 — Busca de clientes (P2)
**Given** admin na listagem, **When** digita na barra de busca, **Then** filtra por nome, e-mail, telefone ou CPF em tempo real.
### US4 — Máscaras de campo (P2)
**Given** admin digitando no formulário, **When** preenche CPF/telefone/CEP, **Then** máscara é aplicada automaticamente.
### US5 — Formulário full-screen consistente (P2)
**Given** admin clica em criar/editar cliente, **When** formulário abre, **Then** ocupa tela inteira com seções (Dados pessoais, Contato, Endereço, Acesso, Observações), consistente com PropertyForm.
## Acceptance Criteria
- 12 novas colunas em `client_users`: `phone`, `whatsapp`, `cpf`, `birth_date`, `address_street`, `address_number`, `address_complement`, `address_neighborhood`, `address_city`, `address_state`, `address_zip`, `notes`
- Alembic migration com `down_revision` apontando para `f1a2b3c4d5e6`
- Schemas Pydantic `ClientUserOut` / `ClientUserCreateIn` / `ClientUserUpdateIn` expandidos
- Tabela de clientes responsiva com avatar, busca, WhatsApp link, colunas hidden em mobile
- `ClienteForm` em tela cheia com 5 seções e máscaras de CPF/telefone/CEP
- Campos novos são opcionais no backend