@horizon-modules/property-model-v3
Version:
Modelo de propriedades imobiliárias v3 - Sistema de atributos dinâmicos
223 lines (180 loc) • 7.1 kB
Markdown
# ✅ Checklist de Implementação - Property Model V3
## 🏗️ FASE 1: Estrutura Base
### **1.1 Criação de Diretórios**
- [ ] Criar `__dev__/` na raiz do projeto
- [ ] Criar `__dev__/data/`
- [ ] `__dev__/data/arbo-downloads/`
- [ ] `__dev__/data/fake-data-output/`
- [ ] `__dev__/data/mock-output/`
- [ ] Criar `__dev__/scripts/`
- [ ] Criar `__dev__/services/`
- [ ] Criar `__dev__/tests/`
- [ ] Criar `src/data/`
- [ ] `src/data/fake-data/`
- [ ] `src/data/examples/`
- [ ] `src/data/profiling/`
### **1.2 Limpeza**
- [x] ~~Remover pasta `/src/assets`~~
- [ ] Atualizar `.gitignore` para incluir `__dev__/data/`
- [ ] Remover referências a imagens locais no fake-data-generator
## 🔧 FASE 2: Dependências e Configuração
### **2.1 Dependências**
- [ ] Adicionar `@horizon-modules/arbo-crm-integration@^2.0.1`
- [ ] Adicionar `tsx` para executar TypeScript
- [ ] Verificar se `ramda` e `zod` estão corretos
### **2.2 Scripts package.json**
- [ ] `"dev:download": "tsx __dev__/scripts/download-from-arbo.ts"`
- [ ] `"dev:profile": "tsx __dev__/scripts/profile-properties.ts"`
- [ ] `"dev:fake": "tsx __dev__/scripts/generate-fake-data.ts"`
- [ ] `"dev:mocks": "tsx __dev__/scripts/generate-mocks.ts"`
- [ ] `"dev:all": "npm run dev:download && npm run dev:profile && npm run dev:fake && npm run dev:mocks"`
## 🛠️ FASE 3: Implementação dos Serviços
### **3.1 ArboDownloaderService**
- [ ] Criar `__dev__/services/ArboDownloaderService.ts`
- [ ] Implementar método `downloadAndConvert()`
- [ ] Integrar com `@horizon-modules/arbo-crm-integration`
- [ ] Converter dados Arbo para PropertyModel
- [ ] Aplicar validação Zod
- [ ] Salvar em `__dev__/data/arbo-downloads/`
### **3.2 ProfilerService**
- [ ] Criar `__dev__/services/ProfilerService.ts`
- [ ] Implementar análise de campos PropertyModel
- [ ] Gerar estatísticas de valores únicos
- [ ] Salvar relatório em `__dev__/data/profiling-report.json`
- [ ] Replicar lógica do ProfilerService do arbo-crm
### **3.3 FakeDataGeneratorService**
- [ ] Criar `__dev__/services/FakeDataGeneratorService.ts`
- [ ] Usar Unsplash URLs ao invés de imagens locais
- [ ] Basear geração no profiling report
- [ ] Gerar PropertyModel válidos
- [ ] Validar com Zod antes de salvar
- [ ] Salvar em `__dev__/data/fake-data-output/`
### **3.4 MockGeneratorService**
- [ ] Criar `__dev__/services/MockGeneratorService.ts`
- [ ] Gerar mocks válidos e problemáticos
- [ ] Usar profiling para dados realistas
- [ ] Validar mocks válidos com Zod
- [ ] Salvar em `__dev__/data/mock-output/`
## 📜 FASE 4: Scripts de Desenvolvimento
### **4.1 Script de Download**
- [ ] Criar `__dev__/scripts/download-from-arbo.ts`
- [ ] Configurar páginas e quantidade
- [ ] Implementar logging de progresso
- [ ] Tratar erros de conexão
- [ ] Gerar relatório de download
### **4.2 Script de Profiling**
- [ ] Criar `__dev__/scripts/profile-properties.ts`
- [ ] Ler dados de `__dev__/data/arbo-downloads/`
- [ ] Executar ProfilerService
- [ ] Gerar estatísticas detalhadas
- [ ] Salvar relatório JSON
### **4.3 Script de Fake Data**
- [ ] Criar `__dev__/scripts/generate-fake-data.ts`
- [ ] Configurar quantidades por tipo
- [ ] Usar profiling como base
- [ ] Gerar com URLs do Unsplash
- [ ] Validar todos os dados gerados
### **4.4 Script de Mocks**
- [ ] Criar `__dev__/scripts/generate-mocks.ts`
- [ ] Configurar casos válidos e problemáticos
- [ ] Usar profiling para realismo
- [ ] Gerar edge cases úteis para testes
## 🧪 FASE 5: Testes
### **5.1 Testes de Serviços**
- [ ] `__dev__/tests/arboDownloaderService.test.ts`
- [ ] Mock da API do arbo-crm
- [ ] Teste de conversão para PropertyModel
- [ ] Teste de validação Zod
- [ ] Usar pasta temporária para output
- [ ] `__dev__/tests/profilerService.test.ts`
- [ ] Mock de dados PropertyModel
- [ ] Teste de análise estatística
- [ ] Verificar formato do relatório
- [ ] Usar pasta temporária
- [ ] `__dev__/tests/fakeDataGeneratorService.test.ts`
- [ ] Mock do profiling report
- [ ] Teste com URLs do Unsplash
- [ ] Validação Zod de todos os dados
- [ ] Pasta temporária para output
- [ ] `__dev__/tests/mockGeneratorService.test.ts`
- [ ] Teste de mocks válidos e problemáticos
- [ ] Verificar casos edge
- [ ] Validação Zod dos válidos
- [ ] Pasta temporária para output
### **5.2 Configuração de Testes**
- [ ] Configurar `vitest.config.ts` para `__dev__/`
- [ ] Setup de pastas temporárias
- [ ] Cleanup automático
- [ ] Mock de APIs externas
## 🎨 FASE 6: Atualização do Fake Data Generator Principal
### **6.1 Migração para Unsplash**
- [ ] Atualizar `src/fake-data-generator/index.ts`
- [ ] Remover dependência de `image-manager.ts` local
- [ ] Implementar URLs do Unsplash
- [ ] Usar mesmo padrão do arbo-crm
### **6.2 Imagens do Unsplash**
- [ ] Definir categorias: apartamento, casa, comercial, terreno
- [ ] URLs testadas e funcionais
- [ ] Diferentes tamanhos: full, md, sm
- [ ] Implementar `cover` flag
## 📊 FASE 7: Dados Finais e Exportação
### **7.1 Dados de Produção**
- [ ] Selecionar manualmente dados fake representativos
- [ ] Copiar para `src/data/fake-data/`
- [ ] Selecionar exemplos reais convertidos
- [ ] Copiar para `src/data/examples/`
- [ ] Copiar profiling final para `src/data/profiling/`
### **7.2 Exportação NPM**
- [ ] Atualizar `src/index.ts` para exportar dados
- [ ] Configurar `tsup.config.ts` para incluir `/data`
- [ ] Atualizar `package.json` files array
- [ ] Testar build e exports
### **7.3 Documentação**
- [ ] Atualizar README.md
- [ ] Documentar novos scripts de dev
- [ ] Exemplos de uso dos dados
- [ ] Guia de contribuição
## 🚀 FASE 8: Testes Finais e Publicação
### **8.1 Testes de Integração**
- [ ] Executar `npm run dev:all`
- [ ] Verificar todos os outputs
- [ ] Validar qualidade dos dados
- [ ] Testar importação dos exports
### **8.2 CI/CD**
- [ ] Garantir que testes passam
- [ ] Verificar build sem erros
- [ ] Testar em ambiente limpo
- [ ] Preparar para publicação
### **8.3 Versionamento**
- [ ] Atualizar versão (3.4.0)
- [ ] Changelog detalhado
- [ ] Publicar no NPM
- [ ] Testar instalação externa
## 🔄 FASE 9: Manutenção e Evolução
### **9.1 Automação**
- [ ] Script para atualizar dados periodicamente
- [ ] CI para verificar qualidade dos dados
- [ ] Monitoramento de APIs externas
### **9.2 Melhorias Futuras**
- [ ] Mais categorias de propriedades
- [ ] Integração com outras fontes
- [ ] Dados internacionais
- [ ] IA para geração mais sofisticada
---
## 📋 Status Atual
### **✅ Completo**
- [x] Modelo PropertyModel unificado
- [x] Custom mapper com validação Zod
- [x] Remoção da pasta assets
- [x] Documentação técnica
### **🚧 Em Progresso**
- [ ] Migração do fake-data-generator
- [ ] Estrutura __dev__ completa
### **⏳ Pendente**
- [ ] Todos os serviços e scripts
- [ ] Testes completos
- [ ] Dados de produção
- [ ] Publicação final
---
*Checklist criado em: 2025-07-08*
*Próxima revisão: Após implementação da Fase 1*