2.3 KiB
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_revisionapontando paraf1a2b3c4d5e6 - Schemas Pydantic
ClientUserOut/ClientUserCreateIn/ClientUserUpdateInexpandidos - Tabela de clientes responsiva com avatar, busca, WhatsApp link, colunas hidden em mobile
ClienteFormem tela cheia com 5 seções e máscaras de CPF/telefone/CEP- Campos novos são opcionais no backend