sass-imobiliaria/.specify/features/010-property-form-v2/tasks.md

31 lines
1.4 KiB
Markdown

# Tasks: Cadastro Completo de Imóvel v2
**Feature**: `010-property-form-v2`
**Generated**: 2026-04-14
---
## Database
- [ ] T001 Migration: adicionar `iptu_anual` em `properties`
## Backend
- [ ] T002 Endpoint `POST /admin/upload/photo` — multipart, retorna URL pública
- [ ] T003 Servir arquivos de upload via Flask (static ou send_from_directory)
- [ ] T004 Endpoint `GET /admin/next-property-code` — retorna próximo código sequencial
- [ ] T005 Endpoints CRUD `/admin/cities` (POST, PUT, DELETE)
- [ ] T006 Endpoints CRUD `/admin/neighborhoods` (POST, PUT, DELETE)
- [ ] T007 Endpoints `GET /admin/amenities`, `POST`, `DELETE /:id`
- [ ] T008 Endpoints `POST/DELETE /admin/properties/:id/amenities/:amenity_id`
- [ ] T009 Incluir `iptu_anual` e `amenity_ids` nos schemas de property
## Frontend
- [ ] T010 AdminCitiesPage — CRUD de cidades + bairros aninhados
- [ ] T011 Adicionar link "Cidades" e "Amenidades" no AdminLayout
- [ ] T012 AdminAmenitiesPage — CRUD de amenidades por grupo
- [ ] T013 PropertyForm: layout full-screen (100vh - header - sidebar)
- [ ] T014 PropertyForm: campo IPTU anual
- [ ] T015 PropertyForm: upload de foto com preview + progress
- [ ] T016 PropertyForm: campo código auto-preenchido na abertura
- [ ] T017 PropertyForm: validação visual de campos obrigatórios
- [ ] T018 PropertyForm: seção de amenidades multi-select por grupo
- [ ] T019 PropertyForm: guard de saída não salva (beforeunload + prompt)