UNPKG

@horizon-domains/property-model

Version:

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

1,672 lines (1,667 loc) 499 kB
"use strict"; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); // src/index.ts var index_exports = {}; __export(index_exports, { FakeDataAllProperties: () => fake_all_properties_default, FakeDataApartamentos: () => fake_apartamentos_default, FakeDataCasas: () => fake_casas_sobrados_default, FakeDataCasasSobrados: () => fake_casas_sobrados_default, FakeDataComerciais: () => fake_comerciais_default, FakeDataIndustriais: () => fake_industriais_default, FakeDataRurais: () => fake_rurais_default, FakeDataSobrados: () => fake_casas_sobrados_default, FakeDataTerrenos: () => fake_terrenos_lotes_default, FakeDataTerrenosLotes: () => fake_terrenos_lotes_default, HorizonPropertySchemaBaseZod: () => HorizonPropertySchemaBaseZod, horizonPropertySchemaBase: () => horizonPropertySchemaBase, mergePropertyAttributesModel: () => mergePropertyAttributesModel, preparaAttrValueLabel: () => preparaAttrValueLabel, sortAttributes: () => sortAttributes }); module.exports = __toCommonJS(index_exports); // src/schemas/horizon-property-schema-base.ts var horizonPropertySchemaBase = { entity: "property", version: "2.3.0", description: "Schema base can\xF4nico do modelo de propriedade Horizon v3", fields: [ // ======================================== // SISTEMA // ======================================== { key: "source_published_at", type: "String", categories: ["sistema"], format: "datetime", ui: { label: "Data da publica\xE7\xE3o original" }, audit: { origin: "hb:property" } }, { key: "source_updated_at", type: "String", categories: ["sistema"], format: "datetime", validation: { required: true }, ui: { label: "Data da \xFAltima republica\xE7\xE3o" }, audit: { origin: "hb:property" } }, { key: "currency", type: "String", categories: ["sistema"], validation: { required: true }, db: { default: "BRL" }, ui: { label: "Moeda" }, audit: { origin: "hb:property" } }, { key: "unit_area", type: "String", categories: ["sistema"], validation: { required: true }, db: { default: "m2" }, ui: { label: "Unidade de \xE1rea" }, audit: { origin: "hb:property" } }, { key: "unit_distance", type: "String", categories: ["sistema"], enum: { meters: "Metros", km: "Quil\xF4metros" }, validation: { required: true }, db: { default: "meters" }, ui: { label: "Unidade de dist\xE2ncia" }, audit: { origin: "hb:property" } }, // ======================================== // CABEÇALHO // ======================================== { key: "reference", type: "String", categories: ["cabecalho"], validation: { required: true }, ui: { label: "Refer\xEAncia" }, audit: { origin: "hb:property" } }, { key: "title", type: "String", categories: ["cabecalho"], validation: { required: true, maxLength: 200 }, ui: { label: "T\xEDtulo" }, audit: { origin: "hb:property" } }, { key: "description", type: "String", categories: ["cabecalho"], validation: { required: true }, db: { type: "text", index: "fulltext" }, ui: { label: "Descri\xE7\xE3o" }, audit: { origin: "hb:property" } }, // ======================================== // SEO // ======================================== { key: "seo_slug", type: "String", categories: ["seo"], validation: { maxLength: 255 }, db: { type: "varchar(255)", unique: true, index: true }, ui: { label: "Slug SEO" }, audit: { origin: "hb:property" } }, { key: "seo_title", type: "String", categories: ["seo"], validation: { maxLength: 60 }, ui: { label: "T\xEDtulo SEO" }, audit: { origin: "hb:property" } }, { key: "seo_description", type: "String", categories: ["seo"], validation: { maxLength: 160 }, ui: { label: "Descri\xE7\xE3o SEO" }, audit: { origin: "hb:property" } }, { key: "seo_keywords", type: "String", categories: ["seo"], validation: { maxLength: 200 }, ui: { label: "Palavras-chave SEO" }, audit: { origin: "hb:property" } }, // ======================================== // MÍDIAS // ======================================== { key: "main_image", type: "Json", categories: ["media"], ui: { label: "Imagem principal" }, audit: { origin: "hb:property" } }, { key: "images", type: "Json[]", categories: ["media"], validation: { required: true }, ui: { label: "Imagens" }, audit: { origin: "hb:property" } }, { key: "videos", type: "Json[]", categories: ["media"], validation: { required: true }, ui: { label: "V\xEDdeos" }, audit: { origin: "hb:property" } }, { key: "virtual_tours", type: "Json[]", categories: ["media"], validation: { required: true }, ui: { label: "Tours virtuais" }, audit: { origin: "hb:property" } }, // ======================================== // FICHA TÉCNICA // ======================================== { key: "operacao", type: "String[]", categories: ["ficha-tecnica"], enum: { venda: "Venda", locacao: "Loca\xE7\xE3o", temporada: "Temporada" }, validation: { required: true }, ui: { label: "Opera\xE7\xE3o" }, audit: { origin: "hb:property" } }, { key: "tipo", type: "String", categories: ["ficha-tecnica"], validation: { required: true }, ui: { label: "Tipo do im\xF3vel" }, audit: { origin: "hb:property" } }, { key: "dormitorios", type: "Number", categories: ["ficha-tecnica"], format: "count", validation: { min: 0 }, ui: { label: "Dormit\xF3rios" }, audit: { origin: "hb:property" } }, { key: "suites", type: "Number", categories: ["ficha-tecnica"], format: "count", validation: { min: 0 }, ui: { label: "Su\xEDtes" }, audit: { origin: "hb:property" } }, { key: "banheiros", type: "Number", categories: ["ficha-tecnica"], format: "count", validation: { min: 0 }, ui: { label: "Banheiros" }, audit: { origin: "hb:property" } }, { key: "vagas_garagem", type: "Number", categories: ["ficha-tecnica"], format: "count", validation: { min: 0 }, ui: { label: "Vagas de garagem" }, audit: { origin: "hb:property" } }, { key: "area_total", type: "Number", categories: ["ficha-tecnica"], format: "area", unit: "m2", validation: { min: 0 }, ui: { label: "\xC1rea total" }, audit: { origin: "hb:property" } }, { key: "area_privativa", type: "Number", categories: ["ficha-tecnica"], format: "area", unit: "m2", validation: { min: 0 }, ui: { label: "\xC1rea privativa" }, audit: { origin: "hb:property" } }, { key: "area_util", type: "Number", categories: ["ficha-tecnica"], format: "area", unit: "m2", validation: { min: 0 }, ui: { label: "\xC1rea \xFAtil" }, audit: { origin: "hb:property" } }, { key: "destaque", type: "Boolean", categories: ["ficha-tecnica"], ui: { label: "Im\xF3vel em destaque" }, audit: { origin: "hb:property" } }, // ======================================== // VALORES // ======================================== { key: "valor_venda", type: "Number", categories: ["valores"], format: "currency", unit: "BRL", validation: { precision: 2 }, rules: { conditions: ["operacao:venda"] }, ui: { label: "Valor de venda" }, audit: { origin: "hb:property" } }, { key: "valor_locacao", type: "Number", categories: ["valores"], format: "currency", unit: "BRL", validation: { precision: 2 }, rules: { conditions: ["operacao:locacao"] }, ui: { label: "Valor de loca\xE7\xE3o" }, audit: { origin: "hb:property" } }, { key: "valor_condominio", type: "Number", categories: ["valores"], format: "currency", unit: "BRL", validation: { precision: 2 }, ui: { label: "Valor do condom\xEDnio" }, audit: { origin: "hb:property" } }, { key: "valor_iptu", type: "Number", categories: ["valores"], format: "currency", unit: "BRL", validation: { precision: 2 }, ui: { label: "Valor do IPTU" }, audit: { origin: "hb:property" } }, // ======================================== // LOCALIZAÇÃO // ======================================== { key: "endereco_cep", type: "String", categories: ["localizacao"], validation: { maxLength: 9 }, mask: "cep", ui: { label: "CEP" }, audit: { origin: "hb:property" } }, { key: "endereco_estado", type: "String", categories: ["localizacao"], ui: { label: "Estado" }, audit: { origin: "hb:property" } }, { key: "endereco_cidade", type: "String", categories: ["localizacao"], rules: { parent: "endereco_estado" }, ui: { label: "Cidade" }, audit: { origin: "hb:property" } }, { key: "endereco_bairro", type: "String", categories: ["localizacao"], rules: { parent: "endereco_cidade" }, ui: { label: "Bairro" }, audit: { origin: "hb:property" } }, { key: "endereco_logradouro", type: "String", categories: ["localizacao"], ui: { label: "Logradouro" }, audit: { origin: "hb:property" } }, { key: "endereco_numero", type: "String", categories: ["localizacao"], ui: { label: "N\xFAmero" }, audit: { origin: "hb:property" } }, { key: "endereco_complemento", type: "String", categories: ["localizacao"], ui: { label: "Complemento" }, audit: { origin: "hb:property" } }, { key: "endereco_referencia", type: "String", categories: ["localizacao"], ui: { label: "Refer\xEAncia" }, audit: { origin: "hb:property" } }, { key: "endereco_zona", type: "String", categories: ["localizacao"], ui: { label: "Zona" }, audit: { origin: "hb:property" } }, { key: "lat", type: "Number", categories: ["localizacao"], validation: { min: -90, max: 90, precision: 8 }, db: { type: "decimal(10,8)", index: "geo" }, ui: { label: "Latitude" }, audit: { origin: "hb:property" } }, { key: "lng", type: "Number", categories: ["localizacao"], validation: { min: -180, max: 180, precision: 8 }, db: { type: "decimal(11,8)", index: "geo" }, ui: { label: "Longitude" }, audit: { origin: "hb:property" } }, // ======================================== // Relações // ======================================== { key: "corretor_key", type: "String", categories: ["relations"], ui: { label: "ID do corretor" }, audit: { origin: "hb:property" } }, { key: "corretor_nome", type: "String", categories: ["relations"], ui: { label: "Nome do corretor" }, audit: { origin: "hb:property" } }, { key: "condominio_key", type: "String", categories: ["relations"], ui: { label: "ID do condom\xEDnio" }, audit: { origin: "hb:property" } }, { key: "condominio_nome", type: "String", categories: ["relations"], ui: { label: "Nome do condom\xEDnio" }, audit: { origin: "hb:property" } } ] }; // src/schemas/horizon-property-schema-base.zod.ts var import_zod = require("zod"); var ImageSchema = import_zod.z.object({ md: import_zod.z.string().url().describe("URL tamanho m\xE9dio"), sm: import_zod.z.string().url().describe("URL tamanho pequeno"), full: import_zod.z.string().url().describe("URL tamanho completo"), cover: import_zod.z.boolean().describe("Se \xE9 imagem de capa") }); var MainImageSchema = import_zod.z.object({ md: import_zod.z.string().url().describe("URL tamanho m\xE9dio"), sm: import_zod.z.string().url().describe("URL tamanho pequeno"), full: import_zod.z.string().url().describe("URL tamanho completo") }); var VideoSchema = import_zod.z.object({ url: import_zod.z.string().nullish().describe("Url do v\xEDdeo"), embed_url: import_zod.z.string().nullish().describe("Url de incorpora\xE7\xE3o do v\xEDdeo") }); var VirtualTourSchema = import_zod.z.object({ embed_url: import_zod.z.string().url().describe("URL de incorpora\xE7\xE3o do tour 360\xB0") }); var HorizonPropertySchemaBaseZod = import_zod.z.object({ // Sistema source_published_at: import_zod.z.string().nullish().describe("Data da publica\xE7\xE3o original"), source_updated_at: import_zod.z.string().describe("Data da \xFAltima republica\xE7\xE3o"), currency: import_zod.z.string().default("BRL").describe("Moeda"), unit_area: import_zod.z.string().default("m2").describe("Unidade de \xE1rea"), unit_distance: import_zod.z.enum(["meters", "km"]).default("meters").describe("Unidade de dist\xE2ncia"), // Cabecalho reference: import_zod.z.string().describe("Refer\xEAncia"), title: import_zod.z.string().max(200).describe("T\xEDtulo"), description: import_zod.z.string().describe("Descri\xE7\xE3o"), // SEO seo_slug: import_zod.z.string().max(255).nullish().describe("Slug SEO"), seo_title: import_zod.z.string().max(60).nullish().describe("T\xEDtulo SEO"), seo_description: import_zod.z.string().max(160).nullish().describe("Descri\xE7\xE3o SEO"), seo_keywords: import_zod.z.string().max(200).nullish().describe("Palavras-chave SEO"), // Medias main_image: MainImageSchema.describe("Imagem principal").optional(), images: import_zod.z.array(ImageSchema).describe("Imagens"), videos: import_zod.z.array(VideoSchema).describe("V\xEDdeos"), virtual_tours: import_zod.z.array(VirtualTourSchema).describe("Tours virtuais"), // Ficha técnica operacao: import_zod.z.array(import_zod.z.enum(["venda", "locacao", "temporada"])).describe("Opera\xE7\xE3o"), tipo: import_zod.z.string().describe("Tipo do im\xF3vel"), dormitorios: import_zod.z.number().min(0).nullish().describe("Dormit\xF3rios"), suites: import_zod.z.number().min(0).nullish().describe("Su\xEDtes"), banheiros: import_zod.z.number().min(0).nullish().describe("Banheiros"), vagas_garagem: import_zod.z.number().min(0).nullish().describe("Vagas de garagem"), area_total: import_zod.z.number().min(0).nullish().describe("\xC1rea total"), area_privativa: import_zod.z.number().min(0).nullish().describe("\xC1rea privativa"), area_util: import_zod.z.number().min(0).nullish().describe("\xC1rea \xFAtil"), destaque: import_zod.z.boolean().nullish().describe("Im\xF3vel em destaque"), // VALORES valor_venda: import_zod.z.number().nullish().describe("Valor de venda"), valor_locacao: import_zod.z.number().nullish().describe("Valor de loca\xE7\xE3o"), valor_condominio: import_zod.z.number().nullish().describe("Valor do condom\xEDnio"), valor_iptu: import_zod.z.number().nullish().describe("Valor do IPTU"), // LOCALIZACAO endereco_cep: import_zod.z.string().max(9).nullish().describe("CEP"), endereco_estado: import_zod.z.string().nullish().describe("Estado"), endereco_cidade: import_zod.z.string().nullish().describe("Cidade"), endereco_bairro: import_zod.z.string().nullish().describe("Bairro"), endereco_logradouro: import_zod.z.string().nullish().describe("Logradouro"), endereco_numero: import_zod.z.string().nullish().describe("N\xFAmero"), endereco_complemento: import_zod.z.string().nullish().describe("Complemento"), endereco_referencia: import_zod.z.string().nullish().describe("Refer\xEAncia"), endereco_zona: import_zod.z.string().nullish().describe("Zona"), lat: import_zod.z.number().min(-90).max(90).nullish().describe("Latitude"), lng: import_zod.z.number().min(-180).max(180).nullish().describe("Longitude"), // RELACIONAMENTOS corretor_key: import_zod.z.string().nullish().describe("ID do corretor"), corretor_nome: import_zod.z.string().nullish().describe("Nome do corretor"), condominio_key: import_zod.z.string().nullish().describe("ID do condom\xEDnio"), condominio_nome: import_zod.z.string().nullish().describe("Nome do condom\xEDnio") }); // src/data/fake-properties/fake-apartamentos.json var fake_apartamentos_default = [ { reference: "FAKE_0004", updated_at: "2025-08-12T13:21:43.745Z", title: "Excelente Im\xF3vel - 2 quartos, 120m\xB2", description: "Excelente im\xF3vel localizado em excelente bairro, cidade. Im\xF3vel com \xF3tima localiza\xE7\xE3o e acabamento de qualidade. Caracter\xEDsticas destacadas incluem Alarme, Casa de Caseiro, Gesso. Agende sua visita!", seo_slug: "cobertura-venda-alto-de-pinheiros", seo_title: "Im\xF3vel em S\xE3o Paulo - Centro", seo_description: "Im\xF3vel com 2 dormit\xF3rios, 120m\xB2", seo_keywords: "venda, aluguel, im\xF3vel", main_image: { full: "https://images.unsplash.com/photo-1560448204-e02f11c3d0e2?w=1920", md: "https://images.unsplash.com/photo-1560448204-e02f11c3d0e2?w=1024", sm: "https://images.unsplash.com/photo-1560448204-e02f11c3d0e2?w=480" }, images: [ { full: "https://images.unsplash.com/photo-1560448204-e02f11c3d0e2?w=1920", md: "https://images.unsplash.com/photo-1560448204-e02f11c3d0e2?w=1024", sm: "https://images.unsplash.com/photo-1560448204-e02f11c3d0e2?w=480", cover: true }, { full: "https://images.unsplash.com/photo-1484154218962-a197022b5858?w=1920", md: "https://images.unsplash.com/photo-1484154218962-a197022b5858?w=1024", sm: "https://images.unsplash.com/photo-1484154218962-a197022b5858?w=480", cover: false } ], videos: [], virtual_tours: [], documents: [], currency: "BRL", unit_area: "m2", unit_distance: "meters", map_show_proximity: false, operacao: [ "venda", "locacao" ], valor_venda: 271159.04, valor_locacao: 4428.57, valor_diaria: 218.09, valor_condominio: 290.92, valor_iptu: 5285.19, area_total: 175, area_privativa: 155, area_util: 96, dormitorios: 5, suites: 0, banheiros: 3, vagas_garagem: 3, finalidade: "Mista", tipo: "Apartamentos", subtipo: "Cobertura", endereco_cep: "63527-209", endereco_estado: "Rio Grande do Sul", endereco_cidade: "Novo Hamburgo", endereco_bairro: "Alto de Pinheiros", endereco_logradouro: "Rua XV de Novembro", endereco_numero: "6499", endereco_zona: "Oeste", latitude: -23.51776708, longitude: -46.66023804, mobiliado: false, caracteristicas: [ "Aquecimento Central", "Box Blindex", "Cozinha Planejada", "Sanca", "Ed\xEDcula", "Molduras" ], destaque: false, corretor_nome: "Roberto Lima", tags: [ "Cobertura", "Alto de pinheiros", "Im\xF3vel" ], numero_pessoas: 7 }, { reference: "FAKE_0011", updated_at: "2025-08-12T13:21:43.748Z", title: "Im\xF3vel de 120m\xB2 em excelente localiza\xE7\xE3o", description: "Oportunidade \xFAnica! Im\xF3vel com excelente localiza\xE7\xE3o em cidade. Im\xF3vel pronto para morar com todas as comodidades necess\xE1rias.", seo_slug: "duplex-venda-ribeir-o-da-ilha", seo_title: "Im\xF3vel em S\xE3o Paulo - Centro", seo_description: "Im\xF3vel com 2 dormit\xF3rios, 120m\xB2", seo_keywords: "venda, aluguel, im\xF3vel", main_image: { full: "https://images.unsplash.com/photo-1571055107559-3e67626fa8be?w=1920", md: "https://images.unsplash.com/photo-1571055107559-3e67626fa8be?w=1024", sm: "https://images.unsplash.com/photo-1571055107559-3e67626fa8be?w=480" }, images: [ { full: "https://images.unsplash.com/photo-1571055107559-3e67626fa8be?w=1920", md: "https://images.unsplash.com/photo-1571055107559-3e67626fa8be?w=1024", sm: "https://images.unsplash.com/photo-1571055107559-3e67626fa8be?w=480", cover: true }, { full: "https://images.unsplash.com/photo-1502672260266-1c1ef2d93688?w=1920", md: "https://images.unsplash.com/photo-1502672260266-1c1ef2d93688?w=1024", sm: "https://images.unsplash.com/photo-1502672260266-1c1ef2d93688?w=480", cover: false }, { full: "https://images.unsplash.com/photo-1484154218962-a197022b5858?w=1920", md: "https://images.unsplash.com/photo-1484154218962-a197022b5858?w=1024", sm: "https://images.unsplash.com/photo-1484154218962-a197022b5858?w=480", cover: false } ], videos: [], virtual_tours: [], documents: [], currency: "BRL", unit_area: "m2", unit_distance: "meters", map_show_proximity: false, operacao: [ "venda" ], valor_venda: 385636473e-2, valor_locacao: 12967.22, valor_diaria: 334.41, valor_condominio: 1442.83, valor_iptu: 2204.47, area_total: 265, area_privativa: 60, area_util: 161, dormitorios: 4, suites: 1, banheiros: 4, vagas_garagem: 0, finalidade: "Comercial", tipo: "Apartamentos", subtipo: "Duplex", endereco_cep: "78347-855", endereco_estado: "Santa Catarina", endereco_cidade: "Florian\xF3polis", endereco_bairro: "Ribeir\xE3o da Ilha", endereco_logradouro: "Rua do Com\xE9rcio", endereco_numero: "9331", endereco_zona: "Centro", latitude: -23.53861084, longitude: -46.62940141, mobiliado: true, caracteristicas: [ "\xC1rea Gourmet", "Coworking", "Recep\xE7\xE3o" ], destaque: false, corretor_nome: "Maria Oliveira", tags: [ "Duplex", "Ribeir\xE3o da ilha", "Mobiliado", "Im\xF3vel" ], numero_pessoas: 5 }, { reference: "FAKE_0014", updated_at: "2025-08-12T13:21:43.748Z", title: "Im\xF3vel premium com \xF3tima localiza\xE7\xE3o", description: "Excelente im\xF3vel localizado em excelente bairro, cidade. Im\xF3vel com \xF3tima localiza\xE7\xE3o e acabamento de qualidade. Caracter\xEDsticas destacadas incluem Churrasqueira, M\xE1rmore. Agende sua visita!", seo_slug: "studio-locacao-canasvieiras", seo_title: "Im\xF3vel em S\xE3o Paulo - Centro", seo_description: "Im\xF3vel com 2 dormit\xF3rios, 120m\xB2", seo_keywords: "venda, aluguel, im\xF3vel", main_image: { full: "https://images.unsplash.com/photo-1502672260266-1c1ef2d93688?w=1920", md: "https://images.unsplash.com/photo-1502672260266-1c1ef2d93688?w=1024", sm: "https://images.unsplash.com/photo-1502672260266-1c1ef2d93688?w=480" }, images: [ { full: "https://images.unsplash.com/photo-1502672260266-1c1ef2d93688?w=1920", md: "https://images.unsplash.com/photo-1502672260266-1c1ef2d93688?w=1024", sm: "https://images.unsplash.com/photo-1502672260266-1c1ef2d93688?w=480", cover: true }, { full: "https://images.unsplash.com/photo-1560448204-e02f11c3d0e2?w=1920", md: "https://images.unsplash.com/photo-1560448204-e02f11c3d0e2?w=1024", sm: "https://images.unsplash.com/photo-1560448204-e02f11c3d0e2?w=480", cover: false }, { full: "https://images.unsplash.com/photo-1571055107559-3e67626fa8be?w=1920", md: "https://images.unsplash.com/photo-1571055107559-3e67626fa8be?w=1024", sm: "https://images.unsplash.com/photo-1571055107559-3e67626fa8be?w=480", cover: false }, { full: "https://images.unsplash.com/photo-1484154218962-a197022b5858?w=1920", md: "https://images.unsplash.com/photo-1484154218962-a197022b5858?w=1024", sm: "https://images.unsplash.com/photo-1484154218962-a197022b5858?w=480", cover: false } ], videos: [], virtual_tours: [], documents: [], currency: "BRL", unit_area: "m2", unit_distance: "meters", map_show_proximity: false, operacao: [ "locacao", "temporada" ], valor_venda: 128090815e-2, valor_locacao: 5250.71, valor_diaria: 672.82, valor_condominio: 1328.9, valor_iptu: 5838.64, area_total: 413, area_privativa: 420, area_util: 128, dormitorios: 2, suites: 0, banheiros: 4, vagas_garagem: 3, finalidade: "Rural", tipo: "Apartamentos", subtipo: "Studio", endereco_cep: "90591-497", endereco_estado: "Bahia", endereco_cidade: "S\xE3o Leopoldo", endereco_bairro: "Canasvieiras", endereco_logradouro: "Rua do Com\xE9rcio", endereco_numero: "899", endereco_zona: "Centro-Sul", latitude: -23.57061612, longitude: -46.66554703, mobiliado: true, caracteristicas: [ "Port\xE3o Eletr\xF4nico", "Sacada", "Granito", "C\xE2meras", "Gesso", "Churrasqueira" ], destaque: false, corretor_nome: "Jo\xE3o Pereira", condominio_nome: "Residencial Leblon Tower", tags: [ "Studio", "Canasvieiras", "Mobiliado", "Im\xF3vel" ], numero_pessoas: 3 }, { reference: "FAKE_0015", updated_at: "2025-08-12T13:21:43.748Z", title: "Im\xF3vel de 120m\xB2 em excelente localiza\xE7\xE3o", description: "Im\xF3vel moderno com excelente custo-benef\xEDcio. Localizado em bairro nobre com f\xE1cil acesso a com\xE9rcios e servi\xE7os. Acabamentos de primeira linha.", seo_slug: "cobertura-venda-itaim-bibi", seo_title: "Im\xF3vel em S\xE3o Paulo - Centro", seo_description: "Im\xF3vel com 2 dormit\xF3rios, 120m\xB2", seo_keywords: "venda, aluguel, im\xF3vel", main_image: { full: "https://images.unsplash.com/photo-1571055107559-3e67626fa8be?w=1920", md: "https://images.unsplash.com/photo-1571055107559-3e67626fa8be?w=1024", sm: "https://images.unsplash.com/photo-1571055107559-3e67626fa8be?w=480" }, images: [ { full: "https://images.unsplash.com/photo-1571055107559-3e67626fa8be?w=1920", md: "https://images.unsplash.com/photo-1571055107559-3e67626fa8be?w=1024", sm: "https://images.unsplash.com/photo-1571055107559-3e67626fa8be?w=480", cover: true }, { full: "https://images.unsplash.com/photo-1560448204-e02f11c3d0e2?w=1920", md: "https://images.unsplash.com/photo-1560448204-e02f11c3d0e2?w=1024", sm: "https://images.unsplash.com/photo-1560448204-e02f11c3d0e2?w=480", cover: false }, { full: "https://images.unsplash.com/photo-1522708323590-d24dbb6b0267?w=1920", md: "https://images.unsplash.com/photo-1522708323590-d24dbb6b0267?w=1024", sm: "https://images.unsplash.com/photo-1522708323590-d24dbb6b0267?w=480", cover: false }, { full: "https://images.unsplash.com/photo-1484154218962-a197022b5858?w=1920", md: "https://images.unsplash.com/photo-1484154218962-a197022b5858?w=1024", sm: "https://images.unsplash.com/photo-1484154218962-a197022b5858?w=480", cover: false }, { full: "https://images.unsplash.com/photo-1502672260266-1c1ef2d93688?w=1920", md: "https://images.unsplash.com/photo-1502672260266-1c1ef2d93688?w=1024", sm: "https://images.unsplash.com/photo-1502672260266-1c1ef2d93688?w=480", cover: false } ], videos: [], virtual_tours: [], documents: [], currency: "BRL", unit_area: "m2", unit_distance: "meters", map_show_proximity: false, operacao: [ "venda" ], valor_venda: 225820398e-2, valor_locacao: 4666.83, valor_diaria: 403.5, valor_condominio: 1004.08, valor_iptu: 3830.35, area_total: 57, area_privativa: 154, area_util: 240, dormitorios: 4, suites: 0, banheiros: 2, vagas_garagem: 4, finalidade: "Industrial", tipo: "Apartamentos", subtipo: "Cobertura", endereco_cep: "41817-224", endereco_estado: "Distrito Federal", endereco_cidade: "Crici\xFAma", endereco_bairro: "Itaim Bibi", endereco_logradouro: "Rua Tiradentes", endereco_numero: "3817", endereco_zona: "Sul", latitude: -23.57930697, longitude: -46.62956582, mobiliado: true, caracteristicas: [ "Port\xE3o Eletr\xF4nico", "TV a Cabo", "Piso Laminado", "Po\xE7o Artesiano", "Elevador", "Lareira" ], destaque: false, corretor_nome: "Ana Silva", condominio_nome: "Residencial Reserva das \xC1guas", tags: [ "Cobertura", "Itaim bibi", "Mobiliado", "Im\xF3vel" ], numero_pessoas: 2 }, { reference: "FAKE_0037", updated_at: "2025-08-12T13:21:43.753Z", title: "Excelente Im\xF3vel - 2 quartos, 120m\xB2", description: "Im\xF3vel moderno com excelente custo-benef\xEDcio. Localizado em bairro nobre com f\xE1cil acesso a com\xE9rcios e servi\xE7os. Acabamentos de primeira linha.", seo_slug: "duplex-venda-belvedere", seo_title: "Im\xF3vel em S\xE3o Paulo - Centro", seo_description: "Im\xF3vel com 2 dormit\xF3rios, 120m\xB2", seo_keywords: "venda, aluguel, im\xF3vel", main_image: { full: "https://images.unsplash.com/photo-1571055107559-3e67626fa8be?w=1920", md: "https://images.unsplash.com/photo-1571055107559-3e67626fa8be?w=1024", sm: "https://images.unsplash.com/photo-1571055107559-3e67626fa8be?w=480" }, images: [ { full: "https://images.unsplash.com/photo-1571055107559-3e67626fa8be?w=1920", md: "https://images.unsplash.com/photo-1571055107559-3e67626fa8be?w=1024", sm: "https://images.unsplash.com/photo-1571055107559-3e67626fa8be?w=480", cover: true }, { full: "https://images.unsplash.com/photo-1560448204-e02f11c3d0e2?w=1920", md: "https://images.unsplash.com/photo-1560448204-e02f11c3d0e2?w=1024", sm: "https://images.unsplash.com/photo-1560448204-e02f11c3d0e2?w=480", cover: false }, { full: "https://images.unsplash.com/photo-1502672260266-1c1ef2d93688?w=1920", md: "https://images.unsplash.com/photo-1502672260266-1c1ef2d93688?w=1024", sm: "https://images.unsplash.com/photo-1502672260266-1c1ef2d93688?w=480", cover: false } ], videos: [], virtual_tours: [], documents: [], currency: "BRL", unit_area: "m2", unit_distance: "meters", map_show_proximity: false, operacao: [ "venda" ], valor_venda: 560082.61, valor_locacao: 2357.54, valor_diaria: 303.72, valor_condominio: 577.18, valor_iptu: 1209.08, area_total: 104, area_privativa: 448, area_util: 89, dormitorios: 1, suites: 0, banheiros: 2, vagas_garagem: 0, finalidade: "Residencial", tipo: "Apartamentos", subtipo: "Duplex", endereco_cep: "28668-017", endereco_estado: "Rio Grande do Sul", endereco_cidade: "Uruguaiana", endereco_bairro: "Belvedere", endereco_logradouro: "Rua XV de Novembro", endereco_numero: "7965", endereco_zona: "Centro", latitude: -23.54076085, longitude: -46.63466688, mobiliado: true, caracteristicas: [ "Piscina", "Churrasqueira", "Varanda", "Gesso", "Lavabo" ], destaque: false, corretor_nome: "Maria Oliveira", tags: [ "Duplex", "Belvedere", "Mobiliado", "Im\xF3vel" ], numero_pessoas: 6 }, { reference: "FAKE_0040", updated_at: "2025-08-12T13:21:43.753Z", title: "Im\xF3vel de 120m\xB2 em excelente localiza\xE7\xE3o", description: "Excelente im\xF3vel localizado em excelente bairro, cidade. Im\xF3vel com \xF3tima localiza\xE7\xE3o e acabamento de qualidade. Caracter\xEDsticas destacadas incluem Piso Laminado, Cinema. Agende sua visita!", seo_slug: "duplex-locacao-centro", seo_title: "Im\xF3vel em S\xE3o Paulo - Centro", seo_description: "Im\xF3vel com 2 dormit\xF3rios, 120m\xB2", seo_keywords: "venda, aluguel, im\xF3vel", main_image: { full: "https://images.unsplash.com/photo-1571055107559-3e67626fa8be?w=1920", md: "https://images.unsplash.com/photo-1571055107559-3e67626fa8be?w=1024", sm: "https://images.unsplash.com/photo-1571055107559-3e67626fa8be?w=480" }, images: [ { full: "https://images.unsplash.com/photo-1571055107559-3e67626fa8be?w=1920", md: "https://images.unsplash.com/photo-1571055107559-3e67626fa8be?w=1024", sm: "https://images.unsplash.com/photo-1571055107559-3e67626fa8be?w=480", cover: true }, { full: "https://images.unsplash.com/photo-1560448204-e02f11c3d0e2?w=1920", md: "https://images.unsplash.com/photo-1560448204-e02f11c3d0e2?w=1024", sm: "https://images.unsplash.com/photo-1560448204-e02f11c3d0e2?w=480", cover: false }, { full: "https://images.unsplash.com/photo-1502672260266-1c1ef2d93688?w=1920", md: "https://images.unsplash.com/photo-1502672260266-1c1ef2d93688?w=1024", sm: "https://images.unsplash.com/photo-1502672260266-1c1ef2d93688?w=480", cover: false }, { full: "https://images.unsplash.com/photo-1484154218962-a197022b5858?w=1920", md: "https://images.unsplash.com/photo-1484154218962-a197022b5858?w=1024", sm: "https://images.unsplash.com/photo-1484154218962-a197022b5858?w=480", cover: false }, { full: "https://images.unsplash.com/photo-1522708323590-d24dbb6b0267?w=1920", md: "https://images.unsplash.com/photo-1522708323590-d24dbb6b0267?w=1024", sm: "https://images.unsplash.com/photo-1522708323590-d24dbb6b0267?w=480", cover: false } ], videos: [], virtual_tours: [], documents: [], currency: "BRL", unit_area: "m2", unit_distance: "meters", map_show_proximity: false, operacao: [ "locacao" ], valor_venda: 18628291e-1, valor_locacao: 1303.26, valor_diaria: 384.73, valor_condominio: 1519.78, valor_iptu: 4334.83, area_total: 496, area_privativa: 397, area_util: 47, dormitorios: 5, suites: 2, banheiros: 2, vagas_garagem: 0, finalidade: "Industrial", tipo: "Apartamentos", subtipo: "Duplex", endereco_cep: "11577-206", endereco_estado: "Bahia", endereco_cidade: "Blumenau", endereco_bairro: "Centro", endereco_logradouro: "Rua Marechal Deodoro", endereco_numero: "9433", endereco_zona: "Leste", latitude: -23.51371631, longitude: -46.58495402, mobiliado: false, caracteristicas: [ "Cinema", "Cozinha Planejada", "Playground", "Sacada", "Sauna" ], destaque: false, corretor_nome: "Patricia Souza", tags: [ "Duplex", "Centro", "Im\xF3vel" ], numero_pessoas: 2 }, { reference: "FAKE_0041", updated_at: "2025-08-12T13:21:43.753Z", title: "Im\xF3vel premium com \xF3tima localiza\xE7\xE3o", description: "Oportunidade \xFAnica! Im\xF3vel com excelente localiza\xE7\xE3o em cidade. Im\xF3vel pronto para morar com todas as comodidades necess\xE1rias.", seo_slug: "garden-locacao-mooca", seo_title: "Im\xF3vel em S\xE3o Paulo - Centro", seo_description: "Im\xF3vel com 2 dormit\xF3rios, 120m\xB2", seo_keywords: "venda, aluguel, im\xF3vel", main_image: { full: "https://images.unsplash.com/photo-1502672260266-1c1ef2d93688?w=1920", md: "https://images.unsplash.com/photo-1502672260266-1c1ef2d93688?w=1024", sm: "https://images.unsplash.com/photo-1502672260266-1c1ef2d93688?w=480" }, images: [ { full: "https://images.unsplash.com/photo-1502672260266-1c1ef2d93688?w=1920", md: "https://images.unsplash.com/photo-1502672260266-1c1ef2d93688?w=1024", sm: "https://images.unsplash.com/photo-1502672260266-1c1ef2d93688?w=480", cover: true }, { full: "https://images.unsplash.com/photo-1560448204-e02f11c3d0e2?w=1920", md: "https://images.unsplash.com/photo-1560448204-e02f11c3d0e2?w=1024", sm: "https://images.unsplash.com/photo-1560448204-e02f11c3d0e2?w=480", cover: false }, { full: "https://images.unsplash.com/photo-1571055107559-3e67626fa8be?w=1920", md: "https://images.unsplash.com/photo-1571055107559-3e67626fa8be?w=1024", sm: "https://images.unsplash.com/photo-1571055107559-3e67626fa8be?w=480", cover: false }, { full: "https://images.unsplash.com/photo-1484154218962-a197022b5858?w=1920", md: "https://images.unsplash.com/photo-1484154218962-a197022b5858?w=1024", sm: "https://images.unsplash.com/photo-1484154218962-a197022b5858?w=480", cover: false }, { full: "https://images.unsplash.com/photo-1522708323590-d24dbb6b0267?w=1920", md: "https://images.unsplash.com/photo-1522708323590-d24dbb6b0267?w=1024", sm: "https://images.unsplash.com/photo-1522708323590-d24dbb6b0267?w=480", cover: false } ], videos: [], virtual_tours: [], documents: [], currency: "BRL", unit_area: "m2", unit_distance: "meters", map_show_proximity: false, operacao: [ "locacao" ], valor_venda: 378954596e-2, valor_locacao: 6550.17, valor_diaria: 622.63, valor_condominio: 1572.97, valor_iptu: 5679.72, area_total: 116, area_privativa: 320, area_util: 339, dormitorios: 5, suites: 0, banheiros: 1, vagas_garagem: 1, finalidade: "Mista", tipo: "Apartamentos", subtipo: "Garden", endereco_cep: "91867-728", endereco_estado: "Pernambuco", endereco_cidade: "Nova Igua\xE7u", endereco_bairro: "Mooca", endereco_logradouro: "Avenida Central", endereco_numero: "1485", endereco_zona: "Leste", latitude: -23.57415356, longitude: -46.67982593, mobiliado: false, caracteristicas: [ "Casa de Caseiro", "Quadra", "Elevador", "Recep\xE7\xE3o" ], destaque: false, corretor_nome: "Patricia Souza", condominio_nome: "Condom\xEDnio Ingleses Beach", tags: [ "Garden", "Mooca", "Im\xF3vel" ], numero_pessoas: 2 }, { reference: "FAKE_0048", updated_at: "2025-08-12T13:21:43.755Z", title: "Im\xF3vel de 120m\xB2 em excelente localiza\xE7\xE3o", description: "Im\xF3vel moderno com excelente custo-benef\xEDcio. Localizado em bairro nobre com f\xE1cil acesso a com\xE9rcios e servi\xE7os. Acabamentos de primeira linha.", seo_slug: "duplex-temporada-ipanema", seo_title: "Im\xF3vel em S\xE3o Paulo - Centro", seo_description: "Im\xF3vel com 2 dormit\xF3rios, 120m\xB2", seo_keywords: "venda, aluguel, im\xF3vel", main_image: { full: "https://images.unsplash.com/photo-1560448204-e02f11c3d0e2?w=1920", md: "https://images.unsplash.com/photo-1560448204-e02f11c3d0e2?w=1024", sm: "https://images.unsplash.com/photo-1560448204-e02f11c3d0e2?w=480" }, images: [ { full: "https://images.unsplash.com/photo-1560448204-e02f11c3d0e2?w=1920", md: "https://images.unsplash.com/photo-1560448204-e02f11c3d0e2?w=1024", sm: "https://images.unsplash.com/photo-1560448204-e02f11c3d0e2?w=480", cover: true }, { full: "https://images.unsplash.com/photo-1522708323590-d24dbb6b0267?w=1920", md: "https://images.unsplash.com/photo-1522708323590-d24dbb6b0267?w=1024", sm: "https://images.unsplash.com/photo-1522708323590-d24dbb6b0267?w=480", cover: false }, { full: "https://images.unsplash.com/photo-1484154218962-a197022b5858?w=1920", md: "https://images.unsplash.com/photo-1484154218962-a197022b5858?w=1024", sm: "https://images.unsplash.com/photo-1484154218962-a197022b5858?w=480", cover: false }, { full: "https://images.unsplash.com/photo-1571055107559-3e67626fa8be?w=1920", md: "https://images.unsplash.com/photo-1571055107559-3e67626fa8be?w=1024", sm: "https://images.unsplash.com/photo-1571055107559-3e67626fa8be?w=480", cover: false } ], videos: [], virtual_tours: [], documents: [], currency: "BRL", unit_area: "m2", unit_distance: "meters", map_show_proximity: false, operacao: [ "temporada", "locacao" ], valor_venda: 176161.52, valor_locacao: 6089.75, valor_diaria: 206.48, valor_condominio: 219.67, valor_iptu: 3070.3, area_total: 32, area_privativa: 127, area_util: 398, dormitorios: 2, suites: 0, banheiros: 2, vagas_garagem: 4, finalidade: "Mista", tipo: "Apartamentos", subtipo: "Duplex", endereco_cep: "92811-602", endereco_estado: "Santa Catarina", endereco_cidade: "Itaja\xED", endereco_bairro: "Ipanema", endereco_logradouro: "Avenida Central", endereco_numero: "2171", endereco_zona: "Centro", latitude: -23.54790079, longitude: -46.66119864, mobiliado: false, caracteristicas: [ "Spa", "Jardim", "Churrasqueira", "\xC1rea Gourmet", "Portaria 24h" ], destaque: false, corretor_nome: "Patricia Souza", condominio_nome: "Condom\xEDnio Botafogo Bay", tags: [ "Duplex", "Ipanema", "Im\xF3vel" ], numero_pessoas: 7 }, { reference: "FAKE_0074", updated_at: "2025-08-12T13:21:43.760Z", title: "Im\xF3vel com 2 dormit\xF3rios para venda", description: "Excelente im\xF3vel localizado em excelente bairro, cidade. Im\xF3vel com \xF3tima localiza\xE7\xE3o e acabamento de qualidade. Caracter\xEDsticas destacadas incluem Casa de Caseiro, Ar Condicionado Central, Cisterna. Agende sua visita!", seo_slug: "garden-locacao-copacabana", seo_title: "Im\xF3vel em S\xE3o Paulo - Centro", seo_description: "Im\xF3vel com 2 dormit\xF3rios, 120m\xB2", seo_keywords: "venda, aluguel, im\xF3vel", main_image: { full: "https://images.unsplash.com/photo-1571055107559-3e67626fa8be?w=1920", md: "https://images.unsplash.com/photo-1571055107559-3e67626fa8be?w=1024", sm: "https://images.unsplash.com/photo-1571055107559-3e67626fa8be?w=480" }, images: [ { full: "https://images.unsplash.com/photo-1571055107559-3e67626fa8be?w=1920", md: "https://images.unsplash.com/photo-1571055107559-3e67626fa8be?w=1024", sm: "https://images.unsplash.com/photo-1571055107559-3e67626fa8be?w=480", cover: true }, { full: "https://images.unsplash.com/photo-1560448204-e02f11c3d0e2?w=1920", md: "https://images.unsplash.com/photo-1560448204-e02f11c3d0e2?w=1024", sm: "https://images.unsplash.com/photo-1560448204-e02f11c3d0e2?w=480", cover: false }, { full: "https://images.unsplash.com/photo-1502672260266-1c1ef2d93688?w=1920", md: "https://images.unsplash.com/photo-1502672260266-1c1ef2d93688?w=1024", sm: "https://images.unsplash.com/photo-1502672260266-1c1ef2d93688?w=480", cover: false }, { full: "https://images.unsplash.com/photo-1484154218962-a197022b5858?w=1920", md: "https://images.unsplash.com/photo-1484154218962-a197022b5858?w=1024", sm: "https://images.unsplash.com/photo-1484154218962-a197022b5858?w=480", cover: false }, { full: "https://images.unsplash.com/photo-1522708323590-d24dbb6b0267?w=1920", md: "https://images.unsplash.com/photo-1522708323590-d24dbb6b0267?w=1024", sm: "https://images.unsplash.com/photo-1522708323590-d24dbb6b0267?w=480", cover: false } ], videos: [], virtual_tours: [], documents: [], currency: "BRL", unit_area: "m2", unit_distance: "meters", map_show_proximity: false, operacao: [ "locacao" ], valor_venda: 451913551e-2, valor_locacao: 1722.05, valor_diaria: 159.15, valor_condominio: 305.06, valor_iptu: 1601.99, area_total: 346, area_privativa: 147, area_util: 382, dormitorios: 3, suites: 2, banheiros: 1, vagas_garagem: 1, finalidade: "Comercial", tipo: "Apartamentos", subtipo: "Garden", endereco_cep: "30718-482", endereco_estado: "Cear\xE1", endereco_cidade: "Montes Claros", endereco_bairro: "Copacabana", endereco_logradouro: "Avenida Jo\xE3o Pessoa", endereco_numero: "3030", endereco_zona: "Centro-Norte", latitude: -23.51688453, longitude: -46.58742062, mobiliado: false, caracteristicas: [ "Varanda", "Estacionamento", "\xC1rea de Servi\xE7o" ], destaque: false, corretor_nome: "Patricia Souza", condominio_nome: "Condom\xEDnio Ingleses Beach", tags: [ "Garden", "Copacabana", "Im\xF3vel" ], numero_pessoas: 1 }, { reference: "FAKE_0078", updated_at: "2025-08-12T13:21:43.761Z", title: "Excelente Im\xF3vel - 2 quartos, 120m\xB2", description: "Im\xF3vel moderno com excelente custo-benef\xEDcio. Localizado em bairro nobre com f\xE1cil acesso a com\xE9rcios e servi\xE7os. Acabamentos de primeira linha.", seo_slug: "garden-temporada-campeche", seo_title: "Im\xF3vel em S\xE3o Paulo - Centro", seo_description: "Im\xF3vel com 2 dormit\xF3rios, 120m\xB2", seo_keywords: "venda, aluguel, im\xF3vel", main_image: { full: "https://images.unsplash.com/photo-1522708323590-d24dbb6b0267?w=1920", md: "https://images.unsplash.com/photo-1522708323590-d24dbb6b0267?w=1024", sm: "https://images.unsplash.com/photo-1522708323590-d24dbb6b0267?w=480" }, images: [ { full: "https://images.unsplash.com/photo-1522708323590-d24dbb6b0267?w=1920", md: "https://images.unsplash.com/photo-1522708323590-d24dbb6b0267?w=1024", sm: "https://images.unsplash.com/photo-1522708323590-d24dbb6b0267?w=480", cover: true }, { full: "https://images.unsplash.com/photo-1484154218962-a197022b5858?w=1920", md: "https://images.unsplash.com/photo-1484154218962-a197022b5858?w=1024", sm: "https://images.unsplash.com/photo-1484154218962-a197022b5858?w=480", cover: false }, { full: "https://images.unsplash.com/photo-1502672260266-1c1ef2d93688?w=1920", md: "https://images.unsplash.com/photo-1502672260266-1c1ef2d93688?w=1024", sm: "https://images.unsplash.com/photo-1502672260266-1c1ef2d93688?w=480", cover: false },