UNPKG

@horizon-integrations/jetimob-crm

Version:

Integração da Imobland Horizon com a Jetimob CRM

1,400 lines (1,394 loc) 198 kB
"use strict"; "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, { HorizonPropertySchemaByJetimob: () => HorizonPropertySchemaByJetimob, HorizonPropertySchemaByJetimobZod: () => HorizonPropertySchemaByJetimobZod, JetimobDownloader: () => PropertyDownloader, PropertyDownloader: () => PropertyDownloader, convertJetimobPropertyToHorizon: () => convertJetimobPropertyToHorizon, fakeData: () => jetimobFakeData }); module.exports = __toCommonJS(index_exports); // src/services/PropertyConverter/convertBaseFields.ts function convertBaseFields(imovel) { const result = {}; result.reference = imovel.codigo; if (imovel.titulo_anuncio) result.title = imovel.titulo_anuncio; if (imovel.observacoes) result.description = imovel.observacoes; result.updated_at = imovel.updated_at || (/* @__PURE__ */ new Date()).toISOString(); if (imovel.titulo_anuncio) result.seo_title = imovel.titulo_anuncio.substring(0, 60); if (imovel.meta_description) result.seo_description = imovel.meta_description; result.currency = "BRL"; result.unit_area = imovel.medida === "m\xB2" || imovel.medida === "m2" ? "m2" : "m2"; result.unit_distance = "meters"; result.map_show_proximity = false; if (imovel.contrato) { const contratoLower = imovel.contrato.toLowerCase(); if (contratoLower === "compra") { result.operacao = ["venda"]; } else if (contratoLower === "loca\xE7\xE3o" || contratoLower === "aluguel") { result.operacao = ["locacao"]; } else if (contratoLower === "temporada") { result.operacao = ["temporada"]; } else { result.operacao = [imovel.contrato]; } } if (imovel.valor_venda) { const valor = Number(imovel.valor_venda); if (!isNaN(valor) && valor > 0) result.valor_venda = valor; } if (imovel.valor_locacao && imovel.valor_locacao_visivel) { const valor = Number(imovel.valor_locacao); if (!isNaN(valor) && valor > 0) result.valor_locacao = valor; } if (imovel.valor_temporada && imovel.valor_temporada_visivel) { const valor = Number(imovel.valor_temporada); if (!isNaN(valor) && valor > 0) result.valor_diaria = valor; } if (imovel.valor_condominio && imovel.valor_condominio_visivel) { const valor = Number(imovel.valor_condominio); if (!isNaN(valor) && valor >= 0) result.valor_condominio = valor; } if (imovel.valor_iptu && imovel.valor_iptu_visivel) { const valor = Number(imovel.valor_iptu); if (!isNaN(valor) && valor >= 0) result.valor_iptu = valor; } if (imovel.area_total) { const area = Number(imovel.area_total); if (!isNaN(area) && area > 0) result.area_total = area; } if (imovel.area_privativa) { const area = Number(imovel.area_privativa); if (!isNaN(area) && area > 0) result.area_privativa = area; } if (imovel.area_util) { const area = Number(imovel.area_util); if (!isNaN(area) && area > 0) result.area_util = area; } if (imovel.dormitorios) result.dormitorios = Number(imovel.dormitorios); if (imovel.suites) result.suites = Number(imovel.suites); if (imovel.banheiros) result.banheiros = Number(imovel.banheiros); if (imovel.garagens) result.vagas_garagem = Number(imovel.garagens); if (imovel.tipo) result.finalidade = imovel.tipo; if (imovel.subtipo) result.tipo = imovel.subtipo; if (imovel.endereco_cep) { const cepLimpo = imovel.endereco_cep.replace(/\D/g, ""); if (cepLimpo.length === 8) { result.endereco_cep = `${cepLimpo.slice(0, 5)}-${cepLimpo.slice(5)}`; } else { result.endereco_cep = imovel.endereco_cep; } } if (imovel.endereco_estado) result.endereco_estado = imovel.endereco_estado; if (imovel.endereco_cidade) result.endereco_cidade = imovel.endereco_cidade; if (imovel.endereco_bairro) result.endereco_bairro = imovel.endereco_bairro; if (imovel.endereco_logradouro) result.endereco_logradouro = imovel.endereco_logradouro; if (imovel.endereco_numero) result.endereco_numero = imovel.endereco_numero; if (imovel.endereco_complemento) result.endereco_complemento = imovel.endereco_complemento; if (imovel.endereco_referencia) result.endereco_referencia = imovel.endereco_referencia; if (imovel.endereco_zona) result.endereco_zona = imovel.endereco_zona; const geoValue = imovel.geoposicionamento_visivel ? Number(imovel.geoposicionamento_visivel) : 0; if (imovel.latitude && imovel.longitude && geoValue !== 0) { const lat = Number(imovel.latitude); const lng = Number(imovel.longitude); if (!isNaN(lat) && !isNaN(lng) && lat !== 0 && lng !== 0) { result.latitude = lat; result.longitude = lng; } } if (String(imovel.mobiliado) === "1" || String(imovel.mobiliado) === "true") { result.mobiliado = true; } if (imovel.imovel_comodidades) { const comodidadesArray = String(imovel.imovel_comodidades).split(",").map((c) => c.trim()).filter((c) => c.length > 0); if (comodidadesArray.length > 0) { result.caracteristicas = comodidadesArray; } } if (imovel.destaque && imovel.destaque !== "Sem destaque") { if (imovel.destaque === "Destaque" || imovel.destaque === "true" || String(imovel.destaque) === "true") { result.destaque = true; } } if (imovel.id_corretor) { result.corretor_key = String(imovel.id_corretor); } if (imovel.id_condominio) { result.condominio_key = String(imovel.id_condominio); } if (imovel.condominio_nome) { result.condominio_nome = imovel.condominio_nome; } if (imovel.tags) { result.tags = imovel.tags.split(",").map((tag) => tag.trim()).filter((tag) => tag.length > 0); } if (imovel.numero_pessoas) { const pessoas = Number(imovel.numero_pessoas); if (!isNaN(pessoas) && pessoas > 0) result.numero_pessoas = pessoas; } if (imovel.imagens && imovel.imagens.length > 0) { result.images = imovel.imagens.map((imagem, index) => ({ full: imagem.link, md: imagem.link_thumb || imagem.link, sm: imagem.link_thumb || imagem.link, cover: index === 0 // primeira imagem como cover })); const imagemPrincipal = imovel.imagens[0]; if (imagemPrincipal) { result.main_image = { full: imagemPrincipal.link, md: imagemPrincipal.link_thumb || imagemPrincipal.link, sm: imagemPrincipal.link_thumb || imagemPrincipal.link }; } } if (imovel.videos && imovel.videos.length > 0) { result.videos = imovel.videos.map((url) => generateVideo(url)); } if (imovel.tour360 && imovel.tour360.length > 0) { result.virtual_tours = imovel.tour360.map((tour) => ({ embed_url: tour })); } if (imovel.plantas && imovel.plantas.length > 0) { result.documents = imovel.plantas.map((plantaUrl, index) => ({ name: `Planta ${index + 1}`, url: plantaUrl })); } return result; } function generateVideo(url) { try { const parsed = new URL(url); const host = parsed.hostname; if (host.includes("youtube.com") || host.includes("youtu.be")) { const id = parsed.searchParams.get("v") || parsed.pathname.split("/").pop(); return { provider: "youtube", id: id || void 0, embed_url: `https://www.youtube.com/embed/${id}` }; } return { embed_url: url }; } catch (e) { return { embed_url: url }; } } // src/services/PropertyConverter/convertExtendedFields.ts function convertExtendedFields(imovel) { const result = {}; if (imovel.valor_seguro_incendio) { const valor = Number(imovel.valor_seguro_incendio); if (!isNaN(valor) && valor >= 0) result.valor_seguro_incendio = valor; } if (imovel.valor_taxa_limpeza) { const valor = Number(imovel.valor_taxa_limpeza); if (!isNaN(valor) && valor >= 0) result.valor_taxa_limpeza = valor; } if (imovel.andar) result.andar = Number(imovel.andar); if (String(imovel.financiavel) === "1" || String(imovel.financiavel) === "true") { result.financiavel = true; } if (String(imovel.exclusividade) === "true" || String(imovel.exclusividade) === "1") { result.exclusividade = true; } if (String(imovel.permuta) === "true" || String(imovel.permuta) === "1") { result.permuta = true; } if (String(imovel.seguro_fianca) === "true" || String(imovel.seguro_fianca) === "1") { result.seguro_fianca = true; } if (imovel.situacao) result.situacao = imovel.situacao; if (imovel.distancia_mar) result.distancia_mar = Number(imovel.distancia_mar); if (imovel.posicao_solar) result.posicao_solar = imovel.posicao_solar; if (imovel.status) result.status = imovel.status; if (imovel.posicao) result.posicao = imovel.posicao; if (imovel.calendario_temporada) { result.calendario_temporada = Array.isArray(imovel.calendario_temporada) ? imovel.calendario_temporada : [imovel.calendario_temporada]; } if (imovel.condominio_comodidades) { result.condominio_comodidades = Array.isArray(imovel.condominio_comodidades) ? imovel.condominio_comodidades : [imovel.condominio_comodidades]; } if (imovel.condominio_tipo) result.condominio_tipo = imovel.condominio_tipo; if (imovel.id_subcondominio) result.subcondominio_id = String(imovel.id_subcondominio); if (String(imovel.condominio_fechado) === "1" || String(imovel.condominio_fechado) === "true") { result.condominio_fechado = true; } if (imovel.entrega_ano) { const ano = Number(imovel.entrega_ano); if (!isNaN(ano) && ano > 0) result.entrega_ano = ano; } if (imovel.entrega_mes) { const mes = Number(imovel.entrega_mes); if (!isNaN(mes) && mes > 0 && mes <= 12) result.entrega_mes = mes; } if (imovel.tipo_construcao) result.tipo_construcao = imovel.tipo_construcao; if (imovel.tipo_piso) result.tipo_piso = imovel.tipo_piso; if (imovel.periodicidade_iptu) result.periodicidade_iptu = imovel.periodicidade_iptu; if (imovel.terreno_frente) { const medida = Number(imovel.terreno_frente); if (!isNaN(medida) && medida > 0) result.terreno_frente = medida; } if (imovel.terreno_fundos) { const medida = Number(imovel.terreno_fundos); if (!isNaN(medida) && medida > 0) result.terreno_fundos = medida; } if (imovel.terreno_esquerdo) { const medida = Number(imovel.terreno_esquerdo); if (!isNaN(medida) && medida > 0) result.terreno_esquerdo = medida; } if (imovel.terreno_direita) { const medida = Number(imovel.terreno_direita); if (!isNaN(medida) && medida > 0) result.terreno_direita = medida; } if (imovel.terreno_total) { const area = Number(imovel.terreno_total); if (!isNaN(area) && area > 0) result.terreno_area_total = area; } if (imovel.rural?.rural_area_aravel) { const area = Number(imovel.rural.rural_area_aravel); if (!isNaN(area) && area > 0) result.rural_area_aravel = area; } if (imovel.rural?.rural_sedes) { const sedes = Number(imovel.rural.rural_sedes); if (!isNaN(sedes) && sedes > 0) result.rural_sedes = sedes; } if (imovel.rural?.atividade_rural) result.rural_atividade = imovel.rural.atividade_rural; return result; } // src/services/PropertyConverter/index.ts function convertJetimobPropertyToHorizon(imovel) { const baseFields = convertBaseFields(imovel); const extendedFields = convertExtendedFields(imovel); const result = { ...baseFields, ...extendedFields }; return result; } // src/services/PropertyDownloader.ts var import_fs = require("fs"); var import_path = require("path"); var PropertyDownloader = class { constructor(config) { this.webserviceKey = config.webserviceKey; this.baseUrl = config.baseUrl || "https://api.jetimob.com"; this.outputDir = config.outputDir; } async getProperties(page = 1, pageSize = 50) { const url = `${this.baseUrl}/webservice/${this.webserviceKey}/imoveis?v=4&page=${page}&pageSize=${pageSize}`; console.log(`\u{1F517} Requisi\xE7\xE3o: ${url}`); const response = await fetch(url); if (!response.ok) { const errorText = await response.text(); throw new Error( `Erro ${response.status}: ${errorText}` ); } return response.json(); } async ensureOutputDir() { try { await import_fs.promises.access(this.outputDir); } catch { await import_fs.promises.mkdir(this.outputDir, { recursive: true }); } } async savePageData(page, data) { const properties = data?.data || data; if (!Array.isArray(properties) || properties.length === 0) { console.log( ` \u{1F4C4} P\xE1gina ${page} vazia, n\xE3o salvando arquivo` ); return false; } const fileName = `page-${page}.json`; const filePath = (0, import_path.join)( this.outputDir, fileName ); await import_fs.promises.writeFile( filePath, JSON.stringify(properties, null, 2), "utf8" ); return true; } async downloadAll(pageSize = 100) { await this.ensureOutputDir(); const errors = []; let totalPages = 0; let downloadedItems = 0; let currentPage = 1; console.log( `\u{1F680} Iniciando download completo da API...` ); console.log( `\u{1F4C4} Tamanho da p\xE1gina: ${pageSize} propriedades` ); try { while (true) { console.log( ` \u{1F4C4} Baixando p\xE1gina ${currentPage}...` ); const response = await this.getProperties( currentPage, pageSize ); const properties = response?.data || response; if (!Array.isArray(properties) || properties.length === 0) { console.log( `\u2705 P\xE1gina ${currentPage} vazia - download completo!` ); break; } const saved = await this.savePageData( currentPage, response ); if (saved) { downloadedItems += properties.length; console.log( `\u2705 P\xE1gina ${currentPage}: ${properties.length} propriedades salvas` ); } if (response?.totalPages) { console.log( `\u{1F4CA} Progresso: ${currentPage}/${response.totalPages} p\xE1ginas` ); } currentPage++; totalPages = currentPage - 1; await new Promise( (resolve) => setTimeout(resolve, 500) ); } } catch (error) { const errorMsg = `Erro no download: ${error instanceof Error ? error.message : String(error)}`; errors.push(errorMsg); console.error(`\u274C ${errorMsg}`); } console.log(` \u{1F4CA} RESUMO DO DOWNLOAD:`); console.log( `\u{1F4C4} Total de p\xE1ginas: ${totalPages}` ); console.log( `\u2705 Propriedades baixadas: ${downloadedItems}` ); if (errors.length > 0) { console.log( `\u274C Erros: ${errors.length}` ); errors.forEach( (err) => console.log(` - ${err}`) ); } return { totalPages, totalItems: downloadedItems, downloadedItems, errors }; } }; // src/data/fake-data/apartamentos.json var apartamentos_default = [ { codigo: "FAKE_APARTAMENTOS_001", titulo_anuncio: "Apartamento Centro - 2 dorm, 2 su\xEDtes, 165m\xB2, 1 vaga", observacoes: "Apartamento com vista para o mar em Torres, a praia mais linda do RS.", contrato: "Compra", tipo: "Residencial", subtipo: "Apartamento", mobiliado: 0, financiavel: 0, exclusividade: false, medida: "m\xB2", endereco_estado: "Rio Grande do Sul", endereco_cidade: "Torres", data_cadastro: "2024-01-06 13:26:01", data_update: "2025-03-03 00:46:23", data_atualizacao: "2025-03-16 10:42:00", updated_at: "2025-03-19 08:18:57", dormitorios: 2, suites: 2, banheiros: 3, garagens: 1, area_total: 150, area_privativa: 165, andar: 1, valor_venda: 28e4, endereco_bairro: "Vila S\xE3o Jo\xE3o", endereco_logradouro: "Rua J\xFAlio de Castilhos", endereco_numero: "491", endereco_cep: "95560-070", endereco_complemento: "Apto 1", latitude: -29.342936776054497, longitude: -49.72035923955464, imovel_comodidades: "Sacada,Pr\xF3ximo \xE0 praia,\xC1rea de servi\xE7o,Churrasqueira,Lavabo", imagens: [ { link: "https://images.unsplash.com/photo-1565183997392-2f6f122e5912?w=800&q=80", titulo: "1.jpg", link_thumb: "https://images.unsplash.com/photo-1565183997392-2f6f122e5912?w=400&q=80" }, { link: "https://images.unsplash.com/photo-1545324418-cc1a3fa10c00?w=800&q=80", titulo: "2.jpg", link_thumb: "https://images.unsplash.com/photo-1545324418-cc1a3fa10c00?w=400&q=80" }, { link: "https://images.unsplash.com/photo-1568605117036-5fe5e7bab0b7?w=800&q=80", titulo: "3.jpg", link_thumb: "https://images.unsplash.com/photo-1568605117036-5fe5e7bab0b7?w=400&q=80" } ], videos: [], tour360: [], plantas: [], valor_venda_visivel: true, valor_locacao_visivel: false, valor_temporada_visivel: false, valor_condominio_visivel: false, valor_iptu_visivel: false, endereco_estado_visivel: true, endereco_cidade_visivel: false, endereco_bairro_visivel: false, endereco_logradouro_visivel: false, endereco_numero_visivel: false, endereco_complemento_visivel: false }, { codigo: "FAKE_APARTAMENTOS_002", titulo_anuncio: "Apartamento Centro - 4 dorm, 3 su\xEDtes, 165m\xB2, 3 vagas", observacoes: "Unidade moderna pr\xF3xima ao Centro Hist\xF3rico e ao Farol de Torres.", contrato: "Compra", tipo: "Residencial", subtipo: "Apartamento", mobiliado: 0, financiavel: 0, exclusividade: false, medida: "m\xB2", endereco_estado: "Rio Grande do Sul", endereco_cidade: "Torres", data_cadastro: "2024-03-10 02:20:33", data_update: "2025-05-18 22:01:44", data_atualizacao: "2025-04-13 15:23:31", updated_at: "2025-01-14 22:31:12", dormitorios: 4, suites: 3, banheiros: 3, garagens: 3, area_total: 105, area_privativa: 165, andar: 10, valor_venda: 85e4, endereco_bairro: "Vila S\xE3o Jo\xE3o", endereco_logradouro: "Rua Jo\xE3o Neves da Fontoura", endereco_numero: "882", endereco_cep: "95560-020", endereco_complemento: "", latitude: -29.326109044782587, longitude: -49.72886046595862, imovel_comodidades: "\xC1rea gourmet,\xC1rea de servi\xE7o,Lavabo,Hidromassagem", imagens: [ { link: "https://images.unsplash.com/photo-1493663284031-b7e3aefcae8e?w=800&q=80", titulo: "1.jpg", link_thumb: "https://images.unsplash.com/photo-1493663284031-b7e3aefcae8e?w=400&q=80" }, { link: "https://images.unsplash.com/photo-1493663284031-b7e3aefcae8e?w=800&q=80", titulo: "2.jpg", link_thumb: "https://images.unsplash.com/photo-1493663284031-b7e3aefcae8e?w=400&q=80" }, { link: "https://images.unsplash.com/photo-1560185127-6ed189bf02f4?w=800&q=80", titulo: "3.jpg", link_thumb: "https://images.unsplash.com/photo-1560185127-6ed189bf02f4?w=400&q=80" }, { link: "https://images.unsplash.com/photo-1560185127-6ed189bf02f4?w=800&q=80", titulo: "4.jpg", link_thumb: "https://images.unsplash.com/photo-1560185127-6ed189bf02f4?w=400&q=80" }, { link: "https://images.unsplash.com/photo-1545324418-cc1a3fa10c00?w=800&q=80", titulo: "5.jpg", link_thumb: "https://images.unsplash.com/photo-1545324418-cc1a3fa10c00?w=400&q=80" } ], videos: [], tour360: [], plantas: [], valor_venda_visivel: true, valor_locacao_visivel: false, valor_temporada_visivel: false, valor_condominio_visivel: false, valor_iptu_visivel: false, endereco_estado_visivel: true, endereco_cidade_visivel: false, endereco_bairro_visivel: false, endereco_logradouro_visivel: false, endereco_numero_visivel: false, endereco_complemento_visivel: false }, { codigo: "FAKE_APARTAMENTOS_003", titulo_anuncio: "Apartamento Centro - 3 dorm, 115m\xB2, 3 vagas", observacoes: "Im\xF3vel com excelente localiza\xE7\xE3o e acabamentos de primeira linha.", contrato: "Compra", tipo: "Residencial", subtipo: "Apartamento", mobiliado: 0, financiavel: 0, exclusividade: false, medida: "m\xB2", endereco_estado: "Rio Grande do Sul", endereco_cidade: "Torres", data_cadastro: "2025-07-23 02:33:46", data_update: "2024-06-18 14:20:49", data_atualizacao: "2025-05-26 22:11:42", updated_at: "2025-07-18 14:46:17", dormitorios: 3, suites: 0, banheiros: 3, garagens: 3, area_total: 45, area_privativa: 115, andar: 15, valor_venda: 85e4, endereco_bairro: "Praia Grande", endereco_logradouro: "Rua Senador Pinheiro Machado", endereco_numero: "430", endereco_cep: "95560-060", endereco_complemento: "Apto 2", latitude: -29.336375878338483, longitude: -49.72503985134924, imovel_comodidades: "Ar condicionado,Varanda,\xC1rea gourmet,\xC1rea de servi\xE7o", imagens: [ { link: "https://images.unsplash.com/photo-1502672260266-1c1ef2d93688?w=800&q=80", titulo: "1.jpg", link_thumb: "https://images.unsplash.com/photo-1502672260266-1c1ef2d93688?w=400&q=80" }, { link: "https://images.unsplash.com/photo-1493663284031-b7e3aefcae8e?w=800&q=80", titulo: "2.jpg", link_thumb: "https://images.unsplash.com/photo-1493663284031-b7e3aefcae8e?w=400&q=80" }, { link: "https://images.unsplash.com/photo-1522708323590-d24dbb6b0267?w=800&q=80", titulo: "3.jpg", link_thumb: "https://images.unsplash.com/photo-1522708323590-d24dbb6b0267?w=400&q=80" }, { link: "https://images.unsplash.com/photo-1560185127-6ed189bf02f4?w=800&q=80", titulo: "4.jpg", link_thumb: "https://images.unsplash.com/photo-1560185127-6ed189bf02f4?w=400&q=80" }, { link: "https://images.unsplash.com/photo-1586023492125-27b2c045efd7?w=800&q=80", titulo: "5.jpg", link_thumb: "https://images.unsplash.com/photo-1586023492125-27b2c045efd7?w=400&q=80" } ], videos: [], tour360: [], plantas: [], valor_venda_visivel: true, valor_locacao_visivel: false, valor_temporada_visivel: false, valor_condominio_visivel: false, valor_iptu_visivel: false, endereco_estado_visivel: true, endereco_cidade_visivel: false, endereco_bairro_visivel: false, endereco_logradouro_visivel: false, endereco_numero_visivel: false, endereco_complemento_visivel: false }, { codigo: "FAKE_APARTAMENTOS_004", titulo_anuncio: "Apartamento Centro - 3 dorm, 2 su\xEDtes, 140m\xB2, 1 vaga", observacoes: "Im\xF3vel com excelente localiza\xE7\xE3o e acabamentos de primeira linha.", contrato: "Compra", tipo: "Residencial", subtipo: "Apartamento", mobiliado: 0, financiavel: 0, exclusividade: false, medida: "m\xB2", endereco_estado: "Rio Grande do Sul", endereco_cidade: "Torres", data_cadastro: "2025-01-12 05:21:57", data_update: "2025-07-10 14:50:25", data_atualizacao: "2024-10-07 07:40:13", updated_at: "2025-05-05 10:51:02", dormitorios: 3, suites: 2, banheiros: 1, garagens: 1, area_total: 65, area_privativa: 140, andar: 12, valor_venda: 85e4, endereco_bairro: "Jardim Ubatuba", endereco_logradouro: "Rua Senador Pinheiro Machado", endereco_numero: "427", endereco_cep: "95560-020", endereco_complemento: "Apto 6", latitude: -29.339157171441027, longitude: -49.72632203630522, imovel_comodidades: "Ar condicionado,Jardim,Garagem coberta,Terra\xE7o,Sacada,Pr\xF3ximo \xE0 praia", imagens: [ { link: "https://images.unsplash.com/photo-1560448204-e02f11c3d0e2?w=800&q=80", titulo: "1.jpg", link_thumb: "https://images.unsplash.com/photo-1560448204-e02f11c3d0e2?w=400&q=80" }, { link: "https://images.unsplash.com/photo-1522708323590-d24dbb6b0267?w=800&q=80", titulo: "2.jpg", link_thumb: "https://images.unsplash.com/photo-1522708323590-d24dbb6b0267?w=400&q=80" }, { link: "https://images.unsplash.com/photo-1568605117036-5fe5e7bab0b7?w=800&q=80", titulo: "3.jpg", link_thumb: "https://images.unsplash.com/photo-1568605117036-5fe5e7bab0b7?w=400&q=80" }, { link: "https://images.unsplash.com/photo-1556909114-f6e7ad7d3136?w=800&q=80", titulo: "4.jpg", link_thumb: "https://images.unsplash.com/photo-1556909114-f6e7ad7d3136?w=400&q=80" } ], videos: [], tour360: [], plantas: [], valor_venda_visivel: true, valor_locacao_visivel: false, valor_temporada_visivel: false, valor_condominio_visivel: false, valor_iptu_visivel: false, endereco_estado_visivel: true, endereco_cidade_visivel: false, endereco_bairro_visivel: false, endereco_logradouro_visivel: false, endereco_numero_visivel: false, endereco_complemento_visivel: false }, { codigo: "FAKE_APARTAMENTOS_005", titulo_anuncio: "Apartamento Centro - 3 dorm, 3 su\xEDtes, 55m\xB2, 2 vagas", observacoes: "Apartamento com sacada, a poucos metros da Praia Grande.", contrato: "Compra", tipo: "Residencial", subtipo: "Apartamento", mobiliado: 0, financiavel: 0, exclusividade: false, medida: "m\xB2", endereco_estado: "Rio Grande do Sul", endereco_cidade: "Torres", data_cadastro: "2024-05-08 10:23:39", data_update: "2024-09-18 14:42:42", data_atualizacao: "2024-01-07 03:13:44", updated_at: "2025-02-09 06:49:29", dormitorios: 3, suites: 3, banheiros: 4, garagens: 2, area_total: 180, area_privativa: 55, andar: 12, valor_venda: 18e4, endereco_bairro: "Prainha", endereco_logradouro: "Rua Bar\xE3o do Rio Branco", endereco_numero: "526", endereco_cep: "95560-060", endereco_complemento: "", latitude: -29.33708529462322, longitude: -49.73430782637095, imovel_comodidades: "Lareira,Varanda", imagens: [ { link: "https://images.unsplash.com/photo-1522708323590-d24dbb6b0267?w=800&q=80", titulo: "1.jpg", link_thumb: "https://images.unsplash.com/photo-1522708323590-d24dbb6b0267?w=400&q=80" }, { link: "https://images.unsplash.com/photo-1502672260266-1c1ef2d93688?w=800&q=80", titulo: "2.jpg", link_thumb: "https://images.unsplash.com/photo-1502672260266-1c1ef2d93688?w=400&q=80" }, { link: "https://images.unsplash.com/photo-1493663284031-b7e3aefcae8e?w=800&q=80", titulo: "3.jpg", link_thumb: "https://images.unsplash.com/photo-1493663284031-b7e3aefcae8e?w=400&q=80" }, { link: "https://images.unsplash.com/photo-1581858726788-75bc0f6a952d?w=800&q=80", titulo: "4.jpg", link_thumb: "https://images.unsplash.com/photo-1581858726788-75bc0f6a952d?w=400&q=80" } ], videos: [], tour360: [], plantas: [], valor_venda_visivel: true, valor_locacao_visivel: false, valor_temporada_visivel: false, valor_condominio_visivel: false, valor_iptu_visivel: false, endereco_estado_visivel: true, endereco_cidade_visivel: false, endereco_bairro_visivel: false, endereco_logradouro_visivel: false, endereco_numero_visivel: false, endereco_complemento_visivel: false }, { codigo: "FAKE_APARTAMENTOS_006", titulo_anuncio: "Apartamento Centro - 4 dorm, 2 su\xEDtes, 55m\xB2, 3 vagas", observacoes: "Apartamento com vista para o mar em Torres, a praia mais linda do RS.", contrato: "Compra", tipo: "Residencial", subtipo: "Apartamento", mobiliado: 0, financiavel: 0, exclusividade: false, medida: "m\xB2", endereco_estado: "Rio Grande do Sul", endereco_cidade: "Torres", data_cadastro: "2025-06-12 10:45:18", data_update: "2024-09-07 03:24:40", data_atualizacao: "2024-12-04 16:01:29", updated_at: "2024-07-27 13:34:42", dormitorios: 4, suites: 2, banheiros: 4, garagens: 3, area_total: 105, area_privativa: 55, andar: 12, valor_venda: 62e4, endereco_bairro: "Residencial Quinta da Colina", endereco_logradouro: "Rua Crist\xF3v\xE3o Colombo", endereco_numero: "52", endereco_cep: "95560-010", endereco_complemento: "", latitude: -29.3424800569058, longitude: -49.71831372337415, imovel_comodidades: "Churrasqueira,Vista para o mar,Garagem coberta,Ar condicionado", imagens: [ { link: "https://images.unsplash.com/photo-1574362848149-11496d93a7c7?w=800&q=80", titulo: "1.jpg", link_thumb: "https://images.unsplash.com/photo-1574362848149-11496d93a7c7?w=400&q=80" }, { link: "https://images.unsplash.com/photo-1565183997392-2f6f122e5912?w=800&q=80", titulo: "2.jpg", link_thumb: "https://images.unsplash.com/photo-1565183997392-2f6f122e5912?w=400&q=80" }, { link: "https://images.unsplash.com/photo-1581858726788-75bc0f6a952d?w=800&q=80", titulo: "3.jpg", link_thumb: "https://images.unsplash.com/photo-1581858726788-75bc0f6a952d?w=400&q=80" }, { link: "https://images.unsplash.com/photo-1560185127-6ed189bf02f4?w=800&q=80", titulo: "4.jpg", link_thumb: "https://images.unsplash.com/photo-1560185127-6ed189bf02f4?w=400&q=80" } ], videos: [], tour360: [], plantas: [], valor_venda_visivel: true, valor_locacao_visivel: false, valor_temporada_visivel: false, valor_condominio_visivel: false, valor_iptu_visivel: false, endereco_estado_visivel: true, endereco_cidade_visivel: false, endereco_bairro_visivel: false, endereco_logradouro_visivel: false, endereco_numero_visivel: false, endereco_complemento_visivel: false }, { codigo: "FAKE_APARTAMENTOS_007", titulo_anuncio: "Apartamento Centro - 2 dorm, 3 su\xEDtes, 35m\xB2, 2 vagas", observacoes: "Apartamento com sacada, a poucos metros da Praia Grande.", contrato: "Compra", tipo: "Residencial", subtipo: "Apartamento", mobiliado: 0, financiavel: 0, exclusividade: false, medida: "m\xB2", endereco_estado: "Rio Grande do Sul", endereco_cidade: "Torres", data_cadastro: "2024-10-27 12:03:54", data_update: "2025-03-07 19:18:00", data_atualizacao: "2024-07-30 07:14:20", updated_at: "2024-08-20 11:51:48", dormitorios: 2, suites: 3, banheiros: 3, garagens: 2, area_total: 180, area_privativa: 35, andar: 15, valor_venda: 18e4, endereco_bairro: "Vila Aparecida", endereco_logradouro: "Avenida Paraguassu", endereco_numero: "501", endereco_cep: "95560-001", endereco_complemento: "", latitude: -29.32939553045724, longitude: -49.72914491690439, imovel_comodidades: "Hidromassagem,Garagem coberta,\xC1rea de servi\xE7o", imagens: [ { link: "https://images.unsplash.com/photo-1545324418-cc1a3fa10c00?w=800&q=80", titulo: "1.jpg", link_thumb: "https://images.unsplash.com/photo-1545324418-cc1a3fa10c00?w=400&q=80" }, { link: "https://images.unsplash.com/photo-1545324418-cc1a3fa10c00?w=800&q=80", titulo: "2.jpg", link_thumb: "https://images.unsplash.com/photo-1545324418-cc1a3fa10c00?w=400&q=80" }, { link: "https://images.unsplash.com/photo-1502672260266-1c1ef2d93688?w=800&q=80", titulo: "3.jpg", link_thumb: "https://images.unsplash.com/photo-1502672260266-1c1ef2d93688?w=400&q=80" }, { link: "https://images.unsplash.com/photo-1586023492125-27b2c045efd7?w=800&q=80", titulo: "4.jpg", link_thumb: "https://images.unsplash.com/photo-1586023492125-27b2c045efd7?w=400&q=80" }, { link: "https://images.unsplash.com/photo-1556909114-f6e7ad7d3136?w=800&q=80", titulo: "5.jpg", link_thumb: "https://images.unsplash.com/photo-1556909114-f6e7ad7d3136?w=400&q=80" } ], videos: [], tour360: [], plantas: [], valor_venda_visivel: true, valor_locacao_visivel: false, valor_temporada_visivel: false, valor_condominio_visivel: false, valor_iptu_visivel: false, endereco_estado_visivel: true, endereco_cidade_visivel: false, endereco_bairro_visivel: false, endereco_logradouro_visivel: false, endereco_numero_visivel: false, endereco_complemento_visivel: false }, { codigo: "FAKE_APARTAMENTOS_008", titulo_anuncio: "Apartamento Centro - 4 dorm, 3 su\xEDtes, 75m\xB2, 3 vagas", observacoes: "Apartamento com sacada, a poucos metros da Praia Grande.", contrato: "Compra", tipo: "Residencial", subtipo: "Apartamento", mobiliado: 0, financiavel: 0, exclusividade: false, medida: "m\xB2", endereco_estado: "Rio Grande do Sul", endereco_cidade: "Torres", data_cadastro: "2024-08-09 15:10:05", data_update: "2024-11-13 10:58:00", data_atualizacao: "2024-06-27 21:22:25", updated_at: "2024-04-26 14:12:51", dormitorios: 4, suites: 3, banheiros: 4, garagens: 3, area_total: 105, area_privativa: 75, andar: 12, valor_venda: 18e4, endereco_bairro: "Prainha", endereco_logradouro: "Avenida Beira Mar", endereco_numero: "573", endereco_cep: "95560-010", endereco_complemento: "Apto 13", latitude: -29.33017236005315, longitude: -49.7229083304007, imovel_comodidades: "Churrasqueira,\xC1rea gourmet,Terra\xE7o,Vista para o mar", imagens: [ { link: "https://images.unsplash.com/photo-1560448204-e02f11c3d0e2?w=800&q=80", titulo: "1.jpg", link_thumb: "https://images.unsplash.com/photo-1560448204-e02f11c3d0e2?w=400&q=80" }, { link: "https://images.unsplash.com/photo-1545324418-cc1a3fa10c00?w=800&q=80", titulo: "2.jpg", link_thumb: "https://images.unsplash.com/photo-1545324418-cc1a3fa10c00?w=400&q=80" }, { link: "https://images.unsplash.com/photo-1560185127-6ed189bf02f4?w=800&q=80", titulo: "3.jpg", link_thumb: "https://images.unsplash.com/photo-1560185127-6ed189bf02f4?w=400&q=80" } ], videos: [], tour360: [], plantas: [], valor_venda_visivel: true, valor_locacao_visivel: false, valor_temporada_visivel: false, valor_condominio_visivel: false, valor_iptu_visivel: false, endereco_estado_visivel: true, endereco_cidade_visivel: false, endereco_bairro_visivel: false, endereco_logradouro_visivel: false, endereco_numero_visivel: false, endereco_complemento_visivel: false }, { codigo: "FAKE_APARTAMENTOS_009", titulo_anuncio: "Apartamento Centro - 4 dorm, 95m\xB2, 1 vaga", observacoes: "Im\xF3vel com excelente localiza\xE7\xE3o e acabamentos de primeira linha.", contrato: "Compra", tipo: "Residencial", subtipo: "Apartamento", mobiliado: 0, financiavel: 0, exclusividade: false, medida: "m\xB2", endereco_estado: "Rio Grande do Sul", endereco_cidade: "Torres", data_cadastro: "2025-02-11 23:09:26", data_update: "2024-06-21 03:00:28", data_atualizacao: "2024-02-08 04:56:29", updated_at: "2024-07-04 12:24:44", dormitorios: 4, suites: 0, banheiros: 4, garagens: 1, area_total: 150, area_privativa: 95, andar: 8, valor_venda: 28e4, endereco_bairro: "Vila S\xE3o Jo\xE3o", endereco_logradouro: "Rua Benjamin Constant", endereco_numero: "967", endereco_cep: "95560-020", endereco_complemento: "", latitude: -29.338789575624848, longitude: -49.736857533133374, imovel_comodidades: "Garagem coberta,Ar condicionado,Lareira,Churrasqueira", imagens: [ { link: "https://images.unsplash.com/photo-1493663284031-b7e3aefcae8e?w=800&q=80", titulo: "1.jpg", link_thumb: "https://images.unsplash.com/photo-1493663284031-b7e3aefcae8e?w=400&q=80" }, { link: "https://images.unsplash.com/photo-1545324418-cc1a3fa10c00?w=800&q=80", titulo: "2.jpg", link_thumb: "https://images.unsplash.com/photo-1545324418-cc1a3fa10c00?w=400&q=80" }, { link: "https://images.unsplash.com/photo-1556909114-f6e7ad7d3136?w=800&q=80", titulo: "3.jpg", link_thumb: "https://images.unsplash.com/photo-1556909114-f6e7ad7d3136?w=400&q=80" } ], videos: [], tour360: [], plantas: [], valor_venda_visivel: true, valor_locacao_visivel: false, valor_temporada_visivel: false, valor_condominio_visivel: false, valor_iptu_visivel: false, endereco_estado_visivel: true, endereco_cidade_visivel: false, endereco_bairro_visivel: false, endereco_logradouro_visivel: false, endereco_numero_visivel: false, endereco_complemento_visivel: false }, { codigo: "FAKE_APARTAMENTOS_010", titulo_anuncio: "Apartamento Centro - 3 dorm, 55m\xB2, 2 vagas", observacoes: "Im\xF3vel com excelente localiza\xE7\xE3o e acabamentos de primeira linha.", contrato: "Compra", tipo: "Residencial", subtipo: "Apartamento", mobiliado: 0, financiavel: 0, exclusividade: false, medida: "m\xB2", endereco_estado: "Rio Grande do Sul", endereco_cidade: "Torres", data_cadastro: "2024-03-07 04:52:16", data_update: "2025-01-02 06:07:47", data_atualizacao: "2024-10-27 06:54:47", updated_at: "2024-12-01 12:54:25", dormitorios: 3, suites: 0, banheiros: 2, garagens: 2, area_total: 150, area_privativa: 55, andar: 1, valor_venda: 62e4, endereco_bairro: "Parque Estadual", endereco_logradouro: "Rua Benjamin Constant", endereco_numero: "548", endereco_cep: "95560-001", endereco_complemento: "", latitude: -29.33153364697405, longitude: -49.73064631945697, imovel_comodidades: "Hidromassagem,Terra\xE7o,Varanda", imagens: [ { link: "https://images.unsplash.com/photo-1545324418-cc1a3fa10c00?w=800&q=80", titulo: "1.jpg", link_thumb: "https://images.unsplash.com/photo-1545324418-cc1a3fa10c00?w=400&q=80" }, { link: "https://images.unsplash.com/photo-1522708323590-d24dbb6b0267?w=800&q=80", titulo: "2.jpg", link_thumb: "https://images.unsplash.com/photo-1522708323590-d24dbb6b0267?w=400&q=80" }, { link: "https://images.unsplash.com/photo-1560185127-6ed189bf02f4?w=800&q=80", titulo: "3.jpg", link_thumb: "https://images.unsplash.com/photo-1560185127-6ed189bf02f4?w=400&q=80" }, { link: "https://images.unsplash.com/photo-1502672260266-1c1ef2d93688?w=800&q=80", titulo: "4.jpg", link_thumb: "https://images.unsplash.com/photo-1502672260266-1c1ef2d93688?w=400&q=80" }, { link: "https://images.unsplash.com/photo-1581858726788-75bc0f6a952d?w=800&q=80", titulo: "5.jpg", link_thumb: "https://images.unsplash.com/photo-1581858726788-75bc0f6a952d?w=400&q=80" } ], videos: [], tour360: [], plantas: [], valor_venda_visivel: true, valor_locacao_visivel: false, valor_temporada_visivel: false, valor_condominio_visivel: false, valor_iptu_visivel: false, endereco_estado_visivel: true, endereco_cidade_visivel: false, endereco_bairro_visivel: false, endereco_logradouro_visivel: false, endereco_numero_visivel: false, endereco_complemento_visivel: false }, { codigo: "FAKE_APARTAMENTOS_011", titulo_anuncio: "Apartamento Centro - 1 dorm, 2 su\xEDtes, 35m\xB2, 1 vaga", observacoes: "Apartamento com vista para o mar em Torres, a praia mais linda do RS.", contrato: "Compra", tipo: "Residencial", subtipo: "Apartamento", mobiliado: 0, financiavel: 0, exclusividade: false, medida: "m\xB2", endereco_estado: "Rio Grande do Sul", endereco_cidade: "Torres", data_cadastro: "2024-12-25 17:00:33", data_update: "2025-06-11 04:22:15", data_atualizacao: "2025-02-17 19:28:52", updated_at: "2024-08-19 12:16:16", dormitorios: 1, suites: 2, banheiros: 4, garagens: 1, area_total: 150, area_privativa: 35, andar: 10, valor_venda: 62e4, endereco_bairro: "Residencial Quinta da Colina", endereco_logradouro: "Avenida Beira Mar", endereco_numero: "522", endereco_cep: "95560-060", endereco_complemento: "", latitude: -29.343600282488353, longitude: -49.727904385297634, imovel_comodidades: "Ar condicionado,Churrasqueira,Sacada,\xC1rea gourmet", imagens: [ { link: "https://images.unsplash.com/photo-1502672260266-1c1ef2d93688?w=800&q=80", titulo: "1.jpg", link_thumb: "https://images.unsplash.com/photo-1502672260266-1c1ef2d93688?w=400&q=80" }, { link: "https://images.unsplash.com/photo-1502672260266-1c1ef2d93688?w=800&q=80", titulo: "2.jpg", link_thumb: "https://images.unsplash.com/photo-1502672260266-1c1ef2d93688?w=400&q=80" }, { link: "https://images.unsplash.com/photo-1560448204-e02f11c3d0e2?w=800&q=80", titulo: "3.jpg", link_thumb: "https://images.unsplash.com/photo-1560448204-e02f11c3d0e2?w=400&q=80" }, { link: "https://images.unsplash.com/photo-1556909114-f6e7ad7d3136?w=800&q=80", titulo: "4.jpg", link_thumb: "https://images.unsplash.com/photo-1556909114-f6e7ad7d3136?w=400&q=80" }, { link: "https://images.unsplash.com/photo-1560448204-e02f11c3d0e2?w=800&q=80", titulo: "5.jpg", link_thumb: "https://images.unsplash.com/photo-1560448204-e02f11c3d0e2?w=400&q=80" } ], videos: [], tour360: [], plantas: [], valor_venda_visivel: true, valor_locacao_visivel: false, valor_temporada_visivel: false, valor_condominio_visivel: false, valor_iptu_visivel: false, endereco_estado_visivel: true, endereco_cidade_visivel: false, endereco_bairro_visivel: false, endereco_logradouro_visivel: false, endereco_numero_visivel: false, endereco_complemento_visivel: false }, { codigo: "FAKE_APARTAMENTOS_012", titulo_anuncio: "Apartamento Centro - 1 dorm, 2 su\xEDtes, 75m\xB2, 2 vagas", observacoes: "Apartamento com vista para o mar em Torres, a praia mais linda do RS.", contrato: "Compra", tipo: "Residencial", subtipo: "Apartamento", mobiliado: 0, financiavel: 0, exclusividade: false, medida: "m\xB2", endereco_estado: "Rio Grande do Sul", endereco_cidade: "Torres", data_cadastro: "2025-03-06 12:31:48", data_update: "2024-11-11 04:56:14", data_atualizacao: "2024-08-03 04:40:21", updated_at: "2024-05-30 04:52:50", dormitorios: 1, suites: 2, banheiros: 4, garagens: 2, area_total: 65, area_privativa: 75, andar: 8, valor_venda: 18e4, endereco_bairro: "Costa do Sol", endereco_logradouro: "Rua Jo\xE3o Neves da Fontoura", endereco_numero: "739", endereco_cep: "95560-001", endereco_complemento: "", latitude: -29.332345988366157, longitude: -49.723541979463505, imovel_comodidades: "Lareira,Churrasqueira", imagens: [ { link: "https://images.unsplash.com/photo-1565183997392-2f6f122e5912?w=800&q=80", titulo: "1.jpg", link_thumb: "https://images.unsplash.com/photo-1565183997392-2f6f122e5912?w=400&q=80" }, { link: "https://images.unsplash.com/photo-1565183997392-2f6f122e5912?w=800&q=80", titulo: "2.jpg", link_thumb: "https://images.unsplash.com/photo-1565183997392-2f6f122e5912?w=400&q=80" }, { link: "https://images.unsplash.com/photo-1586023492125-27b2c045efd7?w=800&q=80", titulo: "3.jpg", link_thumb: "https://images.unsplash.com/photo-1586023492125-27b2c045efd7?w=400&q=80" }, { link: "https://images.unsplash.com/photo-1545324418-cc1a3fa10c00?w=800&q=80", titulo: "4.jpg", link_thumb: "https://images.unsplash.com/photo-1545324418-cc1a3fa10c00?w=400&q=80" }, { link: "https://images.unsplash.com/photo-1586023492125-27b2c045efd7?w=800&q=80", titulo: "5.jpg", link_thumb: "https://images.unsplash.com/photo-1586023492125-27b2c045efd7?w=400&q=80" } ], videos: [], tour360: [], plantas: [], valor_venda_visivel: true, valor_locacao_visivel: false, valor_temporada_visivel: false, valor_condominio_visivel: false, valor_iptu_visivel: false, endereco_estado_visivel: true, endereco_cidade_visivel: false, endereco_bairro_visivel: false, endereco_logradouro_visivel: false, endereco_numero_visivel: false, endereco_complemento_visivel: false }, { codigo: "FAKE_APARTAMENTOS_013", titulo_anuncio: "Apartamento Centro - 4 dorm, 1 su\xEDte, 75m\xB2, 3 vagas", observacoes: "Apartamento com vista para o mar em Torres, a praia mais linda do RS.", contrato: "Compra", tipo: "Residencial", subtipo: "Apartamento", mobiliado: 0, financiavel: 0, exclusividade: false, medida: "m\xB2", endereco_estado: "Rio Grande do Sul", endereco_cidade: "Torres", data_cadastro: "2025-07-22 13:52:47", data_update: "2025-06-23 21:20:58", data_atualizacao: "2025-04-10 13:42:15", updated_at: "2024-09-15 12:06:04", dormitorios: 4, suites: 1, banheiros: 4, garagens: 3, area_total: 65, area_privativa: 75, andar: 5, valor_venda: 48e4, endereco_bairro: "S\xE3o Jo\xE3o", endereco_logradouro: "Rua Bar\xE3o do Rio Branco", endereco_numero: "533", endereco_cep: "95560-050", endereco_complemento: "", latitude: -29.329652928711102, longitude: -49.731744851993, imovel_comodidades: "Churrasqueira,Hidromassagem,Garagem coberta,Sacada", imagens: [ { link: "https://images.unsplash.com/photo-1560448204-e02f11c3d0e2?w=800&q=80", titulo: "1.jpg", link_thumb: "https://images.unsplash.com/photo-1560448204-e02f11c3d0e2?w=400&q=80" }, { link: "https://images.unsplash.com/photo-1574362848149-11496d93a7c7?w=800&q=80", titulo: "2.jpg", link_thumb: "https://images.unsplash.com/photo-1574362848149-11496d93a7c7?w=400&q=80" }, { link: "https://images.unsplash.com/photo-1545324418-cc1a3fa10c00?w=800&q=80", titulo: "3.jpg", link_thumb: "https://images.unsplash.com/photo-1545324418-cc1a3fa10c00?w=400&q=80" }, { link: "https://images.unsplash.com/photo-1560185127-6ed189bf02f4?w=800&q=80", titulo: "4.jpg", link_thumb: "https://images.unsplash.com/photo-1560185127-6ed189bf02f4?w=400&q=80" }, { link: "https://images.unsplash.com/photo-1493663284031-b7e3aefcae8e?w=800&q=80", titulo: "5.jpg", link_thumb: "https://images.unsplash.com/photo-1493663284031-b7e3aefcae8e?w=400&q=80" } ], videos: [], tour360: [], plantas: [], valor_venda_visivel: true, valor_locacao_visivel: false, valor_temporada_visivel: false, valor_condominio_visivel: false, valor_iptu_visivel: false, endereco_estado_visivel: true, endereco_cidade_visivel: false, endereco_bairro_visivel: false, endereco_logradouro_visivel: false, endereco_numero_visivel: false, endereco_complemento_visivel: false }, { codigo: "FAKE_APARTAMENTOS_014", titulo_anuncio: "Apartamento Centro - 4 dorm, 1 su\xEDte, 115m\xB2, 1 vaga", observacoes: "Im\xF3vel com excelente localiza\xE7\xE3o e acabamentos de primeira linha.", contrato: "Compra", tipo: "Residencial", subtipo: "Apartamento", mobiliado: 0, financiavel: 0, exclusividade: false, medida: "m\xB2", endereco_estado: "Rio Grande do Sul", endereco_cidade: "Torres", data_cadastro: "2025-07-18 15:22:24", data_update: "2024-07-28 06:23:31", data_atualizacao: "2025-07-20 15:03:26", updated_at: "2025-04-23 06:27:09", dormitorios: 4, suites: 1, banheiros: 3, garagens: 1, area_total: 85, area_privativa: 115, andar: 3, valor_venda: 28e4, endereco_bairro: "Jardim Ubatuba", endereco_logradouro: "Rua Silva Jardim", endereco_numero: "706", endereco_cep: "95560-001", endereco_complemento: "", latitude: -29.341136485865903, longitude: -49.72615856416803, imovel_comodidades: "\xC1rea gourmet,Aquecimento,Jardim,Vista para o mar", imagens: [ { link: "https://images.unsplash.com/photo-1522708323590-d24dbb6b0267?w=800&q=80", titulo: "1.jpg", link_thumb: "https://images.unsplash.com/photo-1522708323590-d24dbb6b0267?w=400&q=80" }, { link: "https://images.unsplash.com/pho