34 lines
2 KiB
Markdown
34 lines
2 KiB
Markdown
# Feature Specification: Formulário Completo de Imóvel (Admin)
|
|
|
|
**Feature Branch**: `009-property-form-completo`
|
|
**Created**: 2026-04-14
|
|
**Status**: In Progress
|
|
|
|
## Contexto
|
|
|
|
O formulário de criação/edição de imóveis no admin estava expondo apenas 3 campos (título, endereço, preço). Esta feature expande para o conjunto completo de dados de um imóvel, incluindo gestão de fotos por URL, separação de vagas cobertas/descobertas, e todos os campos de localização e características.
|
|
|
|
## User Stories
|
|
|
|
### US1 — Admin cadastra imóvel completo (P1)
|
|
**Given** admin clica em "+ Novo Imóvel", **When** preenche o formulário completo, **Then** o imóvel é criado com todos os dados e fotos.
|
|
|
|
**Acceptance Scenarios:**
|
|
1. **Given** formulário aberto, **When** admin preenche nome e preço e envia, **Then** imóvel é criado (mínimo obrigatório).
|
|
2. **Given** formulário com fotos adicionadas por URL, **When** salva, **Then** fotos aparecem no carrossel do card.
|
|
3. **Given** formulário aberto para edição, **When** remove uma foto e salva, **Then** foto não aparece mais no card.
|
|
|
|
### US2 — Admin edita imóvel com todos os dados (P1)
|
|
**Given** admin clica em "Editar" num card, **When** o painel lateral abre, **Then** todos os campos aparecem preenchidos com os dados atuais.
|
|
|
|
**Acceptance Scenarios:**
|
|
1. **Given** imóvel com 3 fotos, **When** formulário de edição abre, **Then** 3 fotos aparecem na lista gerenciável.
|
|
2. **Given** cidade selecionada no formulário, **When** admin abre dropdown de bairro, **Then** apenas bairros daquela cidade aparecem.
|
|
|
|
## Acceptance Criteria
|
|
- Campos obrigatórios: nome, preço, tipo (venda/aluguel)
|
|
- Campos opcionais: código, endereço, cidade, bairro, quartos, banheiros, vagas cobertas, vagas descobertas, área, condomínio, descrição, fotos
|
|
- Fotos gerenciadas por URL (add infinito, remoção individual)
|
|
- Dropdowns de cidade/bairro dependentes
|
|
- Design 100% fiel ao DESIGN.md
|
|
- Formulário em painel lateral (slide-over full-height) para comportar todos os campos
|