UNPKG

@horizon-modules/property-model-v3

Version:

Modelo de propriedades imobiliárias v3 - Sistema de atributos dinâmicos

223 lines (180 loc) 7.1 kB
# ✅ 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*