{"version":3,"sources":["../src/converter/discoverers/discoverOperation.ts","../src/converter/discoverers/discoverAttributes.ts","../src/converter/discoverers/discoverMedia.ts","../src/converter/discoverers/discoverConfigs.ts","../src/converter/index.ts","../src/services/ArboApiClient.ts","../src/services/ArboDownloader.ts","../src/services/ProfilerService.ts","../src/data/mock/validos.json","../src/data/mock/problematicos.json","../src/data/fake-data/apartamentos.json","../src/data/fake-data/casas.json","../src/data/fake-data/comerciais.json","../src/data/fake-data/terrenos.json","../src/index.ts"],"sourcesContent":["import { ArboImovel } from \"../types\"\n\nconst operationLabels: { [key: string]: string } = {\n  venda: \"Venda\",\n  locacao: \"Locação\",\n  aluguel: \"Locação\",\n  temporada: \"Temporada\",\n}\n\nfunction normalizeString(str: string) {\n  return str\n    .normalize(\"NFD\")\n    .replace(/[\\u0300-\\u036f]/g, \"\")\n    .toLowerCase()\n    .trim()\n}\n\nexport function discoverOperation(imovel: ArboImovel): string[] {\n  if (!imovel.finalidade) return []\n\n  const normalized = normalizeString(imovel.finalidade)\n  const operations: string[] = []\n\n  // Se contém \" e \", significa múltiplas operações\n  if (normalized.includes(\" e \")) {\n    const parts = normalized.split(\" e \")\n    parts.forEach(part => {\n      const label = operationLabels[part]\n      if (label) operations.push(label)\n    })\n  } else {\n    const label = operationLabels[normalized]\n    if (label) operations.push(label)\n  }\n\n  return operations\n}","import { ArboImovel } from \"../types\"\nimport { discoverOperation } from \"./discoverOperation\"\n\nexport function discoverAttributes(imovel: ArboImovel): Record<string, any> {\n  const attributes: Record<string, any> = {}\n\n  // Operação\n  const operacao = discoverOperation(imovel)\n  if (operacao.length > 0) attributes.operacao = operacao\n\n  // Valores\n  if (imovel.valor_venda) attributes.valor_venda = imovel.valor_venda\n  if (imovel.valor_aluguel) attributes.valor_locacao = imovel.valor_aluguel\n\n  // Valores de condomínio e IPTU\n  if (imovel.valor_condominio) attributes.valor_condominio = imovel.valor_condominio\n  if (imovel.valor_iptu) attributes.valor_iptu = imovel.valor_iptu\n\n  // Áreas\n  if (imovel.area_total) attributes.area_total = imovel.area_total\n  if (imovel.area_privativa) attributes.area_util = imovel.area_privativa\n\n  // Dependências\n  if (imovel.qtd_quartos) attributes.dormitorios = imovel.qtd_quartos\n  if (imovel.qtd_suites) attributes.suites = imovel.qtd_suites\n  if (imovel.qtd_banheiro) attributes.banheiros = imovel.qtd_banheiro\n  if (imovel.qtd_vagas) attributes.vagas_garagem = imovel.qtd_vagas\n\n  // Características booleanas\n  if (imovel.mobiliado) attributes.mobiliado = true\n  if (imovel.financiamento) attributes.financiavel = true\n  if (imovel.permuta) attributes.aceita_permuta = true\n  if (imovel.end_condominio) attributes.em_condominio = true\n\n  // Informações do imóvel\n  if (imovel.status_comercial) attributes.status_comercial = imovel.status_comercial\n  if (imovel.categoria) attributes.tipo = imovel.categoria\n  if (imovel.tipo_imovel) attributes.finalidade = imovel.tipo_imovel\n  if (imovel.categoria_imovel) attributes.padrao_imovel = imovel.categoria_imovel\n\n  // Localização\n  if (imovel.end_cep) attributes.endereco_cep = imovel.end_cep\n  if (imovel.end_estado) attributes.endereco_estado = imovel.end_estado\n  if (imovel.end_cidade) attributes.endereco_cidade = imovel.end_cidade\n  if (imovel.end_bairro) attributes.endereco_bairro = imovel.end_bairro\n  if (imovel.end_logradouro) attributes.endereco_logradouro = imovel.end_logradouro\n  if (imovel.end_numero) attributes.endereco_numero = imovel.end_numero\n  if (imovel.end_complemento) attributes.endereco_complemento = imovel.end_complemento\n  if (imovel.end_condominio) attributes.condominio_nome = imovel.end_condominio\n\n  // Coordenadas\n  if (imovel.latitude) attributes.latitude = imovel.latitude\n  if (imovel.longitude) attributes.longitude = imovel.longitude\n\n  // Corretor\n  if (imovel?.corretor?.codigo) attributes.corretor_id = imovel.corretor.codigo\n  if (imovel?.corretor?.nome) attributes.corretor_nome = imovel.corretor.nome\n\n  // Características\n  if (imovel.caracteristicas) attributes.caracteristicas = imovel.caracteristicas\n\n  return attributes\n}","import { ArboImovel } from \"../types\"\nimport { MediaAssets, ImageMedia, VideoMedia, DocumentMedia, VirtualTourMedia } from \"../property-model-v3\"\n\nexport function discoverMedias(imovel: ArboImovel): MediaAssets {\n  // Imagens com diferentes resoluções\n  const images: ImageMedia[] = imovel.fotos\n    ?.slice()\n    .sort((a, b) => (a.ordem ?? 0) - (b.ordem ?? 0))\n    .map((foto, index) => ({\n      full: foto.marcadagua_url || foto.url,\n      md: foto.sizes?.medium,\n      sm: foto.sizes?.small,\n      cover: index === 0 || foto.principal === true\n    })) ?? []\n\n  // Vídeos\n  const videos: VideoMedia[] = imovel.url_video ? [generateVideo(imovel.url_video)] : []\n\n  // Tours virtuais\n  const virtual_tours: VirtualTourMedia[] = imovel.url_tour ? [{ embed_url: imovel.url_tour }] : []\n\n  // Documentos (por enquanto vazio, pode ser expandido futuramente)\n  const documents: DocumentMedia[] = []\n\n  const result: MediaAssets = {}\n  \n  if (images.length > 0) result.images = images\n  if (videos.length > 0) result.videos = videos\n  if (virtual_tours.length > 0) result.virtual_tours = virtual_tours\n  if (documents.length > 0) result.documents = documents\n\n  return result\n}\n\nfunction generateVideo(url: string): VideoMedia {\n  try {\n    const parsed = new URL(url)\n    const host = parsed.hostname\n\n    if (host.includes(\"youtube.com\") || host.includes(\"youtu.be\")) {\n      const id =\n        parsed.searchParams.get(\"v\") || parsed.pathname.split(\"/\").pop()\n      return {\n        provider: \"youtube\",\n        id: id || undefined,\n        embed_url: `https://www.youtube.com/embed/${id}`,\n      }\n    }\n\n    return {\n      embed_url: url,\n    }\n  } catch (e) {\n    return {\n      embed_url: url,\n    }\n  }\n}","import { ArboImovel } from \"../types\"\nimport { SettingsFormat } from \"@horizon-modules/property-model-v3\"\n\nexport function discoverSettings(_imovel: ArboImovel): SettingsFormat {\n  return {\n    currency_unit: \"BRL\",\n    area_unit: \"m2\",\n    distance_unit: \"meters\",\n    exibir_no_mapa: true,\n  }\n}","import { ArboImovel } from './types'\nimport { discoverAttributes } from './discoverers/discoverAttributes'\nimport { discoverMedias } from './discoverers/discoverMedia'\nimport { discoverSettings } from './discoverers/discoverConfigs'\nimport { PropertyModel } from './property-model-v3'\n\nexport function convertArboToPropertyV3(imovel: ArboImovel): PropertyModel {\n  return {\n    reference: imovel.codigo ?? \"\",\n    title: imovel.titulo ?? \"\",\n    description: imovel.descricao ?? \"\",\n    media_assets: discoverMedias(imovel),\n    attributes: discoverAttributes(imovel),\n    settings: discoverSettings(imovel),\n    updated_at: imovel.updated_at,\n  }\n}\n\n// Re-exportar tipos relacionados ao converter\nexport type { ArboImovel } from './types'\nexport type { PropertyModel } from './property-model-v3'\n\n// Re-exportar discoverers para uso individual se necessário\nexport { discoverAttributes } from './discoverers/discoverAttributes'\nexport { discoverMedias } from './discoverers/discoverMedia'\nexport { discoverSettings } from './discoverers/discoverConfigs'","import { ArboImovel } from \"../converter/types\"\nimport { ArboApiClientConfig, ArboApiResponse } from \"./types\"\n\nexport class ArboApiClient {\n  private token: string\n  private baseUrl: string\n\n  constructor(config: ArboApiClientConfig) {\n    this.token = config.token\n    this.baseUrl = config.baseUrl || \"https://app-integracao.arboimoveis.com/api\"\n  }\n\n  private async request<T>(endpoint: string): Promise<T> {\n    const url = `${this.baseUrl}${endpoint}`\n    \n    const response = await fetch(url, {\n      headers: {\n        Authorization: this.token,\n        \"Content-Type\": \"application/json\",\n      },\n    })\n\n    if (!response.ok) {\n      throw new Error(\n        `Erro na requisição: ${response.status} - ${response.statusText}`\n      )\n    }\n\n    return response.json() as Promise<T>\n  }\n\n  async getImoveis(page: number = 1, perPage: number = 50): Promise<ArboApiResponse<ArboImovel[]>> {\n    return this.request<ArboApiResponse<ArboImovel[]>>(\n      `/imoveis?page=${page}&perPage=${perPage}&fields=%5B%5D&search=%7B%7D`\n    )\n  }\n\n  async getImovel(id: string | number): Promise<ArboImovel> {\n    return this.request<ArboImovel>(`/imoveis/${id}`)\n  }\n\n  async searchImoveis(\n    searchParams: Record<string, any>,\n    page: number = 1,\n    perPage: number = 50\n  ): Promise<ArboApiResponse<ArboImovel[]>> {\n    const search = encodeURIComponent(JSON.stringify(searchParams))\n    return this.request<ArboApiResponse<ArboImovel[]>>(\n      `/imoveis?page=${page}&perPage=${perPage}&search=${search}`\n    )\n  }\n\n  async getAllPages(perPage: number = 50): Promise<ArboImovel[]> {\n    const firstPage = await this.getImoveis(1, perPage)\n    const totalPages = firstPage.meta?.last_page || 1\n    \n    const allImoveis: ArboImovel[] = [...firstPage.data]\n    \n    for (let page = 2; page <= totalPages; page++) {\n      const pageData = await this.getImoveis(page, perPage)\n      allImoveis.push(...pageData.data)\n    }\n    \n    return allImoveis\n  }\n}","import { promises as fs } from \"fs\"\nimport { join } from \"path\"\nimport { ArboApiClient } from \"./ArboApiClient\"\nimport { ArboDownloaderConfig, DownloadOptions, DownloadResult, ApiUploadConfig, UploadResult } from \"./types\"\n\nexport class ArboDownloader {\n  private apiClient: ArboApiClient\n  private outputDir: string\n\n  constructor(config: ArboDownloaderConfig) {\n    this.apiClient = new ArboApiClient({\n      token: config.token,\n      baseUrl: config.baseUrl || \"https://app-integracao.arboimoveis.com/api\",\n    })\n    this.outputDir = config.outputDir\n  }\n\n  private async ensureOutputDir(): Promise<void> {\n    try {\n      await fs.access(this.outputDir)\n    } catch {\n      await fs.mkdir(this.outputDir, { recursive: true })\n    }\n  }\n\n  private async savePageData(page: number, data: any): Promise<boolean> {\n    // Não salvar se os dados estiverem vazios\n    if (!data.data || !Array.isArray(data.data) || data.data.length === 0) {\n      console.log(`   📄 Página ${page} vazia, não salvando arquivo`)\n      return false\n    }\n    \n    const fileName = `page-${page}.json`\n    const filePath = join(this.outputDir, fileName)\n    await fs.writeFile(filePath, JSON.stringify(data, null, 2), \"utf8\")\n    return true\n  }\n\n  async downloadPage(page: number, perPage: number = 50): Promise<void> {\n    await this.ensureOutputDir()\n    \n    const response = await this.apiClient.getImoveis(page, perPage)\n    await this.savePageData(page, response)\n  }\n\n  async downloadPages(options: DownloadOptions = {}): Promise<DownloadResult> {\n    const { \n      startPage = 1, \n      endPage, \n      maxPages, \n      perPage = 50 \n    } = options\n\n    await this.ensureOutputDir()\n\n    const errors: string[] = []\n    let totalPages = 0\n    let totalItems = 0\n    let downloadedItems = 0\n\n    try {\n      // Primeiro, descobre quantas páginas existem\n      const firstPage = await this.apiClient.getImoveis(1, perPage)\n      totalPages = firstPage.meta?.last_page || 1\n      totalItems = firstPage.meta?.total || 0\n\n      // Determina o range de páginas para download\n      const finalEndPage = endPage || (maxPages ? Math.min(startPage + maxPages - 1, totalPages) : totalPages)\n      \n      // Salva a primeira página se ela estiver no range\n      if (startPage === 1) {\n        const saved = await this.savePageData(1, firstPage)\n        if (saved) {\n          downloadedItems += firstPage.data.length\n        }\n        // Se a primeira página já está vazia, não há mais dados\n        if (!firstPage.data || firstPage.data.length === 0) {\n          console.log(`⚠️  Primeira página vazia, finalizando download`)\n          return {\n            totalPages: 1,\n            totalItems: 0,\n            downloadedItems: 0,\n            errors\n          }\n        }\n      }\n\n      // Download das páginas restantes\n      for (let page = Math.max(startPage, 2); page <= finalEndPage; page++) {\n        try {\n          const response = await this.apiClient.getImoveis(page, perPage)\n          \n          // Se a página estiver vazia, finalizar o download\n          if (!response.data || response.data.length === 0) {\n            console.log(`⚠️  Página ${page} vazia, finalizando download`)\n            break\n          }\n          \n          const saved = await this.savePageData(page, response)\n          if (saved) {\n            downloadedItems += response.data.length\n          }\n        } catch (error) {\n          const errorMsg = `Erro ao baixar página ${page}: ${error instanceof Error ? error.message : String(error)}`\n          errors.push(errorMsg)\n          console.error(errorMsg)\n        }\n      }\n\n    } catch (error) {\n      const errorMsg = `Erro geral no download: ${error instanceof Error ? error.message : String(error)}`\n      errors.push(errorMsg)\n      console.error(errorMsg)\n    }\n\n    return {\n      totalPages,\n      totalItems,\n      downloadedItems,\n      errors,\n    }\n  }\n\n  async downloadAll(perPage: number = 50): Promise<DownloadResult> {\n    return this.downloadPages({ perPage })\n  }\n\n  async uploadToApi(uploadConfig: ApiUploadConfig): Promise<UploadResult> {\n    const { endpoint, headers = {} } = uploadConfig\n    \n    const errors: string[] = []\n    let totalProcessed = 0\n    let totalSent = 0\n    let totalErrors = 0\n\n    try {\n      // Lê todos os arquivos JSON do diretório\n      const files = await fs.readdir(this.outputDir)\n      const jsonFiles = files.filter(file => file.endsWith('.json'))\n        .sort((a, b) => {\n          const numA = parseInt(a.match(/page-(\\d+)/)?.[1] || '0')\n          const numB = parseInt(b.match(/page-(\\d+)/)?.[1] || '0')\n          return numA - numB\n        })\n\n      console.log(`📁 Encontrados ${jsonFiles.length} arquivos para processar`)\n\n      for (const file of jsonFiles) {\n        console.log(`\\n📄 Processando ${file}...`)\n        \n        try {\n          const filePath = join(this.outputDir, file)\n          const content = await fs.readFile(filePath, 'utf8')\n          const pageData = JSON.parse(content)\n          \n          if (!pageData.data || !Array.isArray(pageData.data)) {\n            errors.push(`Arquivo ${file} não possui estrutura válida`)\n            console.log('   📄 Arquivo vazio, pulando...')\n            continue\n          }\n\n          const properties = pageData.data\n          if (properties.length === 0) {\n            console.log('   📄 Arquivo vazio, pulando...')\n            continue\n          }\n\n          console.log(`   📊 ${properties.length} imóveis encontrados`)\n          totalProcessed += properties.length\n\n          try {\n            const response = await fetch(endpoint, {\n              method: 'PUT',\n              headers: {\n                'Content-Type': 'application/json',\n                ...headers\n              },\n              // Envia dados originais da Arbo - API faz a conversão\n              body: JSON.stringify({ properties: properties })\n            })\n\n            if (response.ok) {\n              const result = await response.json() as { message?: string }\n              totalSent += properties.length\n              console.log(`   ✅ Sucesso: ${properties.length} imóveis inseridos`)\n              console.log(`   📝 ${result.message || 'Processado com sucesso'}`)\n            } else {\n              const errorText = await response.text()\n              totalErrors += properties.length\n              const errorMsg = `Erro ${response.status} ao enviar arquivo ${file}: ${errorText}`\n              errors.push(errorMsg)\n              console.log(`   ❌ ${errorMsg}`)\n              break // Para se der erro\n            }\n          } catch (error) {\n            totalErrors += properties.length\n            const errorMsg = `Erro de rede ao enviar arquivo ${file}: ${error instanceof Error ? error.message : String(error)}`\n            errors.push(errorMsg)\n            console.error(`   ❌ ${errorMsg}`)\n            break // Para se der erro\n          }\n\n          // Pausa entre arquivos\n          await new Promise(resolve => setTimeout(resolve, 500))\n\n        } catch (error) {\n          const errorMsg = `Erro ao processar arquivo ${file}: ${error instanceof Error ? error.message : String(error)}`\n          errors.push(errorMsg)\n          console.error(`   ❌ ${errorMsg}`)\n        }\n      }\n    } catch (error) {\n      const errorMsg = `Erro ao acessar diretório ${this.outputDir}: ${error instanceof Error ? error.message : String(error)}`\n      errors.push(errorMsg)\n      console.error(`❌ ${errorMsg}`)\n    }\n\n    // Log final\n    console.log('\\n🎉 RESUMO FINAL:')\n    console.log(`📊 Total processado: ${totalProcessed} imóveis`)\n    console.log(`✅ Sucessos: ${totalSent} imóveis`)\n    console.log(`❌ Erros: ${totalErrors} imóveis`)\n    if (totalProcessed > 0) {\n      console.log(`📈 Taxa de sucesso: ${Math.round((totalSent/totalProcessed)*100)}%`)\n    }\n\n    return {\n      totalProcessed,\n      totalSent,\n      totalErrors,\n      errors\n    }\n  }\n\n  async downloadAndUpload(downloadOptions: DownloadOptions, uploadConfig: ApiUploadConfig): Promise<{\n    downloadResult: DownloadResult\n    uploadResult: UploadResult\n  }> {\n    const downloadResult = await this.downloadPages(downloadOptions)\n    const uploadResult = await this.uploadToApi(uploadConfig)\n    \n    return {\n      downloadResult,\n      uploadResult\n    }\n  }\n}","import * as fs from 'fs'\nimport * as path from 'path'\n\nexport interface FieldConfig {\n  maxExamples?: number  // Quantos exemplos guardar (undefined = todos)\n}\n\nexport interface ProfilerConfig {\n  inputDir: string  // Diretório com os dados para analisar\n  outputDir: string  // Onde salvar o resultado\n  outputFileName?: string  // Nome do arquivo de saída\n  fieldConfigs?: Record<string, FieldConfig>  // Configurações por campo\n  defaultMaxExamples?: number  // Padrão para campos não configurados\n  verbose?: boolean\n}\n\nexport type ProfileResult = Record<string, any[]>\n\nexport class ProfilerService {\n  private config: ProfilerConfig\n  private fieldData: Map<string, Set<any>> = new Map()\n  private fieldExamples: Map<string, any[]> = new Map()\n  \n  constructor(config: ProfilerConfig) {\n    this.config = {\n      outputFileName: 'profiling-report.json',\n      defaultMaxExamples: 10,\n      verbose: false,\n      ...config\n    }\n  }\n\n  async profile(): Promise<ProfileResult> {\n    if (this.config.verbose) {\n      console.log('📊 Iniciando profiling dos dados...')\n    }\n\n    // Verificar se diretório existe\n    if (!fs.existsSync(this.config.inputDir)) {\n      throw new Error(`Diretório de entrada não encontrado: ${this.config.inputDir}`)\n    }\n\n    // Carregar dados\n    const data = await this.loadData()\n    \n    // Processar dados\n    this.processData(data)\n    \n    // Gerar resultado\n    const result = this.generateResult()\n    \n    // Salvar resultado\n    await this.saveResult(result)\n    \n    return result\n  }\n\n  private async loadData(): Promise<any[]> {\n    const files = fs.readdirSync(this.config.inputDir)\n      .filter(file => file.endsWith('.json'))\n      .sort()\n\n    if (this.config.verbose) {\n      console.log(`📁 Carregando ${files.length} arquivos...`)\n    }\n\n    const allData: any[] = []\n    \n    for (const file of files) {\n      const filePath = path.join(this.config.inputDir, file)\n      const content = fs.readFileSync(filePath, 'utf8')\n      const fileData = JSON.parse(content)\n      \n      // Assumir que cada arquivo tem uma propriedade 'data' com array de objetos\n      if (fileData.data && Array.isArray(fileData.data)) {\n        allData.push(...fileData.data)\n        \n        if (this.config.verbose) {\n          console.log(`   ✅ ${file}: ${fileData.data.length} itens`)\n        }\n      }\n    }\n\n    if (this.config.verbose) {\n      console.log(`🔍 Analisando ${allData.length} itens...`)\n    }\n\n    return allData\n  }\n\n  private processData(data: any[]): void {\n    data.forEach((item, index) => {\n      if (this.config.verbose && (index + 1) % 100 === 0) {\n        console.log(`   Processando ${index + 1}/${data.length}...`)\n      }\n\n      this.processObject(item, '')\n    })\n  }\n\n  private processObject(obj: any, prefix: string): void {\n    for (const [key, value] of Object.entries(obj)) {\n      const fieldName = prefix ? `${prefix}.${key}` : key\n      \n      if (value === null || value === undefined) {\n        continue\n      }\n\n      if (Array.isArray(value)) {\n        // Para arrays, concatenar todos os valores\n        this.processArrayField(fieldName, value)\n      } else if (typeof value === 'object') {\n        // Para objetos, processar recursivamente\n        this.processObject(value, fieldName)\n      } else {\n        // Para valores simples\n        this.processSimpleField(fieldName, value)\n      }\n    }\n  }\n\n  private processArrayField(fieldName: string, array: any[]): void {\n    // Concatenar todos os valores do array\n    for (const item of array) {\n      if (item !== null && item !== undefined) {\n        if (typeof item === 'object') {\n          this.processObject(item, fieldName)\n        } else {\n          this.processSimpleField(fieldName, item)\n        }\n      }\n    }\n  }\n\n  private processSimpleField(fieldName: string, value: any): void {\n    // Inicializar estruturas se necessário\n    if (!this.fieldData.has(fieldName)) {\n      this.fieldData.set(fieldName, new Set())\n      this.fieldExamples.set(fieldName, [])\n    }\n\n    const valueSet = this.fieldData.get(fieldName)!\n    const examples = this.fieldExamples.get(fieldName)!\n    \n    // Adicionar ao set de valores únicos\n    valueSet.add(value)\n    \n    // Adicionar aos exemplos se não estiver presente e não exceder o limite\n    const fieldConfig = this.config.fieldConfigs?.[fieldName] || {}\n    const maxExamples = fieldConfig.maxExamples ?? this.config.defaultMaxExamples!\n    \n    if (!examples.includes(value) && examples.length < maxExamples) {\n      examples.push(value)\n    }\n  }\n\n  private generateResult(): ProfileResult {\n    const result: ProfileResult = {}\n\n    // Ordenar campos alfabeticamente\n    const sortedFields = Array.from(this.fieldData.keys()).sort()\n\n    for (const fieldName of sortedFields) {\n      const examples = this.fieldExamples.get(fieldName) || []\n      // Ordenar os valores internos também\n      const sortedExamples = examples.sort((a, b) => {\n        // Converter para string para comparação consistente\n        const aStr = String(a)\n        const bStr = String(b)\n        return aStr.localeCompare(bStr)\n      })\n      result[fieldName] = sortedExamples\n    }\n\n    return result\n  }\n\n  private async saveResult(result: ProfileResult): Promise<void> {\n    // Criar diretório de saída se não existir\n    if (!fs.existsSync(this.config.outputDir)) {\n      fs.mkdirSync(this.config.outputDir, { recursive: true })\n    }\n\n    const outputPath = path.join(this.config.outputDir, this.config.outputFileName!)\n    const jsonContent = JSON.stringify(result, null, 2)\n    \n    fs.writeFileSync(outputPath, jsonContent, 'utf8')\n    \n    if (this.config.verbose) {\n      const sizeKB = (jsonContent.length / 1024).toFixed(1)\n      console.log(`✅ Profiling salvo em: ${outputPath} (${sizeKB}KB)`)\n      console.log(`📊 Total de campos analisados: ${Object.keys(result).length}`)\n    }\n  }\n}","[\n  {\n    \"codigo\": \"MOCK_TEST-APARTAMENTO_001\",\n    \"titulo\": \"Apartamento Teste - Mock 1\",\n    \"descricao\": \"Mock de apartamento para testes gerado automaticamente para testes\",\n    \"categoria\": \"Apartamento\",\n    \"finalidade\": \"Venda\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"created_at\": \"2025-07-08T19:46:41.100Z\",\n    \"updated_at\": \"2025-07-08T19:46:41.100Z\",\n    \"qtd_quartos\": 2,\n    \"valor_venda\": 250000,\n    \"area_privativa\": 0,\n    \"corretor.codigo\": 908381,\n    \"end_logradouro\": \"Rua Mathias de Albuquerque\",\n    \"end_bairro\": \"Oficinas\",\n    \"end_cidade\": \"Ponta Grossa\",\n    \"end_estado\": \"PR\",\n    \"longitude\": -50.1480833,\n    \"fotos\": [\n      {\n        \"id\": \"MOCK_FOTO_MOCK_TEST-APARTAMENTO_001_1\",\n        \"url\": \"https://images.unsplash.com/photo-1522708323590-d24dbb6b0267?w=800&q=80\",\n        \"descricao\": \"Apartamento Teste - Vista principal\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"MOCK_FOTO_MOCK_TEST-APARTAMENTO_001_2\",\n        \"url\": \"https://images.unsplash.com/photo-1560448204-e02f11c3d0e2?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 2\n      }\n    ],\n    \"observacoes\": \"Observações do Apartamento Teste: Documentação em ordem\"\n  },\n  {\n    \"codigo\": \"MOCK_TEST-CASA_001\",\n    \"titulo\": \"Casa Teste com 2 quartos, 120m²\",\n    \"descricao\": \"Mock de casa para testes gerado automaticamente para testes\",\n    \"categoria\": \"Casa\",\n    \"finalidade\": \"Venda\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"created_at\": \"2025-07-08T19:46:41.100Z\",\n    \"updated_at\": \"2025-07-08T19:46:41.100Z\",\n    \"qtd_quartos\": 2,\n    \"qtd_banheiro\": 3,\n    \"area_construida\": 120,\n    \"area_terreno\": 200,\n    \"valor_venda\": 350000,\n    \"area_total\": 518,\n    \"caracteristicas\": \"Sala\",\n    \"condominio\": 237551,\n    \"corretor.codigo\": 913153,\n    \"end_logradouro\": \"Rua Tinguis\",\n    \"end_numero\": 8,\n    \"latitude\": -25.1122291,\n    \"fotos\": [\n      {\n        \"id\": \"MOCK_FOTO_MOCK_TEST-CASA_001_1\",\n        \"url\": \"https://images.unsplash.com/photo-1512917774080-9991f1c4c750?w=800&q=80\",\n        \"descricao\": \"Casa Teste - Vista principal\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"MOCK_FOTO_MOCK_TEST-CASA_001_2\",\n        \"url\": \"https://images.unsplash.com/photo-1555041469-a586c61ea9bc?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"MOCK_FOTO_MOCK_TEST-CASA_001_3\",\n        \"url\": \"https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 3\n      },\n      {\n        \"id\": \"MOCK_FOTO_MOCK_TEST-CASA_001_4\",\n        \"url\": \"https://images.unsplash.com/photo-1555041469-a586c61ea9bc?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 4\n      }\n    ]\n  },\n  {\n    \"codigo\": \"MOCK_TEST-APARTAMENTO_002\",\n    \"titulo\": \"Apartamento Teste com 2 quartos, 45m²\",\n    \"descricao\": \"Mock de apartamento para testes gerado automaticamente para testes\",\n    \"categoria\": \"Apartamento\",\n    \"finalidade\": \"Venda\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"created_at\": \"2025-07-08T19:46:41.101Z\",\n    \"updated_at\": \"2025-07-08T19:46:41.101Z\",\n    \"qtd_quartos\": 2,\n    \"qtd_banheiro\": 2,\n    \"area_construida\": 45,\n    \"valor_venda\": 250000,\n    \"area_total\": 270,\n    \"end_bairro\": \"Jardins\",\n    \"end_cep\": \"84017316\",\n    \"longitude\": -50.1217041015625,\n    \"fotos\": [\n      {\n        \"id\": \"MOCK_FOTO_MOCK_TEST-APARTAMENTO_002_1\",\n        \"url\": \"https://images.unsplash.com/photo-1502672260266-1c1ef2d93688?w=800&q=80\",\n        \"descricao\": \"Apartamento Teste - Vista principal\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"MOCK_FOTO_MOCK_TEST-APARTAMENTO_002_2\",\n        \"url\": \"https://images.unsplash.com/photo-1556909114-f6e7ad7d3136?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"MOCK_FOTO_MOCK_TEST-APARTAMENTO_002_3\",\n        \"url\": \"https://images.unsplash.com/photo-1555041469-a586c61ea9bc?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 3\n      },\n      {\n        \"id\": \"MOCK_FOTO_MOCK_TEST-APARTAMENTO_002_4\",\n        \"url\": \"https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 4\n      }\n    ],\n    \"end_logradouro\": \"Rua Mock 438\",\n    \"end_numero\": \"637\",\n    \"end_cidade\": \"São Paulo\",\n    \"end_estado\": \"RS\"\n  },\n  {\n    \"codigo\": \"MOCK_TEST-CASA_002\",\n    \"titulo\": \"Casa Teste - Mock 2\",\n    \"descricao\": \"Mock de casa para testes gerado automaticamente para testes\",\n    \"categoria\": \"Casa\",\n    \"finalidade\": \"Venda\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"created_at\": \"2025-07-08T19:46:41.101Z\",\n    \"updated_at\": \"2025-07-08T19:46:41.101Z\",\n    \"qtd_banheiro\": 3,\n    \"area_construida\": 120,\n    \"valor_venda\": 550000,\n    \"area_privativa\": 98.25,\n    \"area_total\": 1,\n    \"codigo_origem\": \"GD0002\",\n    \"condominio\": 237885,\n    \"corretor.codigo\": 908218,\n    \"end_logradouro\": \"Rua Tinguis\",\n    \"end_numero\": 8,\n    \"end_cidade\": \"Ponta Grossa\",\n    \"end_estado\": \"PR\",\n    \"longitude\": -50.1461068,\n    \"fotos\": [\n      {\n        \"id\": \"MOCK_FOTO_MOCK_TEST-CASA_002_1\",\n        \"url\": \"https://images.unsplash.com/photo-1570129477492-45c003edd2be?w=800&q=80\",\n        \"descricao\": \"Casa Teste - Vista principal\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"MOCK_FOTO_MOCK_TEST-CASA_002_2\",\n        \"url\": \"https://images.unsplash.com/photo-1570129477492-45c003edd2be?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 2\n      }\n    ]\n  },\n  {\n    \"codigo\": \"MOCK_TEST-APARTAMENTO_003\",\n    \"titulo\": \"Apartamento Teste - Mock 3\",\n    \"descricao\": \"Mock de apartamento para testes gerado automaticamente para testes\",\n    \"categoria\": \"Apartamento\",\n    \"finalidade\": \"Venda\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"created_at\": \"2025-07-08T19:46:41.101Z\",\n    \"updated_at\": \"2025-07-08T19:46:41.101Z\",\n    \"qtd_quartos\": 3,\n    \"valor_venda\": 250000,\n    \"area_total\": 155,\n    \"categoria_imovel\": \"Padrão\",\n    \"end_logradouro\": \"Rua Mathias de Albuquerque\",\n    \"end_bairro\": \"Oficinas\",\n    \"end_cidade\": \"Ponta Grossa\",\n    \"end_estado\": \"PR\",\n    \"end_cep\": \"84036140\",\n    \"latitude\": -25.1187197,\n    \"longitude\": -50.1480833,\n    \"fotos\": [\n      {\n        \"id\": \"MOCK_FOTO_MOCK_TEST-APARTAMENTO_003_1\",\n        \"url\": \"https://images.unsplash.com/photo-1565183997392-2f6f122e5912?w=800&q=80\",\n        \"descricao\": \"Apartamento Teste - Vista principal\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"MOCK_FOTO_MOCK_TEST-APARTAMENTO_003_2\",\n        \"url\": \"https://images.unsplash.com/photo-1555041469-a586c61ea9bc?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"MOCK_FOTO_MOCK_TEST-APARTAMENTO_003_3\",\n        \"url\": \"https://images.unsplash.com/photo-1555041469-a586c61ea9bc?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 3\n      }\n    ],\n    \"qtd_suites\": 1\n  },\n  {\n    \"codigo\": \"MOCK_TEST-COMERCIAL_001\",\n    \"titulo\": \"Comercial Teste - Mock 1\",\n    \"descricao\": \"Mock de imóvel comercial para testes gerado automaticamente para testes\",\n    \"categoria\": \"Comercial\",\n    \"finalidade\": \"Locação\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"created_at\": \"2025-07-08T19:46:41.101Z\",\n    \"updated_at\": \"2025-07-08T19:46:41.101Z\",\n    \"area_construida\": 30,\n    \"valor_locacao\": 3000,\n    \"area_privativa\": 114,\n    \"area_total\": 100,\n    \"caracteristicas\": \"Sala de estar\",\n    \"categoria_imovel\": \"Padrão\",\n    \"corretor.codigo\": 908392,\n    \"end_logradouro\": \"Rua General Cândido Rondon\",\n    \"end_bairro\": \"Nova Rússia\",\n    \"end_cidade\": \"Ponta Grossa\",\n    \"end_estado\": \"PR\",\n    \"end_cep\": \"84070-020\",\n    \"latitude\": -14.235004,\n    \"longitude\": -51.92528,\n    \"fotos\": [\n      {\n        \"id\": \"MOCK_FOTO_MOCK_TEST-COMERCIAL_001_1\",\n        \"url\": \"https://images.unsplash.com/photo-1497366811353-6870744d04b2?w=800&q=80\",\n        \"descricao\": \"Comercial Teste - Vista principal\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"MOCK_FOTO_MOCK_TEST-COMERCIAL_001_2\",\n        \"url\": \"https://images.unsplash.com/photo-1555041469-a586c61ea9bc?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 2\n      }\n    ],\n    \"observacoes\": \"Observações do Comercial Teste: Excelente localização\"\n  },\n  {\n    \"codigo\": \"MOCK_TEST-APARTAMENTO_004\",\n    \"titulo\": \"Apartamento Teste com 3 quartos, 65m²\",\n    \"descricao\": \"Mock de apartamento para testes gerado automaticamente para testes\",\n    \"categoria\": \"Apartamento\",\n    \"finalidade\": \"Venda\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"created_at\": \"2025-07-08T19:46:41.101Z\",\n    \"updated_at\": \"2025-07-08T19:46:41.101Z\",\n    \"qtd_quartos\": 3,\n    \"qtd_banheiro\": 1,\n    \"area_construida\": 65,\n    \"area_privativa\": 98.25,\n    \"area_total\": 537.6,\n    \"condominio\": 237885,\n    \"corretor.codigo\": 913157,\n    \"qtd_suites\": 1,\n    \"end_logradouro\": \"Rua Mock 303\",\n    \"end_numero\": \"520\",\n    \"end_bairro\": \"Zona Sul\",\n    \"end_cidade\": \"Porto Alegre\",\n    \"end_estado\": \"PR\",\n    \"fotos\": [\n      {\n        \"id\": \"MOCK_FOTO_MOCK_TEST-APARTAMENTO_004_1\",\n        \"url\": \"https://images.unsplash.com/photo-1502672260266-1c1ef2d93688?w=800&q=80\",\n        \"descricao\": \"Apartamento Teste - Vista principal\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"MOCK_FOTO_MOCK_TEST-APARTAMENTO_004_2\",\n        \"url\": \"https://images.unsplash.com/photo-1555041469-a586c61ea9bc?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"MOCK_FOTO_MOCK_TEST-APARTAMENTO_004_3\",\n        \"url\": \"https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 3\n      },\n      {\n        \"id\": \"MOCK_FOTO_MOCK_TEST-APARTAMENTO_004_4\",\n        \"url\": \"https://images.unsplash.com/photo-1556909114-f6e7ad7d3136?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 4\n      }\n    ]\n  },\n  {\n    \"codigo\": \"MOCK_TEST-COMERCIAL_002\",\n    \"titulo\": \"Comercial Teste - Mock 2\",\n    \"descricao\": \"Mock de imóvel comercial para testes gerado automaticamente para testes\",\n    \"categoria\": \"Comercial\",\n    \"finalidade\": \"Locação\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"created_at\": \"2025-07-08T19:46:41.101Z\",\n    \"updated_at\": \"2025-07-08T19:46:41.101Z\",\n    \"area_construida\": 80,\n    \"qtd_banheiro\": 2,\n    \"valor_locacao\": 1500,\n    \"andar\": 1,\n    \"area_privativa\": 138,\n    \"caracteristicas\": \"Lavanderia\",\n    \"categoria_imovel\": \"Padrão\",\n    \"end_logradouro\": \"Rua Mock 942\",\n    \"end_numero\": \"822\",\n    \"end_bairro\": \"Zona Sul\",\n    \"end_cidade\": \"Porto Alegre\",\n    \"end_estado\": \"SP\",\n    \"fotos\": [\n      {\n        \"id\": \"MOCK_FOTO_MOCK_TEST-COMERCIAL_002_1\",\n        \"url\": \"https://images.unsplash.com/photo-1462826303086-329426d1aef5?w=800&q=80\",\n        \"descricao\": \"Comercial Teste - Vista principal\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"MOCK_FOTO_MOCK_TEST-COMERCIAL_002_2\",\n        \"url\": \"https://images.unsplash.com/photo-1497366216548-37526070297c?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 2\n      }\n    ]\n  },\n  {\n    \"codigo\": \"MOCK_TEST-COMERCIAL_003\",\n    \"titulo\": \"Comercial Teste - Mock 3\",\n    \"descricao\": \"Mock de imóvel comercial para testes gerado automaticamente para testes\",\n    \"categoria\": \"Comercial\",\n    \"finalidade\": \"Locação\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"created_at\": \"2025-07-08T19:46:41.101Z\",\n    \"updated_at\": \"2025-07-08T19:46:41.101Z\",\n    \"area_construida\": 50,\n    \"andar\": 1,\n    \"caracteristicas\": \"Lavanderia\",\n    \"codigo_origem\": \"AR0015\",\n    \"condominio\": 237952,\n    \"corretor.codigo\": 1227644,\n    \"end_logradouro\": \"Rua Herculano de Freitas\",\n    \"end_bairro\": \"Orfãs\",\n    \"end_estado\": \"PR\",\n    \"end_cep\": \"84015-105\",\n    \"longitude\": -50.16290679999999,\n    \"fotos\": [\n      {\n        \"id\": \"MOCK_FOTO_MOCK_TEST-COMERCIAL_003_1\",\n        \"url\": \"https://images.unsplash.com/photo-1462826303086-329426d1aef5?w=800&q=80\",\n        \"descricao\": \"Comercial Teste - Vista principal\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"MOCK_FOTO_MOCK_TEST-COMERCIAL_003_2\",\n        \"url\": \"https://images.unsplash.com/photo-1556909114-f6e7ad7d3136?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"MOCK_FOTO_MOCK_TEST-COMERCIAL_003_3\",\n        \"url\": \"https://images.unsplash.com/photo-1462826303086-329426d1aef5?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 3\n      },\n      {\n        \"id\": \"MOCK_FOTO_MOCK_TEST-COMERCIAL_003_4\",\n        \"url\": \"https://images.unsplash.com/photo-1556909114-f6e7ad7d3136?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 4\n      }\n    ]\n  },\n  {\n    \"codigo\": \"MOCK_TEST-CASA_003\",\n    \"titulo\": \"Casa Teste com 4 quartos, 120m²\",\n    \"descricao\": \"Mock de casa para testes gerado automaticamente para testes\",\n    \"categoria\": \"Casa\",\n    \"finalidade\": \"Venda\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"created_at\": \"2025-07-08T19:46:41.101Z\",\n    \"updated_at\": \"2025-07-08T19:46:41.101Z\",\n    \"qtd_quartos\": 4,\n    \"qtd_banheiro\": 3,\n    \"area_construida\": 120,\n    \"area_terreno\": 300,\n    \"area_privativa\": 100,\n    \"area_total\": 1,\n    \"corretor.codigo\": 908223,\n    \"end_numero\": \"263\",\n    \"end_bairro\": \"Zona Sul\",\n    \"end_cidade\": \"Curitiba\",\n    \"end_estado\": \"RJ\",\n    \"latitude\": -25.0787607,\n    \"longitude\": -50.16290679999999,\n    \"fotos\": [\n      {\n        \"id\": \"MOCK_FOTO_MOCK_TEST-CASA_003_1\",\n        \"url\": \"https://images.unsplash.com/photo-1583608205776-bfd35f0d9f83?w=800&q=80\",\n        \"descricao\": \"Casa Teste - Vista principal\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"MOCK_FOTO_MOCK_TEST-CASA_003_2\",\n        \"url\": \"https://images.unsplash.com/photo-1555041469-a586c61ea9bc?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"MOCK_FOTO_MOCK_TEST-CASA_003_3\",\n        \"url\": \"https://images.unsplash.com/photo-1512917774080-9991f1c4c750?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 3\n      }\n    ],\n    \"qtd_suites\": 1,\n    \"end_logradouro\": \"Rua Mock 637\"\n  },\n  {\n    \"codigo\": \"MOCK_TEST-APARTAMENTO_005\",\n    \"titulo\": \"Apartamento Teste - Mock 5\",\n    \"descricao\": \"Mock de apartamento para testes gerado automaticamente para testes\",\n    \"categoria\": \"Apartamento\",\n    \"finalidade\": \"Venda\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"created_at\": \"2025-07-08T19:46:41.101Z\",\n    \"updated_at\": \"2025-07-08T19:46:41.101Z\",\n    \"qtd_quartos\": 3,\n    \"qtd_banheiro\": 2,\n    \"valor_venda\": 250000,\n    \"area_privativa\": 15,\n    \"area_total\": 270,\n    \"caracteristicas\": \"Lavanderia\",\n    \"categoria_imovel\": \"Padrão\",\n    \"condominio\": 237318,\n    \"corretor.codigo\": 908392,\n    \"qtd_suites\": 1,\n    \"end_logradouro\": \"Rua Mock 139\",\n    \"end_numero\": \"827\",\n    \"end_bairro\": \"Jardins\",\n    \"end_cidade\": \"Rio de Janeiro\",\n    \"end_estado\": \"RS\",\n    \"fotos\": [\n      {\n        \"id\": \"MOCK_FOTO_MOCK_TEST-APARTAMENTO_005_1\",\n        \"url\": \"https://images.unsplash.com/photo-1560448204-e02f11c3d0e2?w=800&q=80\",\n        \"descricao\": \"Apartamento Teste - Vista principal\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"MOCK_FOTO_MOCK_TEST-APARTAMENTO_005_2\",\n        \"url\": \"https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"MOCK_FOTO_MOCK_TEST-APARTAMENTO_005_3\",\n        \"url\": \"https://images.unsplash.com/photo-1522708323590-d24dbb6b0267?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 3\n      }\n    ]\n  },\n  {\n    \"codigo\": \"MOCK_TEST-APARTAMENTO_006\",\n    \"titulo\": \"Apartamento Teste com 3 quartos, 85m²\",\n    \"descricao\": \"Mock de apartamento para testes gerado automaticamente para testes\",\n    \"categoria\": \"Apartamento\",\n    \"finalidade\": \"Venda\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"created_at\": \"2025-07-08T19:46:41.101Z\",\n    \"updated_at\": \"2025-07-08T19:46:41.101Z\",\n    \"qtd_quartos\": 3,\n    \"area_construida\": 85,\n    \"valor_venda\": 450000,\n    \"caracteristicas\": \"Em condomínio fechado\",\n    \"categoria_imovel\": \"Padrão\",\n    \"corretor.codigo\": 908381,\n    \"qtd_suites\": 1,\n    \"end_logradouro\": \"Rua Mock 531\",\n    \"end_numero\": \"442\",\n    \"end_bairro\": \"Zona Sul\",\n    \"end_cidade\": \"São Paulo\",\n    \"end_estado\": \"RJ\",\n    \"fotos\": [\n      {\n        \"id\": \"MOCK_FOTO_MOCK_TEST-APARTAMENTO_006_1\",\n        \"url\": \"https://images.unsplash.com/photo-1522708323590-d24dbb6b0267?w=800&q=80\",\n        \"descricao\": \"Apartamento Teste - Vista principal\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"MOCK_FOTO_MOCK_TEST-APARTAMENTO_006_2\",\n        \"url\": \"https://images.unsplash.com/photo-1555041469-a586c61ea9bc?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"MOCK_FOTO_MOCK_TEST-APARTAMENTO_006_3\",\n        \"url\": \"https://images.unsplash.com/photo-1555041469-a586c61ea9bc?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 3\n      },\n      {\n        \"id\": \"MOCK_FOTO_MOCK_TEST-APARTAMENTO_006_4\",\n        \"url\": \"https://images.unsplash.com/photo-1556909114-f6e7ad7d3136?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 4\n      }\n    ]\n  },\n  {\n    \"codigo\": \"MOCK_TEST-COMERCIAL_004\",\n    \"titulo\": \"Comercial Teste - Mock 4\",\n    \"descricao\": \"Mock de imóvel comercial para testes gerado automaticamente para testes\",\n    \"categoria\": \"Comercial\",\n    \"finalidade\": \"Locação\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"created_at\": \"2025-07-08T19:46:41.101Z\",\n    \"updated_at\": \"2025-07-08T19:46:41.101Z\",\n    \"area_construida\": 30,\n    \"qtd_banheiro\": 2,\n    \"valor_locacao\": 3000,\n    \"andar\": 5,\n    \"area_privativa\": 15,\n    \"area_total\": 307.5,\n    \"caracteristicas\": \"Churrasqueira\",\n    \"categoria_imovel\": \"Padrão\",\n    \"codigo_origem\": \"SO0609\",\n    \"condominio\": 237652,\n    \"end_logradouro\": \"Rua Mock 311\",\n    \"end_numero\": \"570\",\n    \"end_bairro\": \"Vila Nova\",\n    \"end_cidade\": \"São Paulo\",\n    \"end_estado\": \"SP\",\n    \"fotos\": [\n      {\n        \"id\": \"MOCK_FOTO_MOCK_TEST-COMERCIAL_004_1\",\n        \"url\": \"https://images.unsplash.com/photo-1497366216548-37526070297c?w=800&q=80\",\n        \"descricao\": \"Comercial Teste - Vista principal\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"MOCK_FOTO_MOCK_TEST-COMERCIAL_004_2\",\n        \"url\": \"https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 2\n      }\n    ]\n  },\n  {\n    \"codigo\": \"MOCK_TEST-CASA_004\",\n    \"titulo\": \"Casa Teste com 3 quartos, 180m²\",\n    \"descricao\": \"Mock de casa para testes gerado automaticamente para testes\",\n    \"categoria\": \"Casa\",\n    \"finalidade\": \"Venda\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"created_at\": \"2025-07-08T19:46:41.101Z\",\n    \"updated_at\": \"2025-07-08T19:46:41.101Z\",\n    \"qtd_quartos\": 3,\n    \"area_construida\": 180,\n    \"area_terreno\": 200,\n    \"valor_venda\": 550000,\n    \"caracteristicas\": \"Porcelanato\",\n    \"categoria_imovel\": \"Padrão\",\n    \"codigo_origem\": \"SO0609\",\n    \"qtd_suites\": 1,\n    \"end_logradouro\": \"Rua Mock 93\",\n    \"end_numero\": \"423\",\n    \"end_bairro\": \"Vila Nova\",\n    \"end_cidade\": \"Curitiba\",\n    \"end_estado\": \"PR\",\n    \"fotos\": [\n      {\n        \"id\": \"MOCK_FOTO_MOCK_TEST-CASA_004_1\",\n        \"url\": \"https://images.unsplash.com/photo-1512917774080-9991f1c4c750?w=800&q=80\",\n        \"descricao\": \"Casa Teste - Vista principal\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"MOCK_FOTO_MOCK_TEST-CASA_004_2\",\n        \"url\": \"https://images.unsplash.com/photo-1556909114-f6e7ad7d3136?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 2\n      }\n    ]\n  },\n  {\n    \"codigo\": \"MOCK_TEST-APARTAMENTO_007\",\n    \"titulo\": \"Apartamento Teste com 1 quartos, 85m²\",\n    \"descricao\": \"Mock de apartamento para testes gerado automaticamente para testes\",\n    \"categoria\": \"Apartamento\",\n    \"finalidade\": \"Venda\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"created_at\": \"2025-07-08T19:46:41.101Z\",\n    \"updated_at\": \"2025-07-08T19:46:41.101Z\",\n    \"qtd_quartos\": 1,\n    \"qtd_banheiro\": 2,\n    \"area_construida\": 85,\n    \"valor_venda\": 450000,\n    \"area_total\": 270,\n    \"caracteristicas\": \"Cozinha\",\n    \"codigo_origem\": \"GD0002\",\n    \"corretor.codigo\": 908218,\n    \"end_logradouro\": \"Rua Francisco Ribas\",\n    \"end_numero\": 1012,\n    \"end_bairro\": \"Orfãs\",\n    \"end_cidade\": \"Ponta Grossa\",\n    \"end_estado\": \"PR\",\n    \"longitude\": -50.1623448,\n    \"fotos\": [\n      {\n        \"id\": \"MOCK_FOTO_MOCK_TEST-APARTAMENTO_007_1\",\n        \"url\": \"https://images.unsplash.com/photo-1502672260266-1c1ef2d93688?w=800&q=80\",\n        \"descricao\": \"Apartamento Teste - Vista principal\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"MOCK_FOTO_MOCK_TEST-APARTAMENTO_007_2\",\n        \"url\": \"https://images.unsplash.com/photo-1556909114-f6e7ad7d3136?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 2\n      }\n    ]\n  },\n  {\n    \"codigo\": \"MOCK_TEST-APARTAMENTO_008\",\n    \"titulo\": \"Apartamento Teste - Mock 8\",\n    \"descricao\": \"Mock de apartamento para testes gerado automaticamente para testes\",\n    \"categoria\": \"Apartamento\",\n    \"finalidade\": \"Venda\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"created_at\": \"2025-07-08T19:46:41.101Z\",\n    \"updated_at\": \"2025-07-08T19:46:41.101Z\",\n    \"valor_venda\": 450000,\n    \"area_privativa\": 0,\n    \"condominio\": 237321,\n    \"corretor.codigo\": 908392,\n    \"end_logradouro\": \"Rua Herculano de Freitas\",\n    \"end_numero\": 667,\n    \"end_bairro\": \"Orfãs\",\n    \"end_cidade\": \"Ponta Grossa\",\n    \"end_estado\": \"PR\",\n    \"latitude\": -25.0787607,\n    \"longitude\": -50.16290679999999,\n    \"fotos\": [\n      {\n        \"id\": \"MOCK_FOTO_MOCK_TEST-APARTAMENTO_008_1\",\n        \"url\": \"https://images.unsplash.com/photo-1502672260266-1c1ef2d93688?w=800&q=80\",\n        \"descricao\": \"Apartamento Teste - Vista principal\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"MOCK_FOTO_MOCK_TEST-APARTAMENTO_008_2\",\n        \"url\": \"https://images.unsplash.com/photo-1555041469-a586c61ea9bc?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"MOCK_FOTO_MOCK_TEST-APARTAMENTO_008_3\",\n        \"url\": \"https://images.unsplash.com/photo-1555041469-a586c61ea9bc?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 3\n      }\n    ]\n  },\n  {\n    \"codigo\": \"MOCK_TEST-COMERCIAL_005\",\n    \"titulo\": \"Comercial Teste - Mock 5\",\n    \"descricao\": \"Mock de imóvel comercial para testes gerado automaticamente para testes\",\n    \"categoria\": \"Comercial\",\n    \"finalidade\": \"Locação\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"created_at\": \"2025-07-08T19:46:41.101Z\",\n    \"updated_at\": \"2025-07-08T19:46:41.101Z\",\n    \"area_construida\": 80,\n    \"qtd_banheiro\": 2,\n    \"valor_locacao\": 3000,\n    \"andar\": 10,\n    \"area_total\": 5782,\n    \"categoria_imovel\": \"Padrão\",\n    \"codigo_origem\": \"SO0607\",\n    \"condominio\": 237318,\n    \"corretor.codigo\": 913153,\n    \"end_numero\": \"995\",\n    \"end_bairro\": \"Jardins\",\n    \"end_cidade\": \"São Paulo\",\n    \"end_estado\": \"RS\",\n    \"end_cep\": \"84015-000\",\n    \"latitude\": -25.0808545,\n    \"longitude\": -50.1623448,\n    \"fotos\": [\n      {\n        \"id\": \"MOCK_FOTO_MOCK_TEST-COMERCIAL_005_1\",\n        \"url\": \"https://images.unsplash.com/photo-1497366811353-6870744d04b2?w=800&q=80\",\n        \"descricao\": \"Comercial Teste - Vista principal\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"MOCK_FOTO_MOCK_TEST-COMERCIAL_005_2\",\n        \"url\": \"https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 2\n      }\n    ],\n    \"end_logradouro\": \"Rua Mock 307\"\n  },\n  {\n    \"codigo\": \"MOCK_TEST-CASA_005\",\n    \"titulo\": \"Casa Teste - Mock 5\",\n    \"descricao\": \"Mock de casa para testes gerado automaticamente para testes\",\n    \"categoria\": \"Casa\",\n    \"finalidade\": \"Venda\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"created_at\": \"2025-07-08T19:46:41.101Z\",\n    \"updated_at\": \"2025-07-08T19:46:41.101Z\",\n    \"qtd_quartos\": 3,\n    \"qtd_banheiro\": 3,\n    \"area_terreno\": 200,\n    \"valor_venda\": 550000,\n    \"codigo_origem\": \"AR0015\",\n    \"condominio\": 237321,\n    \"corretor.codigo\": 908410,\n    \"end_logradouro\": \"Rua Lauro Bittencourt Neto\",\n    \"end_bairro\": \"Jardim Carvalho\",\n    \"end_cidade\": \"Ponta Grossa\",\n    \"end_estado\": \"PR\",\n    \"fotos\": [\n      {\n        \"id\": \"MOCK_FOTO_MOCK_TEST-CASA_005_1\",\n        \"url\": \"https://images.unsplash.com/photo-1512917774080-9991f1c4c750?w=800&q=80\",\n        \"descricao\": \"Casa Teste - Vista principal\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"MOCK_FOTO_MOCK_TEST-CASA_005_2\",\n        \"url\": \"https://images.unsplash.com/photo-1512917774080-9991f1c4c750?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"MOCK_FOTO_MOCK_TEST-CASA_005_3\",\n        \"url\": \"https://images.unsplash.com/photo-1568605114967-8130f3a36994?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 3\n      }\n    ],\n    \"qtd_suites\": 1\n  },\n  {\n    \"codigo\": \"MOCK_TEST-COMERCIAL_006\",\n    \"titulo\": \"Comercial Teste - Mock 6\",\n    \"descricao\": \"Mock de imóvel comercial para testes gerado automaticamente para testes\",\n    \"categoria\": \"Comercial\",\n    \"finalidade\": \"Locação\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"created_at\": \"2025-07-08T19:46:41.101Z\",\n    \"updated_at\": \"2025-07-08T19:46:41.101Z\",\n    \"area_construida\": 80,\n    \"qtd_banheiro\": 2,\n    \"valor_locacao\": 1500,\n    \"andar\": 10,\n    \"area_privativa\": 0,\n    \"area_total\": 0,\n    \"caracteristicas\": \"Sala de estar\",\n    \"condominio\": 237551,\n    \"end_logradouro\": \"Rua Mock 411\",\n    \"end_numero\": \"449\",\n    \"end_bairro\": \"Vila Nova\",\n    \"end_cidade\": \"Rio de Janeiro\",\n    \"end_estado\": \"SP\",\n    \"fotos\": [\n      {\n        \"id\": \"MOCK_FOTO_MOCK_TEST-COMERCIAL_006_1\",\n        \"url\": \"https://images.unsplash.com/photo-1462826303086-329426d1aef5?w=800&q=80\",\n        \"descricao\": \"Comercial Teste - Vista principal\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"MOCK_FOTO_MOCK_TEST-COMERCIAL_006_2\",\n        \"url\": \"https://images.unsplash.com/photo-1524758631624-e2822e304c36?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"MOCK_FOTO_MOCK_TEST-COMERCIAL_006_3\",\n        \"url\": \"https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 3\n      },\n      {\n        \"id\": \"MOCK_FOTO_MOCK_TEST-COMERCIAL_006_4\",\n        \"url\": \"https://images.unsplash.com/photo-1497366216548-37526070297c?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 4\n      }\n    ]\n  },\n  {\n    \"codigo\": \"MOCK_TEST-APARTAMENTO_009\",\n    \"titulo\": \"Apartamento Teste com 2 quartos, 45m²\",\n    \"descricao\": \"Mock de apartamento para testes gerado automaticamente para testes\",\n    \"categoria\": \"Apartamento\",\n    \"finalidade\": \"Venda\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"created_at\": \"2025-07-08T19:46:41.101Z\",\n    \"updated_at\": \"2025-07-08T19:46:41.101Z\",\n    \"qtd_quartos\": 2,\n    \"qtd_banheiro\": 2,\n    \"area_construida\": 45,\n    \"valor_venda\": 250000,\n    \"area_privativa\": 98.25,\n    \"caracteristicas\": \"Em condomínio fechado\",\n    \"condominio\": 237643,\n    \"end_logradouro\": \"Rua Mathias de Albuquerque\",\n    \"end_bairro\": \"Oficinas\",\n    \"end_cep\": \"84036140\",\n    \"longitude\": -50.1481246948242,\n    \"fotos\": [\n      {\n        \"id\": \"MOCK_FOTO_MOCK_TEST-APARTAMENTO_009_1\",\n        \"url\": \"https://images.unsplash.com/photo-1502672260266-1c1ef2d93688?w=800&q=80\",\n        \"descricao\": \"Apartamento Teste - Vista principal\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"MOCK_FOTO_MOCK_TEST-APARTAMENTO_009_2\",\n        \"url\": \"https://images.unsplash.com/photo-1556909114-f6e7ad7d3136?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"MOCK_FOTO_MOCK_TEST-APARTAMENTO_009_3\",\n        \"url\": \"https://images.unsplash.com/photo-1556909114-f6e7ad7d3136?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 3\n      },\n      {\n        \"id\": \"MOCK_FOTO_MOCK_TEST-APARTAMENTO_009_4\",\n        \"url\": \"https://images.unsplash.com/photo-1560448204-e02f11c3d0e2?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 4\n      }\n    ]\n  }\n]","[\n  {\n    \"codigo\": \"EDGE_NULL_001\",\n    \"titulo\": \"Mock com campos nulos\",\n    \"descricao\": null,\n    \"categoria\": \"\",\n    \"valor_venda\": 0,\n    \"area_construida\": null\n  },\n  {\n    \"codigo\": \"EDGE_EXTREME_001\",\n    \"titulo\": \"Mock com valores extremos\",\n    \"descricao\": \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\n    \"qtd_quartos\": 99,\n    \"qtd_banheiro\": 50,\n    \"area_construida\": 99999,\n    \"valor_venda\": 999999999,\n    \"andar\": 150\n  },\n  {\n    \"codigo\": \"EDGE_SPECIAL_001\",\n    \"titulo\": \"Mock com caracteres especiais: áéíóú çñ @#$%\",\n    \"descricao\": \"Teste com emoji 🏠🏡🏘️ e símbolos\",\n    \"end_logradouro\": \"Rua \\\"Teste\\\" & Cia\",\n    \"end_numero\": \"123/A\",\n    \"observacoes\": \"Texto com\\nquebras\\nde\\nlinha\"\n  },\n  {\n    \"codigo\": \"EDGE_EMPTY_001\",\n    \"titulo\": \"Mock com arrays vazios\",\n    \"descricao\": \"Teste de arrays vazios\",\n    \"fotos\": [],\n    \"caracteristicas\": [],\n    \"emp_fields\": []\n  },\n  {\n    \"codigo\": \"EDGE_INCONSISTENT_001\",\n    \"titulo\": \"Mock com dados inconsistentes\",\n    \"descricao\": \"Terreno com quartos\",\n    \"categoria\": \"Terreno\",\n    \"qtd_quartos\": 3,\n    \"area_construida\": 200,\n    \"valor_locacao\": 5000,\n    \"finalidade\": \"Venda\"\n  },\n  {\n    \"codigo\": \"EDGE_EMPTY_STRINGS_001\",\n    \"titulo\": \"\",\n    \"descricao\": \"   \",\n    \"categoria\": null,\n    \"end_cidade\": \"\",\n    \"end_bairro\": \"   \"\n  },\n  {\n    \"codigo\": \"EDGE_NEGATIVE_001\",\n    \"titulo\": \"Mock com valores negativos\",\n    \"descricao\": \"Valores negativos para testes\",\n    \"qtd_quartos\": -1,\n    \"area_construida\": -500,\n    \"valor_venda\": -100000,\n    \"andar\": -5\n  },\n  {\n    \"codigo\": \"EDGE_WRONG_TYPES_001\",\n    \"titulo\": \"Mock com tipos incorretos\",\n    \"descricao\": \"Testes de validação de tipos\",\n    \"qtd_quartos\": \"três\",\n    \"area_construida\": \"grande\",\n    \"valor_venda\": \"caro\",\n    \"ativo\": \"sim\"\n  }\n]","[\n  {\n    \"codigo\": \"FAKE_APARTAMENTOS_001\",\n    \"titulo\": \"Apartamento Premium - 1 qto, 35m², 2 vagas\",\n    \"descricao\": \"Apartamento moderno com acabamentos de primeira linha e vista panorâmica da cidade.\",\n    \"categoria\": \"Apartamento\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"destaque\": false,\n    \"created_at\": \"2025-07-08T23:35:48.814Z\",\n    \"updated_at\": \"2025-07-08T23:35:48.814Z\",\n    \"finalidade\": \"Locação\",\n    \"qtd_quartos\": 1,\n    \"qtd_banheiro\": 1,\n    \"qtd_suites\": 0,\n    \"area_construida\": 35,\n    \"qtd_vagas\": 2,\n    \"andar\": 15,\n    \"valor_venda\": 450000,\n    \"valor_locacao\": 4500,\n    \"valor_condominio\": 1200,\n    \"end_bairro\": \"Vila Olimpia\",\n    \"end_cidade\": \"São Paulo\",\n    \"end_estado\": \"SP\",\n    \"end_cep\": \"01401-001\",\n    \"end_logradouro\": \"Rua Augusta\",\n    \"end_numero\": \"40\",\n    \"area_privativa\": 34,\n    \"categoria_imovel\": \"Padrão\",\n    \"codigo_origem\": \"TE0571\",\n    \"condominio\": 237643,\n    \"observacoes\": \"Vista panorâmica da cidade\",\n    \"data_disponibilidade\": \"2025-07-10\",\n    \"status\": \"Disponível\",\n    \"fotos\": [\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_001_001\",\n        \"url\": \"https://images.unsplash.com/photo-1560448204-e02f11c3d0e2?w=800&q=80\",\n        \"descricao\": \"Vista principal do imóvel\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_001_002\",\n        \"url\": \"https://images.unsplash.com/photo-1556909114-f6e7ad7d3136?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_001_003\",\n        \"url\": \"https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 3\n      }\n    ]\n  },\n  {\n    \"codigo\": \"FAKE_APARTAMENTOS_002\",\n    \"titulo\": \"Apartamento Premium - 2 qtos, 55m², 2 vagas\",\n    \"descricao\": \"Unidade ampla e bem iluminada, com varanda gourmet e área de lazer completa.\",\n    \"categoria\": \"Apartamento\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"destaque\": false,\n    \"created_at\": \"2025-07-08T23:35:48.815Z\",\n    \"updated_at\": \"2025-07-08T23:35:48.815Z\",\n    \"finalidade\": \"Locação\",\n    \"qtd_quartos\": 2,\n    \"qtd_banheiro\": 4,\n    \"qtd_suites\": 1,\n    \"area_construida\": 55,\n    \"qtd_vagas\": 2,\n    \"andar\": 8,\n    \"valor_venda\": 450000,\n    \"valor_locacao\": 8000,\n    \"valor_condominio\": 580,\n    \"end_bairro\": \"Barra da Tijuca\",\n    \"end_cidade\": \"Rio de Janeiro\",\n    \"end_estado\": \"RJ\",\n    \"end_cep\": \"22250-040\",\n    \"end_logradouro\": \"Rua Barata Ribeiro\",\n    \"end_numero\": \"305\",\n    \"area_privativa\": 15,\n    \"area_total\": 15,\n    \"data_disponibilidade\": \"2025-07-08\",\n    \"status\": \"Disponível\",\n    \"fotos\": [\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_002_001\",\n        \"url\": \"https://images.unsplash.com/photo-1560448204-e02f11c3d0e2?w=800&q=80\",\n        \"descricao\": \"Vista principal do imóvel\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_002_002\",\n        \"url\": \"https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_002_003\",\n        \"url\": \"https://images.unsplash.com/photo-1502672260266-1c1ef2d93688?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 3\n      }\n    ]\n  },\n  {\n    \"codigo\": \"FAKE_APARTAMENTOS_003\",\n    \"titulo\": \"Apartamento Premium - 2 qtos, 95m²\",\n    \"descricao\": \"Apartamento decorado pronto para morar, em condomínio com infraestrutura completa.\",\n    \"categoria\": \"Apartamento\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"destaque\": false,\n    \"created_at\": \"2025-07-08T23:35:48.815Z\",\n    \"updated_at\": \"2025-07-08T23:35:48.815Z\",\n    \"finalidade\": \"Venda\",\n    \"qtd_quartos\": 2,\n    \"qtd_banheiro\": 1,\n    \"qtd_suites\": 0,\n    \"area_construida\": 95,\n    \"qtd_vagas\": 0,\n    \"andar\": 8,\n    \"valor_venda\": 890000,\n    \"valor_locacao\": 2500,\n    \"valor_condominio\": 450,\n    \"end_bairro\": \"Bigorrilho\",\n    \"end_cidade\": \"Curitiba\",\n    \"end_estado\": \"PR\",\n    \"end_cep\": \"80730-030\",\n    \"end_logradouro\": \"Avenida Vicente Machado\",\n    \"end_numero\": \"926\",\n    \"codigo_origem\": \"GD0002\",\n    \"data_disponibilidade\": \"2025-07-12\",\n    \"status\": \"Disponível\",\n    \"fotos\": [\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_003_001\",\n        \"url\": \"https://images.unsplash.com/photo-1565183997392-2f6f122e5912?w=800&q=80\",\n        \"descricao\": \"Vista principal do imóvel\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_003_002\",\n        \"url\": \"https://images.unsplash.com/photo-1556909114-f6e7ad7d3136?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_003_003\",\n        \"url\": \"https://images.unsplash.com/photo-1556909114-f6e7ad7d3136?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 3\n      }\n    ]\n  },\n  {\n    \"codigo\": \"FAKE_APARTAMENTOS_004\",\n    \"titulo\": \"Apartamento Premium - 3 qtos, 180m²\",\n    \"descricao\": \"Apartamento moderno com acabamentos de primeira linha e vista panorâmica da cidade.\",\n    \"categoria\": \"Apartamento\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"destaque\": false,\n    \"created_at\": \"2025-07-08T23:35:48.815Z\",\n    \"updated_at\": \"2025-07-08T23:35:48.815Z\",\n    \"finalidade\": \"Venda\",\n    \"qtd_quartos\": 3,\n    \"qtd_banheiro\": 1,\n    \"qtd_suites\": 1,\n    \"area_construida\": 180,\n    \"qtd_vagas\": 0,\n    \"andar\": 10,\n    \"valor_venda\": 720000,\n    \"valor_locacao\": 1200,\n    \"valor_condominio\": 350,\n    \"end_bairro\": \"Vila Madalena\",\n    \"end_cidade\": \"São Paulo\",\n    \"end_estado\": \"SP\",\n    \"end_cep\": \"04038-001\",\n    \"end_logradouro\": \"Rua Estados Unidos\",\n    \"end_numero\": \"182\",\n    \"caracteristicas\": [\n      \"Quintal\",\n      \"Despensa\",\n      \"Mobiliado\"\n    ],\n    \"codigo_origem\": \"SA0294\",\n    \"condominio\": 237224,\n    \"corretor.codigo\": 1227644,\n    \"observacoes\": \"Vista panorâmica da cidade\",\n    \"data_disponibilidade\": \"2025-07-24\",\n    \"status\": \"Disponível\",\n    \"fotos\": [\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_004_001\",\n        \"url\": \"https://images.unsplash.com/photo-1502672260266-1c1ef2d93688?w=800&q=80\",\n        \"descricao\": \"Vista principal do imóvel\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_004_002\",\n        \"url\": \"https://images.unsplash.com/photo-1522708323590-d24dbb6b0267?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_004_003\",\n        \"url\": \"https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 3\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_004_004\",\n        \"url\": \"https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 4\n      }\n    ]\n  },\n  {\n    \"codigo\": \"FAKE_APARTAMENTOS_005\",\n    \"titulo\": \"Apartamento Premium - 2 qtos, 45m², 2 vagas\",\n    \"descricao\": \"Apartamento decorado pronto para morar, em condomínio com infraestrutura completa.\",\n    \"categoria\": \"Apartamento\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"destaque\": false,\n    \"created_at\": \"2025-07-08T23:35:48.815Z\",\n    \"updated_at\": \"2025-07-08T23:35:48.815Z\",\n    \"finalidade\": \"Venda\",\n    \"qtd_quartos\": 2,\n    \"qtd_banheiro\": 4,\n    \"qtd_suites\": 2,\n    \"area_construida\": 45,\n    \"qtd_vagas\": 2,\n    \"andar\": 8,\n    \"valor_venda\": 890000,\n    \"valor_locacao\": 4500,\n    \"valor_condominio\": 980,\n    \"end_bairro\": \"Mercês\",\n    \"end_cidade\": \"Curitiba\",\n    \"end_estado\": \"PR\",\n    \"end_cep\": \"80060-150\",\n    \"end_logradouro\": \"Avenida Vicente Machado\",\n    \"end_numero\": \"192\",\n    \"area_privativa\": 15,\n    \"categoria_imovel\": \"Padrão\",\n    \"codigo_origem\": \"AR0015\",\n    \"condominio\": 237224,\n    \"data_disponibilidade\": \"2025-07-28\",\n    \"status\": \"Reservado\",\n    \"fotos\": [\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_005_001\",\n        \"url\": \"https://images.unsplash.com/photo-1565183997392-2f6f122e5912?w=800&q=80\",\n        \"descricao\": \"Vista principal do imóvel\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_005_002\",\n        \"url\": \"https://images.unsplash.com/photo-1556909114-f6e7ad7d3136?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_005_003\",\n        \"url\": \"https://images.unsplash.com/photo-1556909114-f6e7ad7d3136?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 3\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_005_004\",\n        \"url\": \"https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 4\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_005_005\",\n        \"url\": \"https://images.unsplash.com/photo-1555041469-a586c61ea9bc?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 5\n      }\n    ]\n  },\n  {\n    \"codigo\": \"FAKE_APARTAMENTOS_006\",\n    \"titulo\": \"Apartamento Premium - 1 qto, 35m², 3 vagas\",\n    \"descricao\": \"Imóvel com excelente localização, próximo a shopping, escolas e transporte público.\",\n    \"categoria\": \"Apartamento\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"destaque\": false,\n    \"created_at\": \"2025-07-08T23:35:48.815Z\",\n    \"updated_at\": \"2025-07-08T23:35:48.815Z\",\n    \"finalidade\": \"Venda\",\n    \"qtd_quartos\": 1,\n    \"qtd_banheiro\": 2,\n    \"qtd_suites\": 3,\n    \"area_construida\": 35,\n    \"qtd_vagas\": 3,\n    \"andar\": 15,\n    \"valor_venda\": 890000,\n    \"valor_locacao\": 1800,\n    \"valor_condominio\": 450,\n    \"end_bairro\": \"Flamengo\",\n    \"end_cidade\": \"Rio de Janeiro\",\n    \"end_estado\": \"RJ\",\n    \"end_cep\": \"22640-100\",\n    \"end_logradouro\": \"Rua Barata Ribeiro\",\n    \"end_numero\": \"414\",\n    \"area_privativa\": 287,\n    \"codigo_origem\": \"SO0609\",\n    \"condominio\": 237551,\n    \"observacoes\": \"Vista panorâmica da cidade\",\n    \"data_disponibilidade\": \"2025-07-26\",\n    \"status\": \"Reservado\",\n    \"fotos\": [\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_006_001\",\n        \"url\": \"https://images.unsplash.com/photo-1560448204-e02f11c3d0e2?w=800&q=80\",\n        \"descricao\": \"Vista principal do imóvel\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_006_002\",\n        \"url\": \"https://images.unsplash.com/photo-1555041469-a586c61ea9bc?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_006_003\",\n        \"url\": \"https://images.unsplash.com/photo-1565183997392-2f6f122e5912?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 3\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_006_004\",\n        \"url\": \"https://images.unsplash.com/photo-1556909114-f6e7ad7d3136?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 4\n      }\n    ]\n  },\n  {\n    \"codigo\": \"FAKE_APARTAMENTOS_007\",\n    \"titulo\": \"Apartamento Premium - 3 qtos, 95m², 1 vaga\",\n    \"descricao\": \"Imóvel com excelente localização, próximo a shopping, escolas e transporte público.\",\n    \"categoria\": \"Apartamento\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"destaque\": false,\n    \"created_at\": \"2025-07-08T23:35:48.815Z\",\n    \"updated_at\": \"2025-07-08T23:35:48.815Z\",\n    \"finalidade\": \"Venda\",\n    \"qtd_quartos\": 3,\n    \"qtd_banheiro\": 3,\n    \"qtd_suites\": 0,\n    \"area_construida\": 95,\n    \"qtd_vagas\": 1,\n    \"andar\": 8,\n    \"valor_venda\": 1200000,\n    \"valor_locacao\": 1800,\n    \"valor_condominio\": 450,\n    \"end_bairro\": \"Santa Felicidade\",\n    \"end_cidade\": \"Curitiba\",\n    \"end_estado\": \"PR\",\n    \"end_cep\": \"82010-020\",\n    \"end_logradouro\": \"Avenida Batel\",\n    \"end_numero\": \"645\",\n    \"area_total\": 15,\n    \"condominio\": 237321,\n    \"data_disponibilidade\": \"2025-07-26\",\n    \"status\": \"Disponível\",\n    \"fotos\": [\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_007_001\",\n        \"url\": \"https://images.unsplash.com/photo-1502672260266-1c1ef2d93688?w=800&q=80\",\n        \"descricao\": \"Vista principal do imóvel\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_007_002\",\n        \"url\": \"https://images.unsplash.com/photo-1560448204-e02f11c3d0e2?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_007_003\",\n        \"url\": \"https://images.unsplash.com/photo-1565183997392-2f6f122e5912?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 3\n      }\n    ]\n  },\n  {\n    \"codigo\": \"FAKE_APARTAMENTOS_008\",\n    \"titulo\": \"Apartamento Premium - 1 qto, 35m², 2 vagas\",\n    \"descricao\": \"Unidade ampla e bem iluminada, com varanda gourmet e área de lazer completa.\",\n    \"categoria\": \"Apartamento\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"destaque\": false,\n    \"created_at\": \"2025-07-08T23:35:48.815Z\",\n    \"updated_at\": \"2025-07-08T23:35:48.815Z\",\n    \"finalidade\": \"Venda\",\n    \"qtd_quartos\": 1,\n    \"qtd_banheiro\": 2,\n    \"qtd_suites\": 0,\n    \"area_construida\": 35,\n    \"qtd_vagas\": 2,\n    \"andar\": 15,\n    \"valor_venda\": 180000,\n    \"valor_locacao\": 2500,\n    \"valor_condominio\": 350,\n    \"end_bairro\": \"Batel\",\n    \"end_cidade\": \"Curitiba\",\n    \"end_estado\": \"PR\",\n    \"end_cep\": \"82010-020\",\n    \"end_logradouro\": \"Rua Comendador Araújo\",\n    \"end_numero\": \"808\",\n    \"area_total\": 100,\n    \"corretor.codigo\": 908381,\n    \"observacoes\": \"Vista panorâmica da cidade\",\n    \"data_disponibilidade\": \"2025-07-27\",\n    \"status\": \"Disponível\",\n    \"fotos\": [\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_008_001\",\n        \"url\": \"https://images.unsplash.com/photo-1565183997392-2f6f122e5912?w=800&q=80\",\n        \"descricao\": \"Vista principal do imóvel\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_008_002\",\n        \"url\": \"https://images.unsplash.com/photo-1556909114-f6e7ad7d3136?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_008_003\",\n        \"url\": \"https://images.unsplash.com/photo-1556909114-f6e7ad7d3136?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 3\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_008_004\",\n        \"url\": \"https://images.unsplash.com/photo-1555041469-a586c61ea9bc?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 4\n      }\n    ]\n  },\n  {\n    \"codigo\": \"FAKE_APARTAMENTOS_009\",\n    \"titulo\": \"Apartamento Premium - 4 qtos, 85m², 1 vaga\",\n    \"descricao\": \"Apartamento decorado pronto para morar, em condomínio com infraestrutura completa.\",\n    \"categoria\": \"Apartamento\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"destaque\": true,\n    \"created_at\": \"2025-07-08T23:35:48.815Z\",\n    \"updated_at\": \"2025-07-08T23:35:48.815Z\",\n    \"finalidade\": \"Venda\",\n    \"qtd_quartos\": 4,\n    \"qtd_banheiro\": 3,\n    \"qtd_suites\": 0,\n    \"area_construida\": 85,\n    \"qtd_vagas\": 1,\n    \"andar\": 20,\n    \"valor_venda\": 450000,\n    \"valor_locacao\": 4500,\n    \"valor_condominio\": 450,\n    \"end_bairro\": \"Moema\",\n    \"end_cidade\": \"São Paulo\",\n    \"end_estado\": \"SP\",\n    \"end_cep\": \"04038-001\",\n    \"end_logradouro\": \"Rua Consolação\",\n    \"end_numero\": \"525\",\n    \"area_privativa\": 34,\n    \"area_total\": 518,\n    \"codigo_origem\": \"AR0015\",\n    \"observacoes\": \"Vista panorâmica da cidade\",\n    \"data_disponibilidade\": \"2025-07-16\",\n    \"status\": \"Reservado\",\n    \"fotos\": [\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_009_001\",\n        \"url\": \"https://images.unsplash.com/photo-1502672260266-1c1ef2d93688?w=800&q=80\",\n        \"descricao\": \"Vista principal do imóvel\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_009_002\",\n        \"url\": \"https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_009_003\",\n        \"url\": \"https://images.unsplash.com/photo-1555041469-a586c61ea9bc?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 3\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_009_004\",\n        \"url\": \"https://images.unsplash.com/photo-1560448204-e02f11c3d0e2?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 4\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_009_005\",\n        \"url\": \"https://images.unsplash.com/photo-1556909114-f6e7ad7d3136?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 5\n      }\n    ]\n  },\n  {\n    \"codigo\": \"FAKE_APARTAMENTOS_010\",\n    \"titulo\": \"Apartamento Premium - 2 qtos, 120m², 1 vaga\",\n    \"descricao\": \"Apartamento moderno com acabamentos de primeira linha e vista panorâmica da cidade.\",\n    \"categoria\": \"Apartamento\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"destaque\": false,\n    \"created_at\": \"2025-07-08T23:35:48.815Z\",\n    \"updated_at\": \"2025-07-08T23:35:48.815Z\",\n    \"finalidade\": \"Venda\",\n    \"qtd_quartos\": 2,\n    \"qtd_banheiro\": 4,\n    \"qtd_suites\": 3,\n    \"area_construida\": 120,\n    \"qtd_vagas\": 1,\n    \"andar\": 1,\n    \"valor_venda\": 450000,\n    \"valor_locacao\": 4500,\n    \"valor_condominio\": 750,\n    \"end_bairro\": \"Morumbi\",\n    \"end_cidade\": \"São Paulo\",\n    \"end_estado\": \"SP\",\n    \"end_cep\": \"01310-100\",\n    \"end_logradouro\": \"Avenida Paulista\",\n    \"end_numero\": \"422\",\n    \"area_privativa\": 138,\n    \"area_total\": 15,\n    \"caracteristicas\": [\n      \"Churrasqueira\",\n      \"Depósito\"\n    ],\n    \"condominio\": 237885,\n    \"corretor.codigo\": 908381,\n    \"data_disponibilidade\": \"2025-07-23\",\n    \"status\": \"Disponível\",\n    \"fotos\": [\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_010_001\",\n        \"url\": \"https://images.unsplash.com/photo-1522708323590-d24dbb6b0267?w=800&q=80\",\n        \"descricao\": \"Vista principal do imóvel\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_010_002\",\n        \"url\": \"https://images.unsplash.com/photo-1556909114-f6e7ad7d3136?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_010_003\",\n        \"url\": \"https://images.unsplash.com/photo-1556909114-f6e7ad7d3136?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 3\n      }\n    ]\n  },\n  {\n    \"codigo\": \"FAKE_APARTAMENTOS_011\",\n    \"titulo\": \"Apartamento Premium - 3 qtos, 55m²\",\n    \"descricao\": \"Imóvel com excelente localização, próximo a shopping, escolas e transporte público.\",\n    \"categoria\": \"Apartamento\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"destaque\": false,\n    \"created_at\": \"2025-07-08T23:35:48.815Z\",\n    \"updated_at\": \"2025-07-08T23:35:48.815Z\",\n    \"finalidade\": \"Venda\",\n    \"qtd_quartos\": 3,\n    \"qtd_banheiro\": 1,\n    \"qtd_suites\": 0,\n    \"area_construida\": 55,\n    \"qtd_vagas\": 0,\n    \"andar\": 20,\n    \"valor_venda\": 580000,\n    \"valor_locacao\": 8000,\n    \"valor_condominio\": 750,\n    \"end_bairro\": \"Ipanema\",\n    \"end_cidade\": \"Rio de Janeiro\",\n    \"end_estado\": \"RJ\",\n    \"end_cep\": \"22640-100\",\n    \"end_logradouro\": \"Avenida Atlântica\",\n    \"end_numero\": \"542\",\n    \"caracteristicas\": [\n      \"Quintal\"\n    ],\n    \"categoria_imovel\": \"Padrão\",\n    \"observacoes\": \"Vista panorâmica da cidade\",\n    \"data_disponibilidade\": \"2025-07-13\",\n    \"status\": \"Disponível\",\n    \"fotos\": [\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_011_001\",\n        \"url\": \"https://images.unsplash.com/photo-1560448204-e02f11c3d0e2?w=800&q=80\",\n        \"descricao\": \"Vista principal do imóvel\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_011_002\",\n        \"url\": \"https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_011_003\",\n        \"url\": \"https://images.unsplash.com/photo-1502672260266-1c1ef2d93688?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 3\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_011_004\",\n        \"url\": \"https://images.unsplash.com/photo-1560448204-e02f11c3d0e2?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 4\n      }\n    ]\n  },\n  {\n    \"codigo\": \"FAKE_APARTAMENTOS_012\",\n    \"titulo\": \"Apartamento Premium - 2 qtos, 65m², 1 vaga\",\n    \"descricao\": \"Apartamento moderno com acabamentos de primeira linha e vista panorâmica da cidade.\",\n    \"categoria\": \"Apartamento\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"destaque\": false,\n    \"created_at\": \"2025-07-08T23:35:48.815Z\",\n    \"updated_at\": \"2025-07-08T23:35:48.815Z\",\n    \"finalidade\": \"Venda\",\n    \"qtd_quartos\": 2,\n    \"qtd_banheiro\": 3,\n    \"qtd_suites\": 1,\n    \"area_construida\": 65,\n    \"qtd_vagas\": 1,\n    \"andar\": 18,\n    \"valor_venda\": 320000,\n    \"valor_locacao\": 2500,\n    \"valor_condominio\": 1200,\n    \"end_bairro\": \"Bigorrilho\",\n    \"end_cidade\": \"Curitiba\",\n    \"end_estado\": \"PR\",\n    \"end_cep\": \"80420-010\",\n    \"end_logradouro\": \"Rua Comendador Araújo\",\n    \"end_numero\": \"125\",\n    \"codigo_origem\": \"GR0007\",\n    \"observacoes\": \"Vista panorâmica da cidade\",\n    \"data_disponibilidade\": \"2025-08-03\",\n    \"status\": \"Disponível\",\n    \"fotos\": [\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_012_001\",\n        \"url\": \"https://images.unsplash.com/photo-1565183997392-2f6f122e5912?w=800&q=80\",\n        \"descricao\": \"Vista principal do imóvel\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_012_002\",\n        \"url\": \"https://images.unsplash.com/photo-1556909114-f6e7ad7d3136?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_012_003\",\n        \"url\": \"https://images.unsplash.com/photo-1556909114-f6e7ad7d3136?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 3\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_012_004\",\n        \"url\": \"https://images.unsplash.com/photo-1565183997392-2f6f122e5912?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 4\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_012_005\",\n        \"url\": \"https://images.unsplash.com/photo-1555041469-a586c61ea9bc?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 5\n      }\n    ]\n  },\n  {\n    \"codigo\": \"FAKE_APARTAMENTOS_013\",\n    \"titulo\": \"Apartamento Premium - 3 qtos, 35m², 3 vagas\",\n    \"descricao\": \"Imóvel com excelente localização, próximo a shopping, escolas e transporte público.\",\n    \"categoria\": \"Apartamento\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"destaque\": false,\n    \"created_at\": \"2025-07-08T23:35:48.815Z\",\n    \"updated_at\": \"2025-07-08T23:35:48.815Z\",\n    \"finalidade\": \"Locação\",\n    \"qtd_quartos\": 3,\n    \"qtd_banheiro\": 2,\n    \"qtd_suites\": 1,\n    \"area_construida\": 35,\n    \"qtd_vagas\": 3,\n    \"andar\": 10,\n    \"valor_venda\": 890000,\n    \"valor_locacao\": 6000,\n    \"valor_condominio\": 750,\n    \"end_bairro\": \"Centro\",\n    \"end_cidade\": \"Curitiba\",\n    \"end_estado\": \"PR\",\n    \"end_cep\": \"82010-020\",\n    \"end_logradouro\": \"Avenida Vicente Machado\",\n    \"end_numero\": \"826\",\n    \"categoria_imovel\": \"Padrão\",\n    \"codigo_origem\": \"TE0571\",\n    \"observacoes\": \"Vista panorâmica da cidade\",\n    \"data_disponibilidade\": \"2025-08-01\",\n    \"status\": \"Reservado\",\n    \"fotos\": [\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_013_001\",\n        \"url\": \"https://images.unsplash.com/photo-1502672260266-1c1ef2d93688?w=800&q=80\",\n        \"descricao\": \"Vista principal do imóvel\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_013_002\",\n        \"url\": \"https://images.unsplash.com/photo-1560448204-e02f11c3d0e2?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_013_003\",\n        \"url\": \"https://images.unsplash.com/photo-1555041469-a586c61ea9bc?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 3\n      }\n    ]\n  },\n  {\n    \"codigo\": \"FAKE_APARTAMENTOS_014\",\n    \"titulo\": \"Apartamento Premium - 3 qtos, 180m², 2 vagas\",\n    \"descricao\": \"Apartamento moderno com acabamentos de primeira linha e vista panorâmica da cidade.\",\n    \"categoria\": \"Apartamento\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"destaque\": false,\n    \"created_at\": \"2025-07-08T23:35:48.815Z\",\n    \"updated_at\": \"2025-07-08T23:35:48.815Z\",\n    \"finalidade\": \"Locação\",\n    \"qtd_quartos\": 3,\n    \"qtd_banheiro\": 3,\n    \"qtd_suites\": 2,\n    \"area_construida\": 180,\n    \"qtd_vagas\": 2,\n    \"andar\": 5,\n    \"valor_venda\": 1200000,\n    \"valor_locacao\": 3200,\n    \"valor_condominio\": 750,\n    \"end_bairro\": \"Moema\",\n    \"end_cidade\": \"São Paulo\",\n    \"end_estado\": \"SP\",\n    \"end_cep\": \"04094-050\",\n    \"end_logradouro\": \"Rua Oscar Freire\",\n    \"end_numero\": \"95\",\n    \"area_total\": 1,\n    \"codigo_origem\": \"SO0607\",\n    \"corretor.codigo\": 908381,\n    \"data_disponibilidade\": \"2025-07-16\",\n    \"status\": \"Disponível\",\n    \"fotos\": [\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_014_001\",\n        \"url\": \"https://images.unsplash.com/photo-1522708323590-d24dbb6b0267?w=800&q=80\",\n        \"descricao\": \"Vista principal do imóvel\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_014_002\",\n        \"url\": \"https://images.unsplash.com/photo-1502672260266-1c1ef2d93688?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_014_003\",\n        \"url\": \"https://images.unsplash.com/photo-1502672260266-1c1ef2d93688?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 3\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_014_004\",\n        \"url\": \"https://images.unsplash.com/photo-1555041469-a586c61ea9bc?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 4\n      }\n    ]\n  },\n  {\n    \"codigo\": \"FAKE_APARTAMENTOS_015\",\n    \"titulo\": \"Apartamento Premium - 2 qtos, 75m², 2 vagas\",\n    \"descricao\": \"Apartamento moderno com acabamentos de primeira linha e vista panorâmica da cidade.\",\n    \"categoria\": \"Apartamento\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"destaque\": false,\n    \"created_at\": \"2025-07-08T23:35:48.815Z\",\n    \"updated_at\": \"2025-07-08T23:35:48.815Z\",\n    \"finalidade\": \"Locação\",\n    \"qtd_quartos\": 2,\n    \"qtd_banheiro\": 2,\n    \"qtd_suites\": 0,\n    \"area_construida\": 75,\n    \"qtd_vagas\": 2,\n    \"andar\": 2,\n    \"valor_venda\": 450000,\n    \"valor_locacao\": 3200,\n    \"valor_condominio\": 1200,\n    \"end_bairro\": \"Itaim Bibi\",\n    \"end_cidade\": \"São Paulo\",\n    \"end_estado\": \"SP\",\n    \"end_cep\": \"04094-050\",\n    \"end_logradouro\": \"Rua Consolação\",\n    \"end_numero\": \"508\",\n    \"area_total\": 518,\n    \"caracteristicas\": [\n      \"Escritório\",\n      \"Andar Alto\"\n    ],\n    \"categoria_imovel\": \"Padrão\",\n    \"condominio\": 237885,\n    \"corretor.codigo\": 908381,\n    \"data_disponibilidade\": \"2025-08-04\",\n    \"status\": \"Disponível\",\n    \"fotos\": [\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_015_001\",\n        \"url\": \"https://images.unsplash.com/photo-1560448204-e02f11c3d0e2?w=800&q=80\",\n        \"descricao\": \"Vista principal do imóvel\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_015_002\",\n        \"url\": \"https://images.unsplash.com/photo-1556909114-f6e7ad7d3136?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_015_003\",\n        \"url\": \"https://images.unsplash.com/photo-1556909114-f6e7ad7d3136?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 3\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_015_004\",\n        \"url\": \"https://images.unsplash.com/photo-1555041469-a586c61ea9bc?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 4\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_015_005\",\n        \"url\": \"https://images.unsplash.com/photo-1556909114-f6e7ad7d3136?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 5\n      }\n    ]\n  },\n  {\n    \"codigo\": \"FAKE_APARTAMENTOS_016\",\n    \"titulo\": \"Apartamento Premium - 1 qto, 180m², 1 vaga\",\n    \"descricao\": \"Apartamento moderno com acabamentos de primeira linha e vista panorâmica da cidade.\",\n    \"categoria\": \"Apartamento\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"destaque\": false,\n    \"created_at\": \"2025-07-08T23:35:48.815Z\",\n    \"updated_at\": \"2025-07-08T23:35:48.815Z\",\n    \"finalidade\": \"Venda\",\n    \"qtd_quartos\": 1,\n    \"qtd_banheiro\": 2,\n    \"qtd_suites\": 0,\n    \"area_construida\": 180,\n    \"qtd_vagas\": 1,\n    \"andar\": 2,\n    \"valor_venda\": 180000,\n    \"valor_locacao\": 2500,\n    \"valor_condominio\": 1200,\n    \"end_bairro\": \"Copacabana\",\n    \"end_cidade\": \"Rio de Janeiro\",\n    \"end_estado\": \"RJ\",\n    \"end_cep\": \"22071-900\",\n    \"end_logradouro\": \"Rua Visconde de Pirajá\",\n    \"end_numero\": \"522\",\n    \"area_privativa\": 138,\n    \"categoria_imovel\": \"Padrão\",\n    \"condominio\": 237224,\n    \"data_disponibilidade\": \"2025-07-11\",\n    \"status\": \"Disponível\",\n    \"fotos\": [\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_016_001\",\n        \"url\": \"https://images.unsplash.com/photo-1522708323590-d24dbb6b0267?w=800&q=80\",\n        \"descricao\": \"Vista principal do imóvel\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_016_002\",\n        \"url\": \"https://images.unsplash.com/photo-1556909114-f6e7ad7d3136?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_016_003\",\n        \"url\": \"https://images.unsplash.com/photo-1565183997392-2f6f122e5912?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 3\n      }\n    ]\n  },\n  {\n    \"codigo\": \"FAKE_APARTAMENTOS_017\",\n    \"titulo\": \"Apartamento Premium - 1 qto, 35m², 1 vaga\",\n    \"descricao\": \"Imóvel com excelente localização, próximo a shopping, escolas e transporte público.\",\n    \"categoria\": \"Apartamento\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"destaque\": false,\n    \"created_at\": \"2025-07-08T23:35:48.815Z\",\n    \"updated_at\": \"2025-07-08T23:35:48.815Z\",\n    \"finalidade\": \"Locação\",\n    \"qtd_quartos\": 1,\n    \"qtd_banheiro\": 2,\n    \"qtd_suites\": 1,\n    \"area_construida\": 35,\n    \"qtd_vagas\": 1,\n    \"andar\": 20,\n    \"valor_venda\": 450000,\n    \"valor_locacao\": 3200,\n    \"valor_condominio\": 1200,\n    \"end_bairro\": \"Jardins\",\n    \"end_cidade\": \"São Paulo\",\n    \"end_estado\": \"SP\",\n    \"end_cep\": \"04094-050\",\n    \"end_logradouro\": \"Rua Consolação\",\n    \"end_numero\": \"808\",\n    \"codigo_origem\": \"GD0002\",\n    \"corretor.codigo\": 908410,\n    \"observacoes\": \"Vista panorâmica da cidade\",\n    \"data_disponibilidade\": \"2025-07-10\",\n    \"status\": \"Disponível\",\n    \"fotos\": [\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_017_001\",\n        \"url\": \"https://images.unsplash.com/photo-1522708323590-d24dbb6b0267?w=800&q=80\",\n        \"descricao\": \"Vista principal do imóvel\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_017_002\",\n        \"url\": \"https://images.unsplash.com/photo-1556909114-f6e7ad7d3136?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_017_003\",\n        \"url\": \"https://images.unsplash.com/photo-1555041469-a586c61ea9bc?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 3\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_017_004\",\n        \"url\": \"https://images.unsplash.com/photo-1522708323590-d24dbb6b0267?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 4\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_017_005\",\n        \"url\": \"https://images.unsplash.com/photo-1555041469-a586c61ea9bc?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 5\n      }\n    ]\n  },\n  {\n    \"codigo\": \"FAKE_APARTAMENTOS_018\",\n    \"titulo\": \"Apartamento Premium - 1 qto, 65m², 2 vagas\",\n    \"descricao\": \"Apartamento decorado pronto para morar, em condomínio com infraestrutura completa.\",\n    \"categoria\": \"Apartamento\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"destaque\": false,\n    \"created_at\": \"2025-07-08T23:35:48.815Z\",\n    \"updated_at\": \"2025-07-08T23:35:48.815Z\",\n    \"finalidade\": \"Venda\",\n    \"qtd_quartos\": 1,\n    \"qtd_banheiro\": 1,\n    \"qtd_suites\": 1,\n    \"area_construida\": 65,\n    \"qtd_vagas\": 2,\n    \"andar\": 3,\n    \"valor_venda\": 450000,\n    \"valor_locacao\": 4500,\n    \"valor_condominio\": 580,\n    \"end_bairro\": \"Ipanema\",\n    \"end_cidade\": \"Rio de Janeiro\",\n    \"end_estado\": \"RJ\",\n    \"end_cep\": \"22071-900\",\n    \"end_logradouro\": \"Rua Visconde de Pirajá\",\n    \"end_numero\": \"602\",\n    \"codigo_origem\": \"SA0292\",\n    \"condominio\": 237643,\n    \"data_disponibilidade\": \"2025-08-05\",\n    \"status\": \"Disponível\",\n    \"fotos\": [\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_018_001\",\n        \"url\": \"https://images.unsplash.com/photo-1565183997392-2f6f122e5912?w=800&q=80\",\n        \"descricao\": \"Vista principal do imóvel\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_018_002\",\n        \"url\": \"https://images.unsplash.com/photo-1565183997392-2f6f122e5912?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_018_003\",\n        \"url\": \"https://images.unsplash.com/photo-1522708323590-d24dbb6b0267?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 3\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_018_004\",\n        \"url\": \"https://images.unsplash.com/photo-1555041469-a586c61ea9bc?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 4\n      }\n    ]\n  },\n  {\n    \"codigo\": \"FAKE_APARTAMENTOS_019\",\n    \"titulo\": \"Apartamento Premium - 1 qto, 45m², 3 vagas\",\n    \"descricao\": \"Apartamento moderno com acabamentos de primeira linha e vista panorâmica da cidade.\",\n    \"categoria\": \"Apartamento\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"destaque\": false,\n    \"created_at\": \"2025-07-08T23:35:48.815Z\",\n    \"updated_at\": \"2025-07-08T23:35:48.815Z\",\n    \"finalidade\": \"Venda\",\n    \"qtd_quartos\": 1,\n    \"qtd_banheiro\": 2,\n    \"qtd_suites\": 3,\n    \"area_construida\": 45,\n    \"qtd_vagas\": 3,\n    \"andar\": 8,\n    \"valor_venda\": 580000,\n    \"valor_locacao\": 1800,\n    \"valor_condominio\": 250,\n    \"end_bairro\": \"Água Verde\",\n    \"end_cidade\": \"Curitiba\",\n    \"end_estado\": \"PR\",\n    \"end_cep\": \"82010-020\",\n    \"end_logradouro\": \"Avenida Vicente Machado\",\n    \"end_numero\": \"319\",\n    \"area_total\": 0,\n    \"condominio\": 237885,\n    \"data_disponibilidade\": \"2025-07-29\",\n    \"status\": \"Disponível\",\n    \"fotos\": [\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_019_001\",\n        \"url\": \"https://images.unsplash.com/photo-1522708323590-d24dbb6b0267?w=800&q=80\",\n        \"descricao\": \"Vista principal do imóvel\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_019_002\",\n        \"url\": \"https://images.unsplash.com/photo-1565183997392-2f6f122e5912?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_019_003\",\n        \"url\": \"https://images.unsplash.com/photo-1522708323590-d24dbb6b0267?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 3\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_019_004\",\n        \"url\": \"https://images.unsplash.com/photo-1555041469-a586c61ea9bc?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 4\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_019_005\",\n        \"url\": \"https://images.unsplash.com/photo-1522708323590-d24dbb6b0267?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 5\n      }\n    ]\n  },\n  {\n    \"codigo\": \"FAKE_APARTAMENTOS_020\",\n    \"titulo\": \"Apartamento Premium - 2 qtos, 95m², 3 vagas\",\n    \"descricao\": \"Apartamento decorado pronto para morar, em condomínio com infraestrutura completa.\",\n    \"categoria\": \"Apartamento\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"destaque\": false,\n    \"created_at\": \"2025-07-08T23:35:48.815Z\",\n    \"updated_at\": \"2025-07-08T23:35:48.815Z\",\n    \"finalidade\": \"Venda\",\n    \"qtd_quartos\": 2,\n    \"qtd_banheiro\": 1,\n    \"qtd_suites\": 2,\n    \"area_construida\": 95,\n    \"qtd_vagas\": 3,\n    \"andar\": 18,\n    \"valor_venda\": 1200000,\n    \"valor_locacao\": 3200,\n    \"valor_condominio\": 450,\n    \"end_bairro\": \"Flamengo\",\n    \"end_cidade\": \"Rio de Janeiro\",\n    \"end_estado\": \"RJ\",\n    \"end_cep\": \"22071-900\",\n    \"end_logradouro\": \"Rua Visconde de Pirajá\",\n    \"end_numero\": \"608\",\n    \"caracteristicas\": [\n      \"Quintal\",\n      \"Mobiliado\"\n    ],\n    \"categoria_imovel\": \"Padrão\",\n    \"observacoes\": \"Vista panorâmica da cidade\",\n    \"data_disponibilidade\": \"2025-08-05\",\n    \"status\": \"Disponível\",\n    \"fotos\": [\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_020_001\",\n        \"url\": \"https://images.unsplash.com/photo-1560448204-e02f11c3d0e2?w=800&q=80\",\n        \"descricao\": \"Vista principal do imóvel\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_020_002\",\n        \"url\": \"https://images.unsplash.com/photo-1560448204-e02f11c3d0e2?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_020_003\",\n        \"url\": \"https://images.unsplash.com/photo-1556909114-f6e7ad7d3136?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 3\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_020_004\",\n        \"url\": \"https://images.unsplash.com/photo-1522708323590-d24dbb6b0267?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 4\n      }\n    ]\n  },\n  {\n    \"codigo\": \"FAKE_APARTAMENTOS_021\",\n    \"titulo\": \"Apartamento Premium - 4 qtos, 180m², 3 vagas\",\n    \"descricao\": \"Unidade ampla e bem iluminada, com varanda gourmet e área de lazer completa.\",\n    \"categoria\": \"Apartamento\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"destaque\": false,\n    \"created_at\": \"2025-07-08T23:35:48.815Z\",\n    \"updated_at\": \"2025-07-08T23:35:48.815Z\",\n    \"finalidade\": \"Locação\",\n    \"qtd_quartos\": 4,\n    \"qtd_banheiro\": 2,\n    \"qtd_suites\": 2,\n    \"area_construida\": 180,\n    \"qtd_vagas\": 3,\n    \"andar\": 20,\n    \"valor_venda\": 580000,\n    \"valor_locacao\": 4500,\n    \"valor_condominio\": 350,\n    \"end_bairro\": \"Bigorrilho\",\n    \"end_cidade\": \"Curitiba\",\n    \"end_estado\": \"PR\",\n    \"end_cep\": \"80240-040\",\n    \"end_logradouro\": \"Rua XV de Novembro\",\n    \"end_numero\": \"886\",\n    \"categoria_imovel\": \"Padrão\",\n    \"condominio\": 237643,\n    \"observacoes\": \"Vista panorâmica da cidade\",\n    \"data_disponibilidade\": \"2025-08-05\",\n    \"status\": \"Reservado\",\n    \"fotos\": [\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_021_001\",\n        \"url\": \"https://images.unsplash.com/photo-1522708323590-d24dbb6b0267?w=800&q=80\",\n        \"descricao\": \"Vista principal do imóvel\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_021_002\",\n        \"url\": \"https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_021_003\",\n        \"url\": \"https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 3\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_021_004\",\n        \"url\": \"https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 4\n      }\n    ]\n  },\n  {\n    \"codigo\": \"FAKE_APARTAMENTOS_022\",\n    \"titulo\": \"Apartamento Premium - 3 qtos, 85m², 2 vagas\",\n    \"descricao\": \"Unidade ampla e bem iluminada, com varanda gourmet e área de lazer completa.\",\n    \"categoria\": \"Apartamento\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"destaque\": false,\n    \"created_at\": \"2025-07-08T23:35:48.816Z\",\n    \"updated_at\": \"2025-07-08T23:35:48.816Z\",\n    \"finalidade\": \"Venda\",\n    \"qtd_quartos\": 3,\n    \"qtd_banheiro\": 4,\n    \"qtd_suites\": 3,\n    \"area_construida\": 85,\n    \"qtd_vagas\": 2,\n    \"andar\": 18,\n    \"valor_venda\": 720000,\n    \"valor_locacao\": 3200,\n    \"valor_condominio\": 980,\n    \"end_bairro\": \"Itaim Bibi\",\n    \"end_cidade\": \"São Paulo\",\n    \"end_estado\": \"SP\",\n    \"end_cep\": \"01310-100\",\n    \"end_logradouro\": \"Rua Estados Unidos\",\n    \"end_numero\": \"184\",\n    \"area_privativa\": 114,\n    \"caracteristicas\": [\n      \"Depósito\",\n      \"Quarto\"\n    ],\n    \"categoria_imovel\": \"Padrão\",\n    \"observacoes\": \"Vista panorâmica da cidade\",\n    \"data_disponibilidade\": \"2025-08-03\",\n    \"status\": \"Disponível\",\n    \"fotos\": [\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_022_001\",\n        \"url\": \"https://images.unsplash.com/photo-1522708323590-d24dbb6b0267?w=800&q=80\",\n        \"descricao\": \"Vista principal do imóvel\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_022_002\",\n        \"url\": \"https://images.unsplash.com/photo-1560448204-e02f11c3d0e2?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_022_003\",\n        \"url\": \"https://images.unsplash.com/photo-1556909114-f6e7ad7d3136?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 3\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_022_004\",\n        \"url\": \"https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 4\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_022_005\",\n        \"url\": \"https://images.unsplash.com/photo-1522708323590-d24dbb6b0267?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 5\n      }\n    ]\n  },\n  {\n    \"codigo\": \"FAKE_APARTAMENTOS_023\",\n    \"titulo\": \"Apartamento Premium - 3 qtos, 35m², 1 vaga\",\n    \"descricao\": \"Unidade ampla e bem iluminada, com varanda gourmet e área de lazer completa.\",\n    \"categoria\": \"Apartamento\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"destaque\": false,\n    \"created_at\": \"2025-07-08T23:35:48.816Z\",\n    \"updated_at\": \"2025-07-08T23:35:48.816Z\",\n    \"finalidade\": \"Venda\",\n    \"qtd_quartos\": 3,\n    \"qtd_banheiro\": 4,\n    \"qtd_suites\": 2,\n    \"area_construida\": 35,\n    \"qtd_vagas\": 1,\n    \"andar\": 8,\n    \"valor_venda\": 450000,\n    \"valor_locacao\": 6000,\n    \"valor_condominio\": 750,\n    \"end_bairro\": \"Flamengo\",\n    \"end_cidade\": \"Rio de Janeiro\",\n    \"end_estado\": \"RJ\",\n    \"end_cep\": \"22071-900\",\n    \"end_logradouro\": \"Rua Barata Ribeiro\",\n    \"end_numero\": \"947\",\n    \"area_total\": 0,\n    \"data_disponibilidade\": \"2025-07-25\",\n    \"status\": \"Disponível\",\n    \"fotos\": [\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_023_001\",\n        \"url\": \"https://images.unsplash.com/photo-1522708323590-d24dbb6b0267?w=800&q=80\",\n        \"descricao\": \"Vista principal do imóvel\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_023_002\",\n        \"url\": \"https://images.unsplash.com/photo-1565183997392-2f6f122e5912?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_023_003\",\n        \"url\": \"https://images.unsplash.com/photo-1555041469-a586c61ea9bc?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 3\n      }\n    ]\n  },\n  {\n    \"codigo\": \"FAKE_APARTAMENTOS_024\",\n    \"titulo\": \"Apartamento Premium - 4 qtos, 65m², 2 vagas\",\n    \"descricao\": \"Apartamento decorado pronto para morar, em condomínio com infraestrutura completa.\",\n    \"categoria\": \"Apartamento\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"destaque\": false,\n    \"created_at\": \"2025-07-08T23:35:48.816Z\",\n    \"updated_at\": \"2025-07-08T23:35:48.816Z\",\n    \"finalidade\": \"Venda\",\n    \"qtd_quartos\": 4,\n    \"qtd_banheiro\": 2,\n    \"qtd_suites\": 2,\n    \"area_construida\": 65,\n    \"qtd_vagas\": 2,\n    \"andar\": 10,\n    \"valor_venda\": 890000,\n    \"valor_locacao\": 1200,\n    \"valor_condominio\": 750,\n    \"end_bairro\": \"Barra da Tijuca\",\n    \"end_cidade\": \"Rio de Janeiro\",\n    \"end_estado\": \"RJ\",\n    \"end_cep\": \"22250-040\",\n    \"end_logradouro\": \"Avenida das Américas\",\n    \"end_numero\": \"547\",\n    \"area_total\": 307.5,\n    \"condominio\": 237864,\n    \"observacoes\": \"Vista panorâmica da cidade\",\n    \"data_disponibilidade\": \"2025-07-15\",\n    \"status\": \"Reservado\",\n    \"fotos\": [\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_024_001\",\n        \"url\": \"https://images.unsplash.com/photo-1565183997392-2f6f122e5912?w=800&q=80\",\n        \"descricao\": \"Vista principal do imóvel\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_024_002\",\n        \"url\": \"https://images.unsplash.com/photo-1556909114-f6e7ad7d3136?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_024_003\",\n        \"url\": \"https://images.unsplash.com/photo-1565183997392-2f6f122e5912?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 3\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_024_004\",\n        \"url\": \"https://images.unsplash.com/photo-1502672260266-1c1ef2d93688?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 4\n      }\n    ]\n  },\n  {\n    \"codigo\": \"FAKE_APARTAMENTOS_025\",\n    \"titulo\": \"Apartamento Premium - 2 qtos, 120m², 2 vagas\",\n    \"descricao\": \"Imóvel com excelente localização, próximo a shopping, escolas e transporte público.\",\n    \"categoria\": \"Apartamento\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"destaque\": false,\n    \"created_at\": \"2025-07-08T23:35:48.816Z\",\n    \"updated_at\": \"2025-07-08T23:35:48.816Z\",\n    \"finalidade\": \"Locação\",\n    \"qtd_quartos\": 2,\n    \"qtd_banheiro\": 1,\n    \"qtd_suites\": 2,\n    \"area_construida\": 120,\n    \"qtd_vagas\": 2,\n    \"andar\": 2,\n    \"valor_venda\": 450000,\n    \"valor_locacao\": 8000,\n    \"valor_condominio\": 580,\n    \"end_bairro\": \"Lagoa\",\n    \"end_cidade\": \"Rio de Janeiro\",\n    \"end_estado\": \"RJ\",\n    \"end_cep\": \"22070-900\",\n    \"end_logradouro\": \"Avenida Atlântica\",\n    \"end_numero\": \"568\",\n    \"area_total\": 0,\n    \"caracteristicas\": [\n      \"Sala de estar\",\n      \"Salão de Festas\"\n    ],\n    \"condominio\": 237835,\n    \"data_disponibilidade\": \"2025-08-02\",\n    \"status\": \"Disponível\",\n    \"fotos\": [\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_025_001\",\n        \"url\": \"https://images.unsplash.com/photo-1565183997392-2f6f122e5912?w=800&q=80\",\n        \"descricao\": \"Vista principal do imóvel\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_025_002\",\n        \"url\": \"https://images.unsplash.com/photo-1556909114-f6e7ad7d3136?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_APARTAMENTOS_025_003\",\n        \"url\": \"https://images.unsplash.com/photo-1555041469-a586c61ea9bc?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 3\n      }\n    ]\n  }\n]","[\n  {\n    \"codigo\": \"FAKE_CASAS_001\",\n    \"titulo\": \"Casa Premium - 2 qtos, 220m², 2 vagas\",\n    \"descricao\": \"Imóvel recém-reformado com acabamentos premium e garagem coberta.\",\n    \"categoria\": \"Casa\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"destaque\": false,\n    \"created_at\": \"2025-07-08T23:35:48.816Z\",\n    \"updated_at\": \"2025-07-08T23:35:48.816Z\",\n    \"finalidade\": \"Locação\",\n    \"qtd_quartos\": 2,\n    \"qtd_banheiro\": 4,\n    \"qtd_suites\": 1,\n    \"area_construida\": 220,\n    \"area_terreno\": 250,\n    \"qtd_vagas\": 2,\n    \"valor_venda\": 520000,\n    \"valor_locacao\": 2800,\n    \"end_bairro\": \"Vila Madalena\",\n    \"end_cidade\": \"São Paulo\",\n    \"end_estado\": \"SP\",\n    \"end_cep\": \"01452-000\",\n    \"end_logradouro\": \"Rua Estados Unidos\",\n    \"end_numero\": \"416\",\n    \"area_privativa\": 98.25,\n    \"area_total\": 100,\n    \"caracteristicas\": [\n      \"Sol da tarde\",\n      \"Cerâmica\",\n      \"Sol da manhã\"\n    ],\n    \"condominio\": 237952,\n    \"corretor.codigo\": 908392,\n    \"data_disponibilidade\": \"2025-08-01\",\n    \"status\": \"Disponível\",\n    \"fotos\": [\n      {\n        \"id\": \"FAKE_FOTO_FAKE_CASAS_001_001\",\n        \"url\": \"https://images.unsplash.com/photo-1570129477492-45c003edd2be?w=800&q=80\",\n        \"descricao\": \"Vista principal do imóvel\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_CASAS_001_002\",\n        \"url\": \"https://images.unsplash.com/photo-1583608205776-bfd35f0d9f83?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_CASAS_001_003\",\n        \"url\": \"https://images.unsplash.com/photo-1583608205776-bfd35f0d9f83?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 3\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_CASAS_001_004\",\n        \"url\": \"https://images.unsplash.com/photo-1555041469-a586c61ea9bc?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 4\n      }\n    ]\n  },\n  {\n    \"codigo\": \"FAKE_CASAS_002\",\n    \"titulo\": \"Casa Premium - 4 qtos, 120m², 3 vagas\",\n    \"descricao\": \"Casa moderna com piscina, churrasqueira e jardim paisagístico.\",\n    \"categoria\": \"Casa\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"destaque\": false,\n    \"created_at\": \"2025-07-08T23:35:48.816Z\",\n    \"updated_at\": \"2025-07-08T23:35:48.816Z\",\n    \"finalidade\": \"Venda\",\n    \"qtd_quartos\": 4,\n    \"qtd_banheiro\": 4,\n    \"qtd_suites\": 3,\n    \"area_construida\": 120,\n    \"area_terreno\": 600,\n    \"qtd_vagas\": 3,\n    \"valor_venda\": 850000,\n    \"valor_locacao\": 4500,\n    \"end_bairro\": \"Vila Madalena\",\n    \"end_cidade\": \"São Paulo\",\n    \"end_estado\": \"SP\",\n    \"end_cep\": \"01452-000\",\n    \"end_logradouro\": \"Rua Estados Unidos\",\n    \"end_numero\": \"956\",\n    \"observacoes\": \"Amplo quintal com área gourmet\",\n    \"data_disponibilidade\": \"2025-08-04\",\n    \"status\": \"Disponível\",\n    \"fotos\": [\n      {\n        \"id\": \"FAKE_FOTO_FAKE_CASAS_002_001\",\n        \"url\": \"https://images.unsplash.com/photo-1512917774080-9991f1c4c750?w=800&q=80\",\n        \"descricao\": \"Vista principal do imóvel\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_CASAS_002_002\",\n        \"url\": \"https://images.unsplash.com/photo-1583608205776-bfd35f0d9f83?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_CASAS_002_003\",\n        \"url\": \"https://images.unsplash.com/photo-1512917774080-9991f1c4c750?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 3\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_CASAS_002_004\",\n        \"url\": \"https://images.unsplash.com/photo-1583608205776-bfd35f0d9f83?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 4\n      }\n    ]\n  },\n  {\n    \"codigo\": \"FAKE_CASAS_003\",\n    \"titulo\": \"Casa Premium - 2 qtos, 150m², 2 vagas\",\n    \"descricao\": \"Casa moderna com piscina, churrasqueira e jardim paisagístico.\",\n    \"categoria\": \"Casa\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"destaque\": false,\n    \"created_at\": \"2025-07-08T23:35:48.816Z\",\n    \"updated_at\": \"2025-07-08T23:35:48.816Z\",\n    \"finalidade\": \"Venda\",\n    \"qtd_quartos\": 2,\n    \"qtd_banheiro\": 2,\n    \"qtd_suites\": 3,\n    \"area_construida\": 150,\n    \"area_terreno\": 200,\n    \"qtd_vagas\": 2,\n    \"valor_venda\": 280000,\n    \"valor_locacao\": 8500,\n    \"end_bairro\": \"Água Verde\",\n    \"end_cidade\": \"Curitiba\",\n    \"end_estado\": \"PR\",\n    \"end_cep\": \"80060-150\",\n    \"end_logradouro\": \"Rua Comendador Araújo\",\n    \"end_numero\": \"561\",\n    \"codigo_origem\": \"GR0007\",\n    \"condominio\": 237652,\n    \"corretor.codigo\": 908688,\n    \"data_disponibilidade\": \"2025-07-22\",\n    \"status\": \"Disponível\",\n    \"fotos\": [\n      {\n        \"id\": \"FAKE_FOTO_FAKE_CASAS_003_001\",\n        \"url\": \"https://images.unsplash.com/photo-1583608205776-bfd35f0d9f83?w=800&q=80\",\n        \"descricao\": \"Vista principal do imóvel\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_CASAS_003_002\",\n        \"url\": \"https://images.unsplash.com/photo-1556909114-f6e7ad7d3136?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_CASAS_003_003\",\n        \"url\": \"https://images.unsplash.com/photo-1568605114967-8130f3a36994?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 3\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_CASAS_003_004\",\n        \"url\": \"https://images.unsplash.com/photo-1570129477492-45c003edd2be?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 4\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_CASAS_003_005\",\n        \"url\": \"https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 5\n      }\n    ]\n  },\n  {\n    \"codigo\": \"FAKE_CASAS_004\",\n    \"titulo\": \"Casa Premium - 3 qtos, 150m², 3 vagas\",\n    \"descricao\": \"Residência em condomínio fechado com segurança 24h e área de lazer.\",\n    \"categoria\": \"Casa\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"destaque\": false,\n    \"created_at\": \"2025-07-08T23:35:48.816Z\",\n    \"updated_at\": \"2025-07-08T23:35:48.816Z\",\n    \"finalidade\": \"Venda\",\n    \"qtd_quartos\": 3,\n    \"qtd_banheiro\": 3,\n    \"qtd_suites\": 2,\n    \"area_construida\": 150,\n    \"area_terreno\": 300,\n    \"qtd_vagas\": 3,\n    \"valor_venda\": 850000,\n    \"valor_locacao\": 3500,\n    \"end_bairro\": \"Itaim Bibi\",\n    \"end_cidade\": \"São Paulo\",\n    \"end_estado\": \"SP\",\n    \"end_cep\": \"01452-000\",\n    \"end_logradouro\": \"Rua Consolação\",\n    \"end_numero\": \"625\",\n    \"area_total\": 537.6,\n    \"data_disponibilidade\": \"2025-07-27\",\n    \"status\": \"Reservado\",\n    \"fotos\": [\n      {\n        \"id\": \"FAKE_FOTO_FAKE_CASAS_004_001\",\n        \"url\": \"https://images.unsplash.com/photo-1583608205776-bfd35f0d9f83?w=800&q=80\",\n        \"descricao\": \"Vista principal do imóvel\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_CASAS_004_002\",\n        \"url\": \"https://images.unsplash.com/photo-1512917774080-9991f1c4c750?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_CASAS_004_003\",\n        \"url\": \"https://images.unsplash.com/photo-1555041469-a586c61ea9bc?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 3\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_CASAS_004_004\",\n        \"url\": \"https://images.unsplash.com/photo-1570129477492-45c003edd2be?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 4\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_CASAS_004_005\",\n        \"url\": \"https://images.unsplash.com/photo-1556909114-f6e7ad7d3136?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 5\n      }\n    ]\n  },\n  {\n    \"codigo\": \"FAKE_CASAS_005\",\n    \"titulo\": \"Casa Premium - 4 qtos, 180m², 5 vagas\",\n    \"descricao\": \"Imóvel recém-reformado com acabamentos premium e garagem coberta.\",\n    \"categoria\": \"Casa\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"destaque\": false,\n    \"created_at\": \"2025-07-08T23:35:48.816Z\",\n    \"updated_at\": \"2025-07-08T23:35:48.816Z\",\n    \"finalidade\": \"Locação\",\n    \"qtd_quartos\": 4,\n    \"qtd_banheiro\": 2,\n    \"qtd_suites\": 1,\n    \"area_construida\": 180,\n    \"area_terreno\": 250,\n    \"qtd_vagas\": 5,\n    \"valor_venda\": 850000,\n    \"valor_locacao\": 2000,\n    \"end_bairro\": \"Batel\",\n    \"end_cidade\": \"Curitiba\",\n    \"end_estado\": \"PR\",\n    \"end_cep\": \"80420-010\",\n    \"end_logradouro\": \"Rua Comendador Araújo\",\n    \"end_numero\": \"477\",\n    \"data_disponibilidade\": \"2025-07-23\",\n    \"status\": \"Disponível\",\n    \"fotos\": [\n      {\n        \"id\": \"FAKE_FOTO_FAKE_CASAS_005_001\",\n        \"url\": \"https://images.unsplash.com/photo-1570129477492-45c003edd2be?w=800&q=80\",\n        \"descricao\": \"Vista principal do imóvel\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_CASAS_005_002\",\n        \"url\": \"https://images.unsplash.com/photo-1583608205776-bfd35f0d9f83?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_CASAS_005_003\",\n        \"url\": \"https://images.unsplash.com/photo-1583608205776-bfd35f0d9f83?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 3\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_CASAS_005_004\",\n        \"url\": \"https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 4\n      }\n    ]\n  },\n  {\n    \"codigo\": \"FAKE_CASAS_006\",\n    \"titulo\": \"Casa Premium - 6 qtos, 120m², 4 vagas\",\n    \"descricao\": \"Imóvel recém-reformado com acabamentos premium e garagem coberta.\",\n    \"categoria\": \"Casa\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"destaque\": true,\n    \"created_at\": \"2025-07-08T23:35:48.816Z\",\n    \"updated_at\": \"2025-07-08T23:35:48.816Z\",\n    \"finalidade\": \"Locação\",\n    \"qtd_quartos\": 6,\n    \"qtd_banheiro\": 5,\n    \"qtd_suites\": 2,\n    \"area_construida\": 120,\n    \"area_terreno\": 200,\n    \"qtd_vagas\": 4,\n    \"valor_venda\": 380000,\n    \"valor_locacao\": 6000,\n    \"end_bairro\": \"Leblon\",\n    \"end_cidade\": \"Rio de Janeiro\",\n    \"end_estado\": \"RJ\",\n    \"end_cep\": \"22250-040\",\n    \"end_logradouro\": \"Rua Barata Ribeiro\",\n    \"end_numero\": \"138\",\n    \"corretor.codigo\": 913153,\n    \"data_disponibilidade\": \"2025-07-16\",\n    \"status\": \"Disponível\",\n    \"fotos\": [\n      {\n        \"id\": \"FAKE_FOTO_FAKE_CASAS_006_001\",\n        \"url\": \"https://images.unsplash.com/photo-1570129477492-45c003edd2be?w=800&q=80\",\n        \"descricao\": \"Vista principal do imóvel\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_CASAS_006_002\",\n        \"url\": \"https://images.unsplash.com/photo-1568605114967-8130f3a36994?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_CASAS_006_003\",\n        \"url\": \"https://images.unsplash.com/photo-1583608205776-bfd35f0d9f83?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 3\n      }\n    ]\n  },\n  {\n    \"codigo\": \"FAKE_CASAS_007\",\n    \"titulo\": \"Casa Premium - 4 qtos, 280m², 2 vagas\",\n    \"descricao\": \"Casa térrea com quintal amplo, ideal para família com crianças e pets.\",\n    \"categoria\": \"Casa\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"destaque\": false,\n    \"created_at\": \"2025-07-08T23:35:48.816Z\",\n    \"updated_at\": \"2025-07-08T23:35:48.816Z\",\n    \"finalidade\": \"Venda\",\n    \"qtd_quartos\": 4,\n    \"qtd_banheiro\": 5,\n    \"qtd_suites\": 2,\n    \"area_construida\": 280,\n    \"area_terreno\": 200,\n    \"qtd_vagas\": 2,\n    \"valor_venda\": 850000,\n    \"valor_locacao\": 6000,\n    \"end_bairro\": \"Brooklin\",\n    \"end_cidade\": \"São Paulo\",\n    \"end_estado\": \"SP\",\n    \"end_cep\": \"04094-050\",\n    \"end_logradouro\": \"Rua Consolação\",\n    \"end_numero\": \"443\",\n    \"area_total\": 100,\n    \"caracteristicas\": [\n      \"Porcelanato\",\n      \"Área de serviço\"\n    ],\n    \"corretor.codigo\": 908410,\n    \"data_disponibilidade\": \"2025-08-01\",\n    \"status\": \"Disponível\",\n    \"fotos\": [\n      {\n        \"id\": \"FAKE_FOTO_FAKE_CASAS_007_001\",\n        \"url\": \"https://images.unsplash.com/photo-1512917774080-9991f1c4c750?w=800&q=80\",\n        \"descricao\": \"Vista principal do imóvel\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_CASAS_007_002\",\n        \"url\": \"https://images.unsplash.com/photo-1568605114967-8130f3a36994?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_CASAS_007_003\",\n        \"url\": \"https://images.unsplash.com/photo-1570129477492-45c003edd2be?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 3\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_CASAS_007_004\",\n        \"url\": \"https://images.unsplash.com/photo-1570129477492-45c003edd2be?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 4\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_CASAS_007_005\",\n        \"url\": \"https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 5\n      }\n    ]\n  },\n  {\n    \"codigo\": \"FAKE_CASAS_008\",\n    \"titulo\": \"Casa Premium - 3 qtos, 180m², 3 vagas\",\n    \"descricao\": \"Casa moderna com piscina, churrasqueira e jardim paisagístico.\",\n    \"categoria\": \"Casa\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"destaque\": false,\n    \"created_at\": \"2025-07-08T23:35:48.816Z\",\n    \"updated_at\": \"2025-07-08T23:35:48.816Z\",\n    \"finalidade\": \"Locação\",\n    \"qtd_quartos\": 3,\n    \"qtd_banheiro\": 2,\n    \"qtd_suites\": 3,\n    \"area_construida\": 180,\n    \"area_terreno\": 1000,\n    \"qtd_vagas\": 3,\n    \"valor_venda\": 280000,\n    \"valor_locacao\": 8500,\n    \"end_bairro\": \"Lagoa\",\n    \"end_cidade\": \"Rio de Janeiro\",\n    \"end_estado\": \"RJ\",\n    \"end_cep\": \"22640-100\",\n    \"end_logradouro\": \"Rua Barata Ribeiro\",\n    \"end_numero\": \"648\",\n    \"condominio\": 237321,\n    \"observacoes\": \"Amplo quintal com área gourmet\",\n    \"data_disponibilidade\": \"2025-08-01\",\n    \"status\": \"Disponível\",\n    \"fotos\": [\n      {\n        \"id\": \"FAKE_FOTO_FAKE_CASAS_008_001\",\n        \"url\": \"https://images.unsplash.com/photo-1570129477492-45c003edd2be?w=800&q=80\",\n        \"descricao\": \"Vista principal do imóvel\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_CASAS_008_002\",\n        \"url\": \"https://images.unsplash.com/photo-1570129477492-45c003edd2be?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_CASAS_008_003\",\n        \"url\": \"https://images.unsplash.com/photo-1583608205776-bfd35f0d9f83?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 3\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_CASAS_008_004\",\n        \"url\": \"https://images.unsplash.com/photo-1555041469-a586c61ea9bc?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 4\n      }\n    ]\n  },\n  {\n    \"codigo\": \"FAKE_CASAS_009\",\n    \"titulo\": \"Casa Premium - 2 qtos, 120m², 5 vagas\",\n    \"descricao\": \"Residência em condomínio fechado com segurança 24h e área de lazer.\",\n    \"categoria\": \"Casa\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"destaque\": false,\n    \"created_at\": \"2025-07-08T23:35:48.816Z\",\n    \"updated_at\": \"2025-07-08T23:35:48.816Z\",\n    \"finalidade\": \"Locação\",\n    \"qtd_quartos\": 2,\n    \"qtd_banheiro\": 4,\n    \"qtd_suites\": 4,\n    \"area_construida\": 120,\n    \"area_terreno\": 400,\n    \"qtd_vagas\": 5,\n    \"valor_venda\": 1800000,\n    \"valor_locacao\": 3500,\n    \"end_bairro\": \"Copacabana\",\n    \"end_cidade\": \"Rio de Janeiro\",\n    \"end_estado\": \"RJ\",\n    \"end_cep\": \"22421-030\",\n    \"end_logradouro\": \"Avenida das Américas\",\n    \"end_numero\": \"325\",\n    \"codigo_origem\": \"GR0007\",\n    \"condominio\": 237224,\n    \"corretor.codigo\": 908381,\n    \"data_disponibilidade\": \"2025-07-24\",\n    \"status\": \"Disponível\",\n    \"fotos\": [\n      {\n        \"id\": \"FAKE_FOTO_FAKE_CASAS_009_001\",\n        \"url\": \"https://images.unsplash.com/photo-1568605114967-8130f3a36994?w=800&q=80\",\n        \"descricao\": \"Vista principal do imóvel\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_CASAS_009_002\",\n        \"url\": \"https://images.unsplash.com/photo-1512917774080-9991f1c4c750?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_CASAS_009_003\",\n        \"url\": \"https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 3\n      }\n    ]\n  },\n  {\n    \"codigo\": \"FAKE_CASAS_010\",\n    \"titulo\": \"Casa Premium - 2 qtos, 80m², 2 vagas\",\n    \"descricao\": \"Residência em condomínio fechado com segurança 24h e área de lazer.\",\n    \"categoria\": \"Casa\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"destaque\": false,\n    \"created_at\": \"2025-07-08T23:35:48.816Z\",\n    \"updated_at\": \"2025-07-08T23:35:48.816Z\",\n    \"finalidade\": \"Venda\",\n    \"qtd_quartos\": 2,\n    \"qtd_banheiro\": 5,\n    \"qtd_suites\": 1,\n    \"area_construida\": 80,\n    \"area_terreno\": 250,\n    \"qtd_vagas\": 2,\n    \"valor_venda\": 280000,\n    \"valor_locacao\": 2000,\n    \"end_bairro\": \"Santa Felicidade\",\n    \"end_cidade\": \"Curitiba\",\n    \"end_estado\": \"PR\",\n    \"end_cep\": \"82010-020\",\n    \"end_logradouro\": \"Rua XV de Novembro\",\n    \"end_numero\": \"620\",\n    \"area_total\": 155,\n    \"data_disponibilidade\": \"2025-07-16\",\n    \"status\": \"Disponível\",\n    \"fotos\": [\n      {\n        \"id\": \"FAKE_FOTO_FAKE_CASAS_010_001\",\n        \"url\": \"https://images.unsplash.com/photo-1568605114967-8130f3a36994?w=800&q=80\",\n        \"descricao\": \"Vista principal do imóvel\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_CASAS_010_002\",\n        \"url\": \"https://images.unsplash.com/photo-1555041469-a586c61ea9bc?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_CASAS_010_003\",\n        \"url\": \"https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 3\n      }\n    ]\n  },\n  {\n    \"codigo\": \"FAKE_CASAS_011\",\n    \"titulo\": \"Casa Premium - 5 qtos, 280m², 6 vagas\",\n    \"descricao\": \"Casa moderna com piscina, churrasqueira e jardim paisagístico.\",\n    \"categoria\": \"Casa\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"destaque\": false,\n    \"created_at\": \"2025-07-08T23:35:48.816Z\",\n    \"updated_at\": \"2025-07-08T23:35:48.816Z\",\n    \"finalidade\": \"Venda\",\n    \"qtd_quartos\": 5,\n    \"qtd_banheiro\": 4,\n    \"qtd_suites\": 1,\n    \"area_construida\": 280,\n    \"area_terreno\": 250,\n    \"qtd_vagas\": 6,\n    \"valor_venda\": 280000,\n    \"valor_locacao\": 3500,\n    \"end_bairro\": \"Brooklin\",\n    \"end_cidade\": \"São Paulo\",\n    \"end_estado\": \"SP\",\n    \"end_cep\": \"01401-001\",\n    \"end_logradouro\": \"Rua Oscar Freire\",\n    \"end_numero\": \"81\",\n    \"corretor.codigo\": 908218,\n    \"data_disponibilidade\": \"2025-08-06\",\n    \"status\": \"Disponível\",\n    \"fotos\": [\n      {\n        \"id\": \"FAKE_FOTO_FAKE_CASAS_011_001\",\n        \"url\": \"https://images.unsplash.com/photo-1570129477492-45c003edd2be?w=800&q=80\",\n        \"descricao\": \"Vista principal do imóvel\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_CASAS_011_002\",\n        \"url\": \"https://images.unsplash.com/photo-1555041469-a586c61ea9bc?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_CASAS_011_003\",\n        \"url\": \"https://images.unsplash.com/photo-1556909114-f6e7ad7d3136?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 3\n      }\n    ]\n  },\n  {\n    \"codigo\": \"FAKE_CASAS_012\",\n    \"titulo\": \"Casa Premium - 5 qtos, 350m², 5 vagas\",\n    \"descricao\": \"Imóvel recém-reformado com acabamentos premium e garagem coberta.\",\n    \"categoria\": \"Casa\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"destaque\": false,\n    \"created_at\": \"2025-07-08T23:35:48.816Z\",\n    \"updated_at\": \"2025-07-08T23:35:48.816Z\",\n    \"finalidade\": \"Venda\",\n    \"qtd_quartos\": 5,\n    \"qtd_banheiro\": 4,\n    \"qtd_suites\": 3,\n    \"area_construida\": 350,\n    \"area_terreno\": 500,\n    \"qtd_vagas\": 5,\n    \"valor_venda\": 680000,\n    \"valor_locacao\": 4500,\n    \"end_bairro\": \"Leblon\",\n    \"end_cidade\": \"Rio de Janeiro\",\n    \"end_estado\": \"RJ\",\n    \"end_cep\": \"22071-900\",\n    \"end_logradouro\": \"Rua Visconde de Pirajá\",\n    \"end_numero\": \"162\",\n    \"area_privativa\": 114,\n    \"categoria_imovel\": \"Padrão\",\n    \"corretor.codigo\": 913153,\n    \"observacoes\": \"Amplo quintal com área gourmet\",\n    \"data_disponibilidade\": \"2025-07-22\",\n    \"status\": \"Disponível\",\n    \"fotos\": [\n      {\n        \"id\": \"FAKE_FOTO_FAKE_CASAS_012_001\",\n        \"url\": \"https://images.unsplash.com/photo-1512917774080-9991f1c4c750?w=800&q=80\",\n        \"descricao\": \"Vista principal do imóvel\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_CASAS_012_002\",\n        \"url\": \"https://images.unsplash.com/photo-1512917774080-9991f1c4c750?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_CASAS_012_003\",\n        \"url\": \"https://images.unsplash.com/photo-1555041469-a586c61ea9bc?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 3\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_CASAS_012_004\",\n        \"url\": \"https://images.unsplash.com/photo-1512917774080-9991f1c4c750?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 4\n      }\n    ]\n  },\n  {\n    \"codigo\": \"FAKE_CASAS_013\",\n    \"titulo\": \"Casa Premium - 2 qtos, 280m², 4 vagas\",\n    \"descricao\": \"Casa térrea com quintal amplo, ideal para família com crianças e pets.\",\n    \"categoria\": \"Casa\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"destaque\": false,\n    \"created_at\": \"2025-07-08T23:35:48.816Z\",\n    \"updated_at\": \"2025-07-08T23:35:48.816Z\",\n    \"finalidade\": \"Locação\",\n    \"qtd_quartos\": 2,\n    \"qtd_banheiro\": 4,\n    \"qtd_suites\": 2,\n    \"area_construida\": 280,\n    \"area_terreno\": 400,\n    \"qtd_vagas\": 4,\n    \"valor_venda\": 1200000,\n    \"valor_locacao\": 2800,\n    \"end_bairro\": \"Batel\",\n    \"end_cidade\": \"Curitiba\",\n    \"end_estado\": \"PR\",\n    \"end_cep\": \"80420-010\",\n    \"end_logradouro\": \"Avenida Batel\",\n    \"end_numero\": \"296\",\n    \"categoria_imovel\": \"Padrão\",\n    \"codigo_origem\": \"TE0571\",\n    \"corretor.codigo\": 908392,\n    \"data_disponibilidade\": \"2025-07-14\",\n    \"status\": \"Disponível\",\n    \"fotos\": [\n      {\n        \"id\": \"FAKE_FOTO_FAKE_CASAS_013_001\",\n        \"url\": \"https://images.unsplash.com/photo-1583608205776-bfd35f0d9f83?w=800&q=80\",\n        \"descricao\": \"Vista principal do imóvel\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_CASAS_013_002\",\n        \"url\": \"https://images.unsplash.com/photo-1556909114-f6e7ad7d3136?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_CASAS_013_003\",\n        \"url\": \"https://images.unsplash.com/photo-1570129477492-45c003edd2be?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 3\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_CASAS_013_004\",\n        \"url\": \"https://images.unsplash.com/photo-1570129477492-45c003edd2be?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 4\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_CASAS_013_005\",\n        \"url\": \"https://images.unsplash.com/photo-1570129477492-45c003edd2be?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 5\n      }\n    ]\n  },\n  {\n    \"codigo\": \"FAKE_CASAS_014\",\n    \"titulo\": \"Casa Premium - 2 qtos, 220m², 5 vagas\",\n    \"descricao\": \"Casa moderna com piscina, churrasqueira e jardim paisagístico.\",\n    \"categoria\": \"Casa\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"destaque\": false,\n    \"created_at\": \"2025-07-08T23:35:48.816Z\",\n    \"updated_at\": \"2025-07-08T23:35:48.816Z\",\n    \"finalidade\": \"Venda\",\n    \"qtd_quartos\": 2,\n    \"qtd_banheiro\": 2,\n    \"qtd_suites\": 3,\n    \"area_construida\": 220,\n    \"area_terreno\": 1000,\n    \"qtd_vagas\": 5,\n    \"valor_venda\": 520000,\n    \"valor_locacao\": 3500,\n    \"end_bairro\": \"Lagoa\",\n    \"end_cidade\": \"Rio de Janeiro\",\n    \"end_estado\": \"RJ\",\n    \"end_cep\": \"22640-100\",\n    \"end_logradouro\": \"Avenida Atlântica\",\n    \"end_numero\": \"229\",\n    \"area_total\": 518,\n    \"codigo_origem\": \"AR0015\",\n    \"corretor.codigo\": 908688,\n    \"observacoes\": \"Amplo quintal com área gourmet\",\n    \"data_disponibilidade\": \"2025-07-12\",\n    \"status\": \"Disponível\",\n    \"fotos\": [\n      {\n        \"id\": \"FAKE_FOTO_FAKE_CASAS_014_001\",\n        \"url\": \"https://images.unsplash.com/photo-1570129477492-45c003edd2be?w=800&q=80\",\n        \"descricao\": \"Vista principal do imóvel\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_CASAS_014_002\",\n        \"url\": \"https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_CASAS_014_003\",\n        \"url\": \"https://images.unsplash.com/photo-1570129477492-45c003edd2be?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 3\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_CASAS_014_004\",\n        \"url\": \"https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 4\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_CASAS_014_005\",\n        \"url\": \"https://images.unsplash.com/photo-1570129477492-45c003edd2be?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 5\n      }\n    ]\n  },\n  {\n    \"codigo\": \"FAKE_CASAS_015\",\n    \"titulo\": \"Casa Premium - 5 qtos, 450m², 4 vagas\",\n    \"descricao\": \"Imóvel recém-reformado com acabamentos premium e garagem coberta.\",\n    \"categoria\": \"Casa\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"destaque\": false,\n    \"created_at\": \"2025-07-08T23:35:48.816Z\",\n    \"updated_at\": \"2025-07-08T23:35:48.816Z\",\n    \"finalidade\": \"Venda\",\n    \"qtd_quartos\": 5,\n    \"qtd_banheiro\": 3,\n    \"qtd_suites\": 4,\n    \"area_construida\": 450,\n    \"area_terreno\": 200,\n    \"qtd_vagas\": 4,\n    \"valor_venda\": 680000,\n    \"valor_locacao\": 2800,\n    \"end_bairro\": \"Brooklin\",\n    \"end_cidade\": \"São Paulo\",\n    \"end_estado\": \"SP\",\n    \"end_cep\": \"01452-000\",\n    \"end_logradouro\": \"Avenida Paulista\",\n    \"end_numero\": \"745\",\n    \"area_privativa\": 83.48,\n    \"area_total\": 100,\n    \"categoria_imovel\": \"Padrão\",\n    \"data_disponibilidade\": \"2025-07-15\",\n    \"status\": \"Reservado\",\n    \"fotos\": [\n      {\n        \"id\": \"FAKE_FOTO_FAKE_CASAS_015_001\",\n        \"url\": \"https://images.unsplash.com/photo-1512917774080-9991f1c4c750?w=800&q=80\",\n        \"descricao\": \"Vista principal do imóvel\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_CASAS_015_002\",\n        \"url\": \"https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_CASAS_015_003\",\n        \"url\": \"https://images.unsplash.com/photo-1556909114-f6e7ad7d3136?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 3\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_CASAS_015_004\",\n        \"url\": \"https://images.unsplash.com/photo-1570129477492-45c003edd2be?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 4\n      }\n    ]\n  },\n  {\n    \"codigo\": \"FAKE_CASAS_016\",\n    \"titulo\": \"Casa Premium - 2 qtos, 450m², 4 vagas\",\n    \"descricao\": \"Residência em condomínio fechado com segurança 24h e área de lazer.\",\n    \"categoria\": \"Casa\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"destaque\": false,\n    \"created_at\": \"2025-07-08T23:35:48.816Z\",\n    \"updated_at\": \"2025-07-08T23:35:48.816Z\",\n    \"finalidade\": \"Locação\",\n    \"qtd_quartos\": 2,\n    \"qtd_banheiro\": 2,\n    \"qtd_suites\": 4,\n    \"area_construida\": 450,\n    \"area_terreno\": 600,\n    \"qtd_vagas\": 4,\n    \"valor_venda\": 850000,\n    \"valor_locacao\": 2800,\n    \"end_bairro\": \"Santa Felicidade\",\n    \"end_cidade\": \"Curitiba\",\n    \"end_estado\": \"PR\",\n    \"end_cep\": \"80730-030\",\n    \"end_logradouro\": \"Rua XV de Novembro\",\n    \"end_numero\": \"371\",\n    \"area_total\": 537.6,\n    \"caracteristicas\": [\n      \"Entrada Lateral\"\n    ],\n    \"categoria_imovel\": \"Padrão\",\n    \"corretor.codigo\": 1227644,\n    \"observacoes\": \"Amplo quintal com área gourmet\",\n    \"data_disponibilidade\": \"2025-07-24\",\n    \"status\": \"Disponível\",\n    \"fotos\": [\n      {\n        \"id\": \"FAKE_FOTO_FAKE_CASAS_016_001\",\n        \"url\": \"https://images.unsplash.com/photo-1570129477492-45c003edd2be?w=800&q=80\",\n        \"descricao\": \"Vista principal do imóvel\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_CASAS_016_002\",\n        \"url\": \"https://images.unsplash.com/photo-1556909114-f6e7ad7d3136?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_CASAS_016_003\",\n        \"url\": \"https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 3\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_CASAS_016_004\",\n        \"url\": \"https://images.unsplash.com/photo-1570129477492-45c003edd2be?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 4\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_CASAS_016_005\",\n        \"url\": \"https://images.unsplash.com/photo-1555041469-a586c61ea9bc?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 5\n      }\n    ]\n  },\n  {\n    \"codigo\": \"FAKE_CASAS_017\",\n    \"titulo\": \"Casa Premium - 6 qtos, 350m², 5 vagas\",\n    \"descricao\": \"Imóvel recém-reformado com acabamentos premium e garagem coberta.\",\n    \"categoria\": \"Casa\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"destaque\": false,\n    \"created_at\": \"2025-07-08T23:35:48.816Z\",\n    \"updated_at\": \"2025-07-08T23:35:48.816Z\",\n    \"finalidade\": \"Locação\",\n    \"qtd_quartos\": 6,\n    \"qtd_banheiro\": 2,\n    \"qtd_suites\": 4,\n    \"area_construida\": 350,\n    \"area_terreno\": 500,\n    \"qtd_vagas\": 5,\n    \"valor_venda\": 280000,\n    \"valor_locacao\": 2000,\n    \"end_bairro\": \"Santa Felicidade\",\n    \"end_cidade\": \"Curitiba\",\n    \"end_estado\": \"PR\",\n    \"end_cep\": \"82010-020\",\n    \"end_logradouro\": \"Rua Comendador Araújo\",\n    \"end_numero\": \"320\",\n    \"area_total\": 100,\n    \"categoria_imovel\": \"Padrão\",\n    \"codigo_origem\": \"TE0571\",\n    \"condominio\": 237952,\n    \"observacoes\": \"Amplo quintal com área gourmet\",\n    \"data_disponibilidade\": \"2025-07-12\",\n    \"status\": \"Disponível\",\n    \"fotos\": [\n      {\n        \"id\": \"FAKE_FOTO_FAKE_CASAS_017_001\",\n        \"url\": \"https://images.unsplash.com/photo-1583608205776-bfd35f0d9f83?w=800&q=80\",\n        \"descricao\": \"Vista principal do imóvel\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_CASAS_017_002\",\n        \"url\": \"https://images.unsplash.com/photo-1570129477492-45c003edd2be?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_CASAS_017_003\",\n        \"url\": \"https://images.unsplash.com/photo-1570129477492-45c003edd2be?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 3\n      }\n    ]\n  },\n  {\n    \"codigo\": \"FAKE_CASAS_018\",\n    \"titulo\": \"Casa Premium - 3 qtos, 80m², 6 vagas\",\n    \"descricao\": \"Casa térrea com quintal amplo, ideal para família com crianças e pets.\",\n    \"categoria\": \"Casa\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"destaque\": false,\n    \"created_at\": \"2025-07-08T23:35:48.816Z\",\n    \"updated_at\": \"2025-07-08T23:35:48.816Z\",\n    \"finalidade\": \"Locação\",\n    \"qtd_quartos\": 3,\n    \"qtd_banheiro\": 2,\n    \"qtd_suites\": 2,\n    \"area_construida\": 80,\n    \"area_terreno\": 500,\n    \"qtd_vagas\": 6,\n    \"valor_venda\": 520000,\n    \"valor_locacao\": 4500,\n    \"end_bairro\": \"Flamengo\",\n    \"end_cidade\": \"Rio de Janeiro\",\n    \"end_estado\": \"RJ\",\n    \"end_cep\": \"22070-900\",\n    \"end_logradouro\": \"Avenida das Américas\",\n    \"end_numero\": \"942\",\n    \"area_total\": 5782,\n    \"categoria_imovel\": \"Padrão\",\n    \"condominio\": 237652,\n    \"corretor.codigo\": 908688,\n    \"observacoes\": \"Amplo quintal com área gourmet\",\n    \"data_disponibilidade\": \"2025-07-23\",\n    \"status\": \"Disponível\",\n    \"fotos\": [\n      {\n        \"id\": \"FAKE_FOTO_FAKE_CASAS_018_001\",\n        \"url\": \"https://images.unsplash.com/photo-1583608205776-bfd35f0d9f83?w=800&q=80\",\n        \"descricao\": \"Vista principal do imóvel\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_CASAS_018_002\",\n        \"url\": \"https://images.unsplash.com/photo-1555041469-a586c61ea9bc?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_CASAS_018_003\",\n        \"url\": \"https://images.unsplash.com/photo-1555041469-a586c61ea9bc?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 3\n      }\n    ]\n  },\n  {\n    \"codigo\": \"FAKE_CASAS_019\",\n    \"titulo\": \"Casa Premium - 5 qtos, 450m², 5 vagas\",\n    \"descricao\": \"Imóvel recém-reformado com acabamentos premium e garagem coberta.\",\n    \"categoria\": \"Casa\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"destaque\": false,\n    \"created_at\": \"2025-07-08T23:35:48.816Z\",\n    \"updated_at\": \"2025-07-08T23:35:48.816Z\",\n    \"finalidade\": \"Venda\",\n    \"qtd_quartos\": 5,\n    \"qtd_banheiro\": 4,\n    \"qtd_suites\": 3,\n    \"area_construida\": 450,\n    \"area_terreno\": 200,\n    \"qtd_vagas\": 5,\n    \"valor_venda\": 680000,\n    \"valor_locacao\": 2800,\n    \"end_bairro\": \"Copacabana\",\n    \"end_cidade\": \"Rio de Janeiro\",\n    \"end_estado\": \"RJ\",\n    \"end_cep\": \"22070-900\",\n    \"end_logradouro\": \"Avenida das Américas\",\n    \"end_numero\": \"379\",\n    \"codigo_origem\": \"SO0609\",\n    \"condominio\": 237321,\n    \"data_disponibilidade\": \"2025-07-25\",\n    \"status\": \"Reservado\",\n    \"fotos\": [\n      {\n        \"id\": \"FAKE_FOTO_FAKE_CASAS_019_001\",\n        \"url\": \"https://images.unsplash.com/photo-1583608205776-bfd35f0d9f83?w=800&q=80\",\n        \"descricao\": \"Vista principal do imóvel\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_CASAS_019_002\",\n        \"url\": \"https://images.unsplash.com/photo-1556909114-f6e7ad7d3136?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_CASAS_019_003\",\n        \"url\": \"https://images.unsplash.com/photo-1555041469-a586c61ea9bc?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 3\n      }\n    ]\n  },\n  {\n    \"codigo\": \"FAKE_CASAS_020\",\n    \"titulo\": \"Casa Premium - 2 qtos, 280m², 3 vagas\",\n    \"descricao\": \"Residência em condomínio fechado com segurança 24h e área de lazer.\",\n    \"categoria\": \"Casa\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"destaque\": false,\n    \"created_at\": \"2025-07-08T23:35:48.816Z\",\n    \"updated_at\": \"2025-07-08T23:35:48.816Z\",\n    \"finalidade\": \"Venda\",\n    \"qtd_quartos\": 2,\n    \"qtd_banheiro\": 5,\n    \"qtd_suites\": 3,\n    \"area_construida\": 280,\n    \"area_terreno\": 600,\n    \"qtd_vagas\": 3,\n    \"valor_venda\": 850000,\n    \"valor_locacao\": 2000,\n    \"end_bairro\": \"Itaim Bibi\",\n    \"end_cidade\": \"São Paulo\",\n    \"end_estado\": \"SP\",\n    \"end_cep\": \"04038-001\",\n    \"end_logradouro\": \"Rua Estados Unidos\",\n    \"end_numero\": \"525\",\n    \"area_privativa\": 100,\n    \"caracteristicas\": [\n      \"Circuito Interno TV\"\n    ],\n    \"condominio\": 237318,\n    \"observacoes\": \"Amplo quintal com área gourmet\",\n    \"data_disponibilidade\": \"2025-07-08\",\n    \"status\": \"Reservado\",\n    \"fotos\": [\n      {\n        \"id\": \"FAKE_FOTO_FAKE_CASAS_020_001\",\n        \"url\": \"https://images.unsplash.com/photo-1583608205776-bfd35f0d9f83?w=800&q=80\",\n        \"descricao\": \"Vista principal do imóvel\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_CASAS_020_002\",\n        \"url\": \"https://images.unsplash.com/photo-1555041469-a586c61ea9bc?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_CASAS_020_003\",\n        \"url\": \"https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 3\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_CASAS_020_004\",\n        \"url\": \"https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 4\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_CASAS_020_005\",\n        \"url\": \"https://images.unsplash.com/photo-1555041469-a586c61ea9bc?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 5\n      }\n    ]\n  }\n]","[\n  {\n    \"codigo\": \"FAKE_COMERCIAIS_001\",\n    \"titulo\": \"Comerciai Premium - 25m², 4 vagas\",\n    \"descricao\": \"Imóvel com excelente localização, próximo a shopping, escolas e transporte público.\",\n    \"categoria\": \"Comercial\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"created_at\": \"2025-07-08T23:35:48.816Z\",\n    \"updated_at\": \"2025-07-08T23:35:48.816Z\",\n    \"finalidade\": \"Locação\",\n    \"area_construida\": 25,\n    \"qtd_banheiro\": 1,\n    \"qtd_vagas\": 4,\n    \"andar\": 1,\n    \"valor_locacao\": 5000,\n    \"valor_venda\": 120000,\n    \"valor_condominio\": 200,\n    \"end_bairro\": \"Leblon\",\n    \"end_cidade\": \"Rio de Janeiro\",\n    \"end_estado\": \"RJ\",\n    \"end_cep\": \"22421-030\",\n    \"end_logradouro\": \"Avenida Atlântica\",\n    \"end_numero\": \"474\",\n    \"area_privativa\": 0,\n    \"area_total\": 518,\n    \"caracteristicas\": [\n      \"Cerâmica\"\n    ],\n    \"data_disponibilidade\": \"2025-07-31\",\n    \"status\": \"Disponível\",\n    \"fotos\": [\n      {\n        \"id\": \"FAKE_FOTO_FAKE_COMERCIAIS_001_001\",\n        \"url\": \"https://images.unsplash.com/photo-1497366811353-6870744d04b2?w=800&q=80\",\n        \"descricao\": \"Vista principal do imóvel\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_COMERCIAIS_001_002\",\n        \"url\": \"https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_COMERCIAIS_001_003\",\n        \"url\": \"https://images.unsplash.com/photo-1497366216548-37526070297c?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 3\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_COMERCIAIS_001_004\",\n        \"url\": \"https://images.unsplash.com/photo-1497366811353-6870744d04b2?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 4\n      }\n    ]\n  },\n  {\n    \"codigo\": \"FAKE_COMERCIAIS_002\",\n    \"titulo\": \"Comerciai Premium - 25m², 5 vagas\",\n    \"descricao\": \"Apartamento decorado pronto para morar, em condomínio com infraestrutura completa.\",\n    \"categoria\": \"Comercial\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"created_at\": \"2025-07-08T23:35:48.816Z\",\n    \"updated_at\": \"2025-07-08T23:35:48.816Z\",\n    \"finalidade\": \"Venda\",\n    \"area_construida\": 25,\n    \"qtd_banheiro\": 3,\n    \"qtd_vagas\": 5,\n    \"andar\": 8,\n    \"valor_locacao\": 5000,\n    \"valor_venda\": 650000,\n    \"valor_condominio\": 2000,\n    \"end_bairro\": \"Morumbi\",\n    \"end_cidade\": \"São Paulo\",\n    \"end_estado\": \"SP\",\n    \"end_cep\": \"01401-001\",\n    \"end_logradouro\": \"Rua Consolação\",\n    \"end_numero\": \"414\",\n    \"area_privativa\": 34,\n    \"caracteristicas\": [\n      \"Portão Eletrônico\",\n      \"Corredor\",\n      \"Cozinha\"\n    ],\n    \"condominio\": 237835,\n    \"corretor.codigo\": 1227644,\n    \"data_disponibilidade\": \"2025-07-22\",\n    \"status\": \"Disponível\",\n    \"fotos\": [\n      {\n        \"id\": \"FAKE_FOTO_FAKE_COMERCIAIS_002_001\",\n        \"url\": \"https://images.unsplash.com/photo-1497366811353-6870744d04b2?w=800&q=80\",\n        \"descricao\": \"Vista principal do imóvel\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_COMERCIAIS_002_002\",\n        \"url\": \"https://images.unsplash.com/photo-1497366216548-37526070297c?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_COMERCIAIS_002_003\",\n        \"url\": \"https://images.unsplash.com/photo-1556909114-f6e7ad7d3136?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 3\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_COMERCIAIS_002_004\",\n        \"url\": \"https://images.unsplash.com/photo-1497366811353-6870744d04b2?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 4\n      }\n    ]\n  },\n  {\n    \"codigo\": \"FAKE_COMERCIAIS_003\",\n    \"titulo\": \"Comerciai Premium - 100m², 3 vagas\",\n    \"descricao\": \"Apartamento decorado pronto para morar, em condomínio com infraestrutura completa.\",\n    \"categoria\": \"Comercial\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"created_at\": \"2025-07-08T23:35:48.816Z\",\n    \"updated_at\": \"2025-07-08T23:35:48.816Z\",\n    \"finalidade\": \"Locação\",\n    \"area_construida\": 100,\n    \"qtd_banheiro\": 2,\n    \"qtd_vagas\": 3,\n    \"andar\": 2,\n    \"valor_locacao\": 1800,\n    \"valor_venda\": 280000,\n    \"valor_condominio\": 200,\n    \"end_bairro\": \"Centro\",\n    \"end_cidade\": \"Curitiba\",\n    \"end_estado\": \"PR\",\n    \"end_cep\": \"80730-030\",\n    \"end_logradouro\": \"Avenida Batel\",\n    \"end_numero\": \"638\",\n    \"caracteristicas\": [\n      \"Horta\",\n      \"Elevador\",\n      \"Pavimentação\"\n    ],\n    \"categoria_imovel\": \"Padrão\",\n    \"data_disponibilidade\": \"2025-08-03\",\n    \"status\": \"Disponível\",\n    \"fotos\": [\n      {\n        \"id\": \"FAKE_FOTO_FAKE_COMERCIAIS_003_001\",\n        \"url\": \"https://images.unsplash.com/photo-1497366216548-37526070297c?w=800&q=80\",\n        \"descricao\": \"Vista principal do imóvel\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_COMERCIAIS_003_002\",\n        \"url\": \"https://images.unsplash.com/photo-1497366811353-6870744d04b2?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_COMERCIAIS_003_003\",\n        \"url\": \"https://images.unsplash.com/photo-1555041469-a586c61ea9bc?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 3\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_COMERCIAIS_003_004\",\n        \"url\": \"https://images.unsplash.com/photo-1462826303086-329426d1aef5?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 4\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_COMERCIAIS_003_005\",\n        \"url\": \"https://images.unsplash.com/photo-1556909114-f6e7ad7d3136?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 5\n      }\n    ]\n  },\n  {\n    \"codigo\": \"FAKE_COMERCIAIS_004\",\n    \"titulo\": \"Comerciai Premium - 75m²\",\n    \"descricao\": \"Imóvel com excelente localização, próximo a shopping, escolas e transporte público.\",\n    \"categoria\": \"Comercial\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"created_at\": \"2025-07-08T23:35:48.817Z\",\n    \"updated_at\": \"2025-07-08T23:35:48.817Z\",\n    \"finalidade\": \"Locação\",\n    \"area_construida\": 75,\n    \"qtd_banheiro\": 4,\n    \"qtd_vagas\": 0,\n    \"andar\": 8,\n    \"valor_locacao\": 2500,\n    \"valor_venda\": 950000,\n    \"valor_condominio\": 2000,\n    \"end_bairro\": \"Itaim Bibi\",\n    \"end_cidade\": \"São Paulo\",\n    \"end_estado\": \"SP\",\n    \"end_cep\": \"01452-000\",\n    \"end_logradouro\": \"Rua Estados Unidos\",\n    \"end_numero\": \"373\",\n    \"area_privativa\": 287,\n    \"area_total\": 100,\n    \"caracteristicas\": [\n      \"Sem mobília\"\n    ],\n    \"corretor.codigo\": 1227644,\n    \"data_disponibilidade\": \"2025-07-13\",\n    \"status\": \"Reservado\",\n    \"fotos\": [\n      {\n        \"id\": \"FAKE_FOTO_FAKE_COMERCIAIS_004_001\",\n        \"url\": \"https://images.unsplash.com/photo-1497366216548-37526070297c?w=800&q=80\",\n        \"descricao\": \"Vista principal do imóvel\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_COMERCIAIS_004_002\",\n        \"url\": \"https://images.unsplash.com/photo-1555041469-a586c61ea9bc?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_COMERCIAIS_004_003\",\n        \"url\": \"https://images.unsplash.com/photo-1555041469-a586c61ea9bc?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 3\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_COMERCIAIS_004_004\",\n        \"url\": \"https://images.unsplash.com/photo-1556909114-f6e7ad7d3136?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 4\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_COMERCIAIS_004_005\",\n        \"url\": \"https://images.unsplash.com/photo-1556909114-f6e7ad7d3136?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 5\n      }\n    ]\n  },\n  {\n    \"codigo\": \"FAKE_COMERCIAIS_005\",\n    \"titulo\": \"Comerciai Premium - 100m²\",\n    \"descricao\": \"Unidade ampla e bem iluminada, com varanda gourmet e área de lazer completa.\",\n    \"categoria\": \"Comercial\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"created_at\": \"2025-07-08T23:35:48.817Z\",\n    \"updated_at\": \"2025-07-08T23:35:48.817Z\",\n    \"finalidade\": \"Venda\",\n    \"area_construida\": 100,\n    \"qtd_banheiro\": 1,\n    \"qtd_vagas\": 0,\n    \"andar\": 3,\n    \"valor_locacao\": 1800,\n    \"valor_venda\": 120000,\n    \"valor_condominio\": 2000,\n    \"end_bairro\": \"Mercês\",\n    \"end_cidade\": \"Curitiba\",\n    \"end_estado\": \"PR\",\n    \"end_cep\": \"80730-030\",\n    \"end_logradouro\": \"Rua XV de Novembro\",\n    \"end_numero\": \"4\",\n    \"area_total\": 307.5,\n    \"caracteristicas\": [\n      \"Em condomínio fechado\",\n      \"Corredor\"\n    ],\n    \"condominio\": 237652,\n    \"corretor.codigo\": 908410,\n    \"data_disponibilidade\": \"2025-08-03\",\n    \"status\": \"Disponível\",\n    \"fotos\": [\n      {\n        \"id\": \"FAKE_FOTO_FAKE_COMERCIAIS_005_001\",\n        \"url\": \"https://images.unsplash.com/photo-1497366811353-6870744d04b2?w=800&q=80\",\n        \"descricao\": \"Vista principal do imóvel\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_COMERCIAIS_005_002\",\n        \"url\": \"https://images.unsplash.com/photo-1462826303086-329426d1aef5?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_COMERCIAIS_005_003\",\n        \"url\": \"https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 3\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_COMERCIAIS_005_004\",\n        \"url\": \"https://images.unsplash.com/photo-1524758631624-e2822e304c36?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 4\n      }\n    ]\n  },\n  {\n    \"codigo\": \"FAKE_COMERCIAIS_006\",\n    \"titulo\": \"Comerciai Premium - 50m², 4 vagas\",\n    \"descricao\": \"Apartamento moderno com acabamentos de primeira linha e vista panorâmica da cidade.\",\n    \"categoria\": \"Comercial\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"created_at\": \"2025-07-08T23:35:48.817Z\",\n    \"updated_at\": \"2025-07-08T23:35:48.817Z\",\n    \"finalidade\": \"Venda\",\n    \"area_construida\": 50,\n    \"qtd_banheiro\": 1,\n    \"qtd_vagas\": 4,\n    \"andar\": 12,\n    \"valor_locacao\": 3500,\n    \"valor_venda\": 650000,\n    \"valor_condominio\": 500,\n    \"end_bairro\": \"Leblon\",\n    \"end_cidade\": \"Rio de Janeiro\",\n    \"end_estado\": \"RJ\",\n    \"end_cep\": \"22250-040\",\n    \"end_logradouro\": \"Rua Barata Ribeiro\",\n    \"end_numero\": \"927\",\n    \"categoria_imovel\": \"Padrão\",\n    \"codigo_origem\": \"TE0573\",\n    \"condominio\": 237652,\n    \"data_disponibilidade\": \"2025-08-05\",\n    \"status\": \"Reservado\",\n    \"fotos\": [\n      {\n        \"id\": \"FAKE_FOTO_FAKE_COMERCIAIS_006_001\",\n        \"url\": \"https://images.unsplash.com/photo-1524758631624-e2822e304c36?w=800&q=80\",\n        \"descricao\": \"Vista principal do imóvel\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_COMERCIAIS_006_002\",\n        \"url\": \"https://images.unsplash.com/photo-1462826303086-329426d1aef5?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_COMERCIAIS_006_003\",\n        \"url\": \"https://images.unsplash.com/photo-1555041469-a586c61ea9bc?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 3\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_COMERCIAIS_006_004\",\n        \"url\": \"https://images.unsplash.com/photo-1462826303086-329426d1aef5?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 4\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_COMERCIAIS_006_005\",\n        \"url\": \"https://images.unsplash.com/photo-1497366216548-37526070297c?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 5\n      }\n    ]\n  },\n  {\n    \"codigo\": \"FAKE_COMERCIAIS_007\",\n    \"titulo\": \"Comerciai Premium - 300m², 4 vagas\",\n    \"descricao\": \"Unidade ampla e bem iluminada, com varanda gourmet e área de lazer completa.\",\n    \"categoria\": \"Comercial\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"created_at\": \"2025-07-08T23:35:48.817Z\",\n    \"updated_at\": \"2025-07-08T23:35:48.817Z\",\n    \"finalidade\": \"Locação\",\n    \"area_construida\": 300,\n    \"qtd_banheiro\": 2,\n    \"qtd_vagas\": 4,\n    \"andar\": 5,\n    \"valor_locacao\": 1200,\n    \"valor_venda\": 420000,\n    \"valor_condominio\": 200,\n    \"end_bairro\": \"Botafogo\",\n    \"end_cidade\": \"Rio de Janeiro\",\n    \"end_estado\": \"RJ\",\n    \"end_cep\": \"22640-100\",\n    \"end_logradouro\": \"Avenida Atlântica\",\n    \"end_numero\": \"816\",\n    \"area_privativa\": 83.48,\n    \"area_total\": 5782,\n    \"caracteristicas\": [\n      \"Recepção\",\n      \"Porcelanato\",\n      \"Armário Cozinha\"\n    ],\n    \"codigo_origem\": \"TE0573\",\n    \"corretor.codigo\": 908218,\n    \"data_disponibilidade\": \"2025-07-12\",\n    \"status\": \"Disponível\",\n    \"fotos\": [\n      {\n        \"id\": \"FAKE_FOTO_FAKE_COMERCIAIS_007_001\",\n        \"url\": \"https://images.unsplash.com/photo-1497366216548-37526070297c?w=800&q=80\",\n        \"descricao\": \"Vista principal do imóvel\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_COMERCIAIS_007_002\",\n        \"url\": \"https://images.unsplash.com/photo-1555041469-a586c61ea9bc?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_COMERCIAIS_007_003\",\n        \"url\": \"https://images.unsplash.com/photo-1556909114-f6e7ad7d3136?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 3\n      }\n    ]\n  },\n  {\n    \"codigo\": \"FAKE_COMERCIAIS_008\",\n    \"titulo\": \"Comerciai Premium - 50m², 5 vagas\",\n    \"descricao\": \"Imóvel com excelente localização, próximo a shopping, escolas e transporte público.\",\n    \"categoria\": \"Comercial\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"created_at\": \"2025-07-08T23:35:48.817Z\",\n    \"updated_at\": \"2025-07-08T23:35:48.817Z\",\n    \"finalidade\": \"Venda\",\n    \"area_construida\": 50,\n    \"qtd_banheiro\": 1,\n    \"qtd_vagas\": 5,\n    \"andar\": 3,\n    \"valor_locacao\": 12000,\n    \"valor_venda\": 950000,\n    \"valor_condominio\": 200,\n    \"end_bairro\": \"Cabral\",\n    \"end_cidade\": \"Curitiba\",\n    \"end_estado\": \"PR\",\n    \"end_cep\": \"80420-010\",\n    \"end_logradouro\": \"Rua XV de Novembro\",\n    \"end_numero\": \"253\",\n    \"area_privativa\": 0,\n    \"area_total\": 100,\n    \"caracteristicas\": [\n      \"Lavabo\",\n      \"Varanda gourmet\"\n    ],\n    \"categoria_imovel\": \"Padrão\",\n    \"corretor.codigo\": 908392,\n    \"data_disponibilidade\": \"2025-07-17\",\n    \"status\": \"Reservado\",\n    \"fotos\": [\n      {\n        \"id\": \"FAKE_FOTO_FAKE_COMERCIAIS_008_001\",\n        \"url\": \"https://images.unsplash.com/photo-1524758631624-e2822e304c36?w=800&q=80\",\n        \"descricao\": \"Vista principal do imóvel\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_COMERCIAIS_008_002\",\n        \"url\": \"https://images.unsplash.com/photo-1524758631624-e2822e304c36?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_COMERCIAIS_008_003\",\n        \"url\": \"https://images.unsplash.com/photo-1555041469-a586c61ea9bc?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 3\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_COMERCIAIS_008_004\",\n        \"url\": \"https://images.unsplash.com/photo-1555041469-a586c61ea9bc?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 4\n      }\n    ]\n  },\n  {\n    \"codigo\": \"FAKE_COMERCIAIS_009\",\n    \"titulo\": \"Comerciai Premium - 100m², 2 vagas\",\n    \"descricao\": \"Imóvel com excelente localização, próximo a shopping, escolas e transporte público.\",\n    \"categoria\": \"Comercial\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"created_at\": \"2025-07-08T23:35:48.817Z\",\n    \"updated_at\": \"2025-07-08T23:35:48.817Z\",\n    \"finalidade\": \"Venda\",\n    \"area_construida\": 100,\n    \"qtd_banheiro\": 1,\n    \"qtd_vagas\": 2,\n    \"andar\": 3,\n    \"valor_locacao\": 1200,\n    \"valor_venda\": 950000,\n    \"valor_condominio\": 500,\n    \"end_bairro\": \"Bigorrilho\",\n    \"end_cidade\": \"Curitiba\",\n    \"end_estado\": \"PR\",\n    \"end_cep\": \"82010-020\",\n    \"end_logradouro\": \"Avenida Batel\",\n    \"end_numero\": \"515\",\n    \"area_privativa\": 0,\n    \"caracteristicas\": [\n      \"Recepção\"\n    ],\n    \"data_disponibilidade\": \"2025-08-05\",\n    \"status\": \"Disponível\",\n    \"fotos\": [\n      {\n        \"id\": \"FAKE_FOTO_FAKE_COMERCIAIS_009_001\",\n        \"url\": \"https://images.unsplash.com/photo-1497366811353-6870744d04b2?w=800&q=80\",\n        \"descricao\": \"Vista principal do imóvel\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_COMERCIAIS_009_002\",\n        \"url\": \"https://images.unsplash.com/photo-1462826303086-329426d1aef5?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_COMERCIAIS_009_003\",\n        \"url\": \"https://images.unsplash.com/photo-1555041469-a586c61ea9bc?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 3\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_COMERCIAIS_009_004\",\n        \"url\": \"https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 4\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_COMERCIAIS_009_005\",\n        \"url\": \"https://images.unsplash.com/photo-1556909114-f6e7ad7d3136?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 5\n      }\n    ]\n  },\n  {\n    \"codigo\": \"FAKE_COMERCIAIS_010\",\n    \"titulo\": \"Comerciai Premium - 300m², 3 vagas\",\n    \"descricao\": \"Unidade ampla e bem iluminada, com varanda gourmet e área de lazer completa.\",\n    \"categoria\": \"Comercial\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"created_at\": \"2025-07-08T23:35:48.817Z\",\n    \"updated_at\": \"2025-07-08T23:35:48.817Z\",\n    \"finalidade\": \"Locação\",\n    \"area_construida\": 300,\n    \"qtd_banheiro\": 2,\n    \"qtd_vagas\": 3,\n    \"andar\": 1,\n    \"valor_locacao\": 5000,\n    \"valor_venda\": 120000,\n    \"valor_condominio\": 1200,\n    \"end_bairro\": \"Itaim Bibi\",\n    \"end_cidade\": \"São Paulo\",\n    \"end_estado\": \"SP\",\n    \"end_cep\": \"04038-001\",\n    \"end_logradouro\": \"Rua Augusta\",\n    \"end_numero\": \"536\",\n    \"condominio\": 237321,\n    \"data_disponibilidade\": \"2025-07-15\",\n    \"status\": \"Reservado\",\n    \"fotos\": [\n      {\n        \"id\": \"FAKE_FOTO_FAKE_COMERCIAIS_010_001\",\n        \"url\": \"https://images.unsplash.com/photo-1497366216548-37526070297c?w=800&q=80\",\n        \"descricao\": \"Vista principal do imóvel\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_COMERCIAIS_010_002\",\n        \"url\": \"https://images.unsplash.com/photo-1556909114-f6e7ad7d3136?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_COMERCIAIS_010_003\",\n        \"url\": \"https://images.unsplash.com/photo-1524758631624-e2822e304c36?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 3\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_COMERCIAIS_010_004\",\n        \"url\": \"https://images.unsplash.com/photo-1497366811353-6870744d04b2?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 4\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_COMERCIAIS_010_005\",\n        \"url\": \"https://images.unsplash.com/photo-1524758631624-e2822e304c36?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 5\n      }\n    ]\n  },\n  {\n    \"codigo\": \"FAKE_COMERCIAIS_011\",\n    \"titulo\": \"Comerciai Premium - 100m²\",\n    \"descricao\": \"Unidade ampla e bem iluminada, com varanda gourmet e área de lazer completa.\",\n    \"categoria\": \"Comercial\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"created_at\": \"2025-07-08T23:35:48.817Z\",\n    \"updated_at\": \"2025-07-08T23:35:48.817Z\",\n    \"finalidade\": \"Locação\",\n    \"area_construida\": 100,\n    \"qtd_banheiro\": 2,\n    \"qtd_vagas\": 0,\n    \"andar\": 1,\n    \"valor_locacao\": 5000,\n    \"valor_venda\": 120000,\n    \"valor_condominio\": 750,\n    \"end_bairro\": \"Bigorrilho\",\n    \"end_cidade\": \"Curitiba\",\n    \"end_estado\": \"PR\",\n    \"end_cep\": \"82010-020\",\n    \"end_logradouro\": \"Avenida Batel\",\n    \"end_numero\": \"90\",\n    \"area_total\": 155,\n    \"categoria_imovel\": \"Padrão\",\n    \"condominio\": 237318,\n    \"data_disponibilidade\": \"2025-07-18\",\n    \"status\": \"Disponível\",\n    \"fotos\": [\n      {\n        \"id\": \"FAKE_FOTO_FAKE_COMERCIAIS_011_001\",\n        \"url\": \"https://images.unsplash.com/photo-1497366811353-6870744d04b2?w=800&q=80\",\n        \"descricao\": \"Vista principal do imóvel\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_COMERCIAIS_011_002\",\n        \"url\": \"https://images.unsplash.com/photo-1462826303086-329426d1aef5?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_COMERCIAIS_011_003\",\n        \"url\": \"https://images.unsplash.com/photo-1555041469-a586c61ea9bc?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 3\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_COMERCIAIS_011_004\",\n        \"url\": \"https://images.unsplash.com/photo-1555041469-a586c61ea9bc?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 4\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_COMERCIAIS_011_005\",\n        \"url\": \"https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 5\n      }\n    ]\n  },\n  {\n    \"codigo\": \"FAKE_COMERCIAIS_012\",\n    \"titulo\": \"Comerciai Premium - 100m², 2 vagas\",\n    \"descricao\": \"Unidade ampla e bem iluminada, com varanda gourmet e área de lazer completa.\",\n    \"categoria\": \"Comercial\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"created_at\": \"2025-07-08T23:35:48.817Z\",\n    \"updated_at\": \"2025-07-08T23:35:48.817Z\",\n    \"finalidade\": \"Venda\",\n    \"area_construida\": 100,\n    \"qtd_banheiro\": 2,\n    \"qtd_vagas\": 2,\n    \"andar\": 0,\n    \"valor_locacao\": 3500,\n    \"valor_venda\": 420000,\n    \"valor_condominio\": 1200,\n    \"end_bairro\": \"Moema\",\n    \"end_cidade\": \"São Paulo\",\n    \"end_estado\": \"SP\",\n    \"end_cep\": \"04094-050\",\n    \"end_logradouro\": \"Rua Estados Unidos\",\n    \"end_numero\": \"904\",\n    \"condominio\": 237318,\n    \"observacoes\": \"Térreo com vitrine para rua\",\n    \"data_disponibilidade\": \"2025-07-10\",\n    \"status\": \"Disponível\",\n    \"fotos\": [\n      {\n        \"id\": \"FAKE_FOTO_FAKE_COMERCIAIS_012_001\",\n        \"url\": \"https://images.unsplash.com/photo-1524758631624-e2822e304c36?w=800&q=80\",\n        \"descricao\": \"Vista principal do imóvel\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_COMERCIAIS_012_002\",\n        \"url\": \"https://images.unsplash.com/photo-1555041469-a586c61ea9bc?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_COMERCIAIS_012_003\",\n        \"url\": \"https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 3\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_COMERCIAIS_012_004\",\n        \"url\": \"https://images.unsplash.com/photo-1462826303086-329426d1aef5?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 4\n      }\n    ]\n  },\n  {\n    \"codigo\": \"FAKE_COMERCIAIS_013\",\n    \"titulo\": \"Comerciai Premium - 300m², 5 vagas\",\n    \"descricao\": \"Apartamento decorado pronto para morar, em condomínio com infraestrutura completa.\",\n    \"categoria\": \"Comercial\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"created_at\": \"2025-07-08T23:35:48.817Z\",\n    \"updated_at\": \"2025-07-08T23:35:48.817Z\",\n    \"finalidade\": \"Venda\",\n    \"area_construida\": 300,\n    \"qtd_banheiro\": 2,\n    \"qtd_vagas\": 5,\n    \"andar\": 5,\n    \"valor_locacao\": 1800,\n    \"valor_venda\": 280000,\n    \"valor_condominio\": 1200,\n    \"end_bairro\": \"Lagoa\",\n    \"end_cidade\": \"Rio de Janeiro\",\n    \"end_estado\": \"RJ\",\n    \"end_cep\": \"22421-030\",\n    \"end_logradouro\": \"Avenida das Américas\",\n    \"end_numero\": \"526\",\n    \"condominio\": 237885,\n    \"data_disponibilidade\": \"2025-07-15\",\n    \"status\": \"Reservado\",\n    \"fotos\": [\n      {\n        \"id\": \"FAKE_FOTO_FAKE_COMERCIAIS_013_001\",\n        \"url\": \"https://images.unsplash.com/photo-1497366216548-37526070297c?w=800&q=80\",\n        \"descricao\": \"Vista principal do imóvel\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_COMERCIAIS_013_002\",\n        \"url\": \"https://images.unsplash.com/photo-1556909114-f6e7ad7d3136?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_COMERCIAIS_013_003\",\n        \"url\": \"https://images.unsplash.com/photo-1524758631624-e2822e304c36?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 3\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_COMERCIAIS_013_004\",\n        \"url\": \"https://images.unsplash.com/photo-1555041469-a586c61ea9bc?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 4\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_COMERCIAIS_013_005\",\n        \"url\": \"https://images.unsplash.com/photo-1462826303086-329426d1aef5?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 5\n      }\n    ]\n  },\n  {\n    \"codigo\": \"FAKE_COMERCIAIS_014\",\n    \"titulo\": \"Comerciai Premium - 35m², 2 vagas\",\n    \"descricao\": \"Apartamento moderno com acabamentos de primeira linha e vista panorâmica da cidade.\",\n    \"categoria\": \"Comercial\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"created_at\": \"2025-07-08T23:35:48.817Z\",\n    \"updated_at\": \"2025-07-08T23:35:48.817Z\",\n    \"finalidade\": \"Venda\",\n    \"area_construida\": 35,\n    \"qtd_banheiro\": 2,\n    \"qtd_vagas\": 2,\n    \"andar\": 5,\n    \"valor_locacao\": 7500,\n    \"valor_venda\": 420000,\n    \"valor_condominio\": 750,\n    \"end_bairro\": \"Flamengo\",\n    \"end_cidade\": \"Rio de Janeiro\",\n    \"end_estado\": \"RJ\",\n    \"end_cep\": \"22250-040\",\n    \"end_logradouro\": \"Avenida das Américas\",\n    \"end_numero\": \"655\",\n    \"area_total\": 537.6,\n    \"data_disponibilidade\": \"2025-07-12\",\n    \"status\": \"Disponível\",\n    \"fotos\": [\n      {\n        \"id\": \"FAKE_FOTO_FAKE_COMERCIAIS_014_001\",\n        \"url\": \"https://images.unsplash.com/photo-1497366216548-37526070297c?w=800&q=80\",\n        \"descricao\": \"Vista principal do imóvel\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_COMERCIAIS_014_002\",\n        \"url\": \"https://images.unsplash.com/photo-1556909114-f6e7ad7d3136?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_COMERCIAIS_014_003\",\n        \"url\": \"https://images.unsplash.com/photo-1462826303086-329426d1aef5?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 3\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_COMERCIAIS_014_004\",\n        \"url\": \"https://images.unsplash.com/photo-1524758631624-e2822e304c36?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 4\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_COMERCIAIS_014_005\",\n        \"url\": \"https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 5\n      }\n    ]\n  },\n  {\n    \"codigo\": \"FAKE_COMERCIAIS_015\",\n    \"titulo\": \"Comerciai Premium - 300m², 1 vaga\",\n    \"descricao\": \"Apartamento moderno com acabamentos de primeira linha e vista panorâmica da cidade.\",\n    \"categoria\": \"Comercial\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"created_at\": \"2025-07-08T23:35:48.817Z\",\n    \"updated_at\": \"2025-07-08T23:35:48.817Z\",\n    \"finalidade\": \"Venda\",\n    \"area_construida\": 300,\n    \"qtd_banheiro\": 1,\n    \"qtd_vagas\": 1,\n    \"andar\": 12,\n    \"valor_locacao\": 1200,\n    \"valor_venda\": 180000,\n    \"valor_condominio\": 2000,\n    \"end_bairro\": \"Batel\",\n    \"end_cidade\": \"Curitiba\",\n    \"end_estado\": \"PR\",\n    \"end_cep\": \"82010-020\",\n    \"end_logradouro\": \"Rua Comendador Araújo\",\n    \"end_numero\": \"397\",\n    \"codigo_origem\": \"SO0609\",\n    \"corretor.codigo\": 913153,\n    \"data_disponibilidade\": \"2025-08-05\",\n    \"status\": \"Disponível\",\n    \"fotos\": [\n      {\n        \"id\": \"FAKE_FOTO_FAKE_COMERCIAIS_015_001\",\n        \"url\": \"https://images.unsplash.com/photo-1497366811353-6870744d04b2?w=800&q=80\",\n        \"descricao\": \"Vista principal do imóvel\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_COMERCIAIS_015_002\",\n        \"url\": \"https://images.unsplash.com/photo-1555041469-a586c61ea9bc?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_COMERCIAIS_015_003\",\n        \"url\": \"https://images.unsplash.com/photo-1524758631624-e2822e304c36?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 3\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_COMERCIAIS_015_004\",\n        \"url\": \"https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?w=800&q=80\",\n        \"descricao\": \"Vista interior\",\n        \"destaque\": false,\n        \"ordem\": 4\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_COMERCIAIS_015_005\",\n        \"url\": \"https://images.unsplash.com/photo-1462826303086-329426d1aef5?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 5\n      }\n    ]\n  }\n]","[\n  {\n    \"codigo\": \"FAKE_TERRENOS_001\",\n    \"titulo\": \"Terreno Premium\",\n    \"descricao\": \"Lote em condomínio fechado com infraestrutura completa de lazer.\",\n    \"categoria\": \"Terreno\",\n    \"finalidade\": \"Venda\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"qtd_quartos\": 0,\n    \"qtd_banheiro\": 0,\n    \"area_construida\": 0,\n    \"created_at\": \"2025-07-08T23:35:48.817Z\",\n    \"updated_at\": \"2025-07-08T23:35:48.817Z\",\n    \"area_terreno\": 1500,\n    \"valor_venda\": 80000,\n    \"topografia\": \"Declive Suave\",\n    \"situacao\": \"Parcialmente Murado\",\n    \"end_bairro\": \"Lagoa\",\n    \"end_cidade\": \"Rio de Janeiro\",\n    \"end_estado\": \"RJ\",\n    \"end_cep\": \"22070-900\",\n    \"end_logradouro\": \"Rua Visconde de Pirajá\",\n    \"end_numero\": \"56\",\n    \"area_privativa\": 34,\n    \"area_total\": 518,\n    \"caracteristicas\": [\n      \"Copa\",\n      \"Sol da tarde\"\n    ],\n    \"codigo_origem\": \"SO0607\",\n    \"data_disponibilidade\": \"2025-07-22\",\n    \"status\": \"Reservado\",\n    \"fotos\": [\n      {\n        \"id\": \"FAKE_FOTO_FAKE_TERRENOS_001_001\",\n        \"url\": \"https://images.unsplash.com/photo-1564013799919-ab600027ffc6?w=800&q=80\",\n        \"descricao\": \"Vista principal do imóvel\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_TERRENOS_001_002\",\n        \"url\": \"https://images.unsplash.com/photo-1416331108676-a22ccb276e35?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_TERRENOS_001_003\",\n        \"url\": \"https://images.unsplash.com/photo-1416331108676-a22ccb276e35?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 3\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_TERRENOS_001_004\",\n        \"url\": \"https://images.unsplash.com/photo-1500382017468-9049fed747ef?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 4\n      }\n    ]\n  },\n  {\n    \"codigo\": \"FAKE_TERRENOS_002\",\n    \"titulo\": \"Terreno Premium\",\n    \"descricao\": \"Terreno com vista privilegiada e documentação regularizada.\",\n    \"categoria\": \"Terreno\",\n    \"finalidade\": \"Venda\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"qtd_quartos\": 0,\n    \"qtd_banheiro\": 0,\n    \"area_construida\": 0,\n    \"created_at\": \"2025-07-08T23:35:48.817Z\",\n    \"updated_at\": \"2025-07-08T23:35:48.817Z\",\n    \"area_terreno\": 250,\n    \"valor_venda\": 120000,\n    \"topografia\": \"Aclive Suave\",\n    \"situacao\": \"Murado\",\n    \"end_bairro\": \"Jardins\",\n    \"end_cidade\": \"São Paulo\",\n    \"end_estado\": \"SP\",\n    \"end_cep\": \"04094-050\",\n    \"end_logradouro\": \"Rua Consolação\",\n    \"end_numero\": \"88\",\n    \"condominio\": 237835,\n    \"corretor.codigo\": 1227644,\n    \"data_disponibilidade\": \"2025-07-22\",\n    \"status\": \"Disponível\",\n    \"fotos\": [\n      {\n        \"id\": \"FAKE_FOTO_FAKE_TERRENOS_002_001\",\n        \"url\": \"https://images.unsplash.com/photo-1416331108676-a22ccb276e35?w=800&q=80\",\n        \"descricao\": \"Vista principal do imóvel\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_TERRENOS_002_002\",\n        \"url\": \"https://images.unsplash.com/photo-1416331108676-a22ccb276e35?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_TERRENOS_002_003\",\n        \"url\": \"https://images.unsplash.com/photo-1564013799919-ab600027ffc6?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 3\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_TERRENOS_002_004\",\n        \"url\": \"https://images.unsplash.com/photo-1564013799919-ab600027ffc6?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 4\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_TERRENOS_002_005\",\n        \"url\": \"https://images.unsplash.com/photo-1448630360428-65456885c650?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 5\n      }\n    ]\n  },\n  {\n    \"codigo\": \"FAKE_TERRENOS_003\",\n    \"titulo\": \"Terreno Premium\",\n    \"descricao\": \"Lote em condomínio fechado com infraestrutura completa de lazer.\",\n    \"categoria\": \"Terreno\",\n    \"finalidade\": \"Venda\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"qtd_quartos\": 0,\n    \"qtd_banheiro\": 0,\n    \"area_construida\": 0,\n    \"created_at\": \"2025-07-08T23:35:48.817Z\",\n    \"updated_at\": \"2025-07-08T23:35:48.817Z\",\n    \"area_terreno\": 300,\n    \"valor_venda\": 250000,\n    \"topografia\": \"Declive Suave\",\n    \"situacao\": \"Parcialmente Murado\",\n    \"end_bairro\": \"Bigorrilho\",\n    \"end_cidade\": \"Curitiba\",\n    \"end_estado\": \"PR\",\n    \"end_cep\": \"80420-010\",\n    \"end_logradouro\": \"Rua Comendador Araújo\",\n    \"end_numero\": \"704\",\n    \"area_total\": 1,\n    \"corretor.codigo\": 908688,\n    \"data_disponibilidade\": \"2025-08-06\",\n    \"status\": \"Disponível\",\n    \"fotos\": [\n      {\n        \"id\": \"FAKE_FOTO_FAKE_TERRENOS_003_001\",\n        \"url\": \"https://images.unsplash.com/photo-1448630360428-65456885c650?w=800&q=80\",\n        \"descricao\": \"Vista principal do imóvel\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_TERRENOS_003_002\",\n        \"url\": \"https://images.unsplash.com/photo-1500382017468-9049fed747ef?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_TERRENOS_003_003\",\n        \"url\": \"https://images.unsplash.com/photo-1448630360428-65456885c650?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 3\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_TERRENOS_003_004\",\n        \"url\": \"https://images.unsplash.com/photo-1416331108676-a22ccb276e35?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 4\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_TERRENOS_003_005\",\n        \"url\": \"https://images.unsplash.com/photo-1448630360428-65456885c650?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 5\n      }\n    ]\n  },\n  {\n    \"codigo\": \"FAKE_TERRENOS_004\",\n    \"titulo\": \"Terreno Premium\",\n    \"descricao\": \"Lote em condomínio fechado com infraestrutura completa de lazer.\",\n    \"categoria\": \"Terreno\",\n    \"finalidade\": \"Venda\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"qtd_quartos\": 0,\n    \"qtd_banheiro\": 0,\n    \"area_construida\": 0,\n    \"created_at\": \"2025-07-08T23:35:48.819Z\",\n    \"updated_at\": \"2025-07-08T23:35:48.819Z\",\n    \"area_terreno\": 600,\n    \"valor_venda\": 350000,\n    \"topografia\": \"Declive Suave\",\n    \"situacao\": \"Parcialmente Murado\",\n    \"end_bairro\": \"Centro\",\n    \"end_cidade\": \"Curitiba\",\n    \"end_estado\": \"PR\",\n    \"end_cep\": \"82010-020\",\n    \"end_logradouro\": \"Rua XV de Novembro\",\n    \"end_numero\": \"774\",\n    \"area_total\": 5782,\n    \"codigo_origem\": \"TE0573\",\n    \"data_disponibilidade\": \"2025-07-20\",\n    \"status\": \"Reservado\",\n    \"fotos\": [\n      {\n        \"id\": \"FAKE_FOTO_FAKE_TERRENOS_004_001\",\n        \"url\": \"https://images.unsplash.com/photo-1448630360428-65456885c650?w=800&q=80\",\n        \"descricao\": \"Vista principal do imóvel\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_TERRENOS_004_002\",\n        \"url\": \"https://images.unsplash.com/photo-1564013799919-ab600027ffc6?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_TERRENOS_004_003\",\n        \"url\": \"https://images.unsplash.com/photo-1500382017468-9049fed747ef?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 3\n      }\n    ]\n  },\n  {\n    \"codigo\": \"FAKE_TERRENOS_005\",\n    \"titulo\": \"Terreno Premium\",\n    \"descricao\": \"Lote em condomínio fechado com infraestrutura completa de lazer.\",\n    \"categoria\": \"Terreno\",\n    \"finalidade\": \"Venda\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"qtd_quartos\": 0,\n    \"qtd_banheiro\": 0,\n    \"area_construida\": 0,\n    \"created_at\": \"2025-07-08T23:35:48.819Z\",\n    \"updated_at\": \"2025-07-08T23:35:48.819Z\",\n    \"area_terreno\": 2000,\n    \"valor_venda\": 80000,\n    \"topografia\": \"Declive Suave\",\n    \"situacao\": \"Murado\",\n    \"end_bairro\": \"Barra da Tijuca\",\n    \"end_cidade\": \"Rio de Janeiro\",\n    \"end_estado\": \"RJ\",\n    \"end_cep\": \"22250-040\",\n    \"end_logradouro\": \"Rua Barata Ribeiro\",\n    \"end_numero\": \"947\",\n    \"area_total\": 1,\n    \"caracteristicas\": [\n      \"Sala de Jantar\",\n      \"Cozinha\"\n    ],\n    \"condominio\": 237885,\n    \"data_disponibilidade\": \"2025-07-13\",\n    \"status\": \"Disponível\",\n    \"fotos\": [\n      {\n        \"id\": \"FAKE_FOTO_FAKE_TERRENOS_005_001\",\n        \"url\": \"https://images.unsplash.com/photo-1564013799919-ab600027ffc6?w=800&q=80\",\n        \"descricao\": \"Vista principal do imóvel\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_TERRENOS_005_002\",\n        \"url\": \"https://images.unsplash.com/photo-1448630360428-65456885c650?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_TERRENOS_005_003\",\n        \"url\": \"https://images.unsplash.com/photo-1448630360428-65456885c650?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 3\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_TERRENOS_005_004\",\n        \"url\": \"https://images.unsplash.com/photo-1416331108676-a22ccb276e35?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 4\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_TERRENOS_005_005\",\n        \"url\": \"https://images.unsplash.com/photo-1416331108676-a22ccb276e35?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 5\n      }\n    ]\n  },\n  {\n    \"codigo\": \"FAKE_TERRENOS_006\",\n    \"titulo\": \"Terreno Premium\",\n    \"descricao\": \"Área ideal para investimento em região de alta valorização.\",\n    \"categoria\": \"Terreno\",\n    \"finalidade\": \"Venda\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"qtd_quartos\": 0,\n    \"qtd_banheiro\": 0,\n    \"area_construida\": 0,\n    \"created_at\": \"2025-07-08T23:35:48.819Z\",\n    \"updated_at\": \"2025-07-08T23:35:48.819Z\",\n    \"area_terreno\": 2000,\n    \"valor_venda\": 250000,\n    \"topografia\": \"Aclive Suave\",\n    \"situacao\": \"Parcialmente Murado\",\n    \"end_bairro\": \"Água Verde\",\n    \"end_cidade\": \"Curitiba\",\n    \"end_estado\": \"PR\",\n    \"end_cep\": \"80240-040\",\n    \"end_logradouro\": \"Rua XV de Novembro\",\n    \"end_numero\": \"480\",\n    \"categoria_imovel\": \"Padrão\",\n    \"codigo_origem\": \"TE0573\",\n    \"condominio\": 237652,\n    \"data_disponibilidade\": \"2025-07-24\",\n    \"status\": \"Reservado\",\n    \"fotos\": [\n      {\n        \"id\": \"FAKE_FOTO_FAKE_TERRENOS_006_001\",\n        \"url\": \"https://images.unsplash.com/photo-1564013799919-ab600027ffc6?w=800&q=80\",\n        \"descricao\": \"Vista principal do imóvel\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_TERRENOS_006_002\",\n        \"url\": \"https://images.unsplash.com/photo-1500382017468-9049fed747ef?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_TERRENOS_006_003\",\n        \"url\": \"https://images.unsplash.com/photo-1500382017468-9049fed747ef?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 3\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_TERRENOS_006_004\",\n        \"url\": \"https://images.unsplash.com/photo-1416331108676-a22ccb276e35?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 4\n      }\n    ]\n  },\n  {\n    \"codigo\": \"FAKE_TERRENOS_007\",\n    \"titulo\": \"Terreno Premium\",\n    \"descricao\": \"Lote em condomínio fechado com infraestrutura completa de lazer.\",\n    \"categoria\": \"Terreno\",\n    \"finalidade\": \"Venda\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"qtd_quartos\": 0,\n    \"qtd_banheiro\": 0,\n    \"area_construida\": 0,\n    \"created_at\": \"2025-07-08T23:35:48.819Z\",\n    \"updated_at\": \"2025-07-08T23:35:48.819Z\",\n    \"area_terreno\": 1500,\n    \"valor_venda\": 120000,\n    \"topografia\": \"Plano\",\n    \"situacao\": \"A murar\",\n    \"end_bairro\": \"Centro\",\n    \"end_cidade\": \"Curitiba\",\n    \"end_estado\": \"PR\",\n    \"end_cep\": \"80420-010\",\n    \"end_logradouro\": \"Avenida Batel\",\n    \"end_numero\": \"983\",\n    \"area_total\": 1,\n    \"data_disponibilidade\": \"2025-07-11\",\n    \"status\": \"Disponível\",\n    \"fotos\": [\n      {\n        \"id\": \"FAKE_FOTO_FAKE_TERRENOS_007_001\",\n        \"url\": \"https://images.unsplash.com/photo-1564013799919-ab600027ffc6?w=800&q=80\",\n        \"descricao\": \"Vista principal do imóvel\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_TERRENOS_007_002\",\n        \"url\": \"https://images.unsplash.com/photo-1416331108676-a22ccb276e35?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_TERRENOS_007_003\",\n        \"url\": \"https://images.unsplash.com/photo-1448630360428-65456885c650?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 3\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_TERRENOS_007_004\",\n        \"url\": \"https://images.unsplash.com/photo-1416331108676-a22ccb276e35?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 4\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_TERRENOS_007_005\",\n        \"url\": \"https://images.unsplash.com/photo-1416331108676-a22ccb276e35?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 5\n      }\n    ]\n  },\n  {\n    \"codigo\": \"FAKE_TERRENOS_008\",\n    \"titulo\": \"Terreno Premium\",\n    \"descricao\": \"Terreno plano e murado, pronto para construção, em bairro nobre.\",\n    \"categoria\": \"Terreno\",\n    \"finalidade\": \"Venda\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"qtd_quartos\": 0,\n    \"qtd_banheiro\": 0,\n    \"area_construida\": 0,\n    \"created_at\": \"2025-07-08T23:35:48.819Z\",\n    \"updated_at\": \"2025-07-08T23:35:48.819Z\",\n    \"area_terreno\": 500,\n    \"valor_venda\": 850000,\n    \"topografia\": \"Plano\",\n    \"situacao\": \"Parcialmente Murado\",\n    \"end_bairro\": \"Batel\",\n    \"end_cidade\": \"Curitiba\",\n    \"end_estado\": \"PR\",\n    \"end_cep\": \"80060-150\",\n    \"end_logradouro\": \"Avenida Vicente Machado\",\n    \"end_numero\": \"852\",\n    \"area_privativa\": 83.48,\n    \"condominio\": 237864,\n    \"corretor.codigo\": 908396,\n    \"data_disponibilidade\": \"2025-07-09\",\n    \"status\": \"Disponível\",\n    \"fotos\": [\n      {\n        \"id\": \"FAKE_FOTO_FAKE_TERRENOS_008_001\",\n        \"url\": \"https://images.unsplash.com/photo-1500382017468-9049fed747ef?w=800&q=80\",\n        \"descricao\": \"Vista principal do imóvel\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_TERRENOS_008_002\",\n        \"url\": \"https://images.unsplash.com/photo-1500382017468-9049fed747ef?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_TERRENOS_008_003\",\n        \"url\": \"https://images.unsplash.com/photo-1564013799919-ab600027ffc6?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 3\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_TERRENOS_008_004\",\n        \"url\": \"https://images.unsplash.com/photo-1448630360428-65456885c650?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 4\n      }\n    ]\n  },\n  {\n    \"codigo\": \"FAKE_TERRENOS_009\",\n    \"titulo\": \"Terreno Premium\",\n    \"descricao\": \"Terreno plano e murado, pronto para construção, em bairro nobre.\",\n    \"categoria\": \"Terreno\",\n    \"finalidade\": \"Venda\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"qtd_quartos\": 0,\n    \"qtd_banheiro\": 0,\n    \"area_construida\": 0,\n    \"created_at\": \"2025-07-08T23:35:48.819Z\",\n    \"updated_at\": \"2025-07-08T23:35:48.819Z\",\n    \"area_terreno\": 1000,\n    \"valor_venda\": 80000,\n    \"topografia\": \"Plano\",\n    \"situacao\": \"Parcialmente Murado\",\n    \"end_bairro\": \"Botafogo\",\n    \"end_cidade\": \"Rio de Janeiro\",\n    \"end_estado\": \"RJ\",\n    \"end_cep\": \"22071-900\",\n    \"end_logradouro\": \"Avenida Atlântica\",\n    \"end_numero\": \"748\",\n    \"area_privativa\": 138,\n    \"condominio\": 237318,\n    \"data_disponibilidade\": \"2025-07-21\",\n    \"status\": \"Reservado\",\n    \"fotos\": [\n      {\n        \"id\": \"FAKE_FOTO_FAKE_TERRENOS_009_001\",\n        \"url\": \"https://images.unsplash.com/photo-1448630360428-65456885c650?w=800&q=80\",\n        \"descricao\": \"Vista principal do imóvel\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_TERRENOS_009_002\",\n        \"url\": \"https://images.unsplash.com/photo-1448630360428-65456885c650?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_TERRENOS_009_003\",\n        \"url\": \"https://images.unsplash.com/photo-1564013799919-ab600027ffc6?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 3\n      }\n    ]\n  },\n  {\n    \"codigo\": \"FAKE_TERRENOS_010\",\n    \"titulo\": \"Terreno Premium\",\n    \"descricao\": \"Terreno com vista privilegiada e documentação regularizada.\",\n    \"categoria\": \"Terreno\",\n    \"finalidade\": \"Venda\",\n    \"ativo\": true,\n    \"publicado\": true,\n    \"qtd_quartos\": 0,\n    \"qtd_banheiro\": 0,\n    \"area_construida\": 0,\n    \"created_at\": \"2025-07-08T23:35:48.819Z\",\n    \"updated_at\": \"2025-07-08T23:35:48.819Z\",\n    \"area_terreno\": 500,\n    \"valor_venda\": 80000,\n    \"topografia\": \"Aclive Suave\",\n    \"situacao\": \"Murado\",\n    \"end_bairro\": \"Flamengo\",\n    \"end_cidade\": \"Rio de Janeiro\",\n    \"end_estado\": \"RJ\",\n    \"end_cep\": \"22640-100\",\n    \"end_logradouro\": \"Rua Visconde de Pirajá\",\n    \"end_numero\": \"875\",\n    \"area_privativa\": 15,\n    \"area_total\": 518,\n    \"caracteristicas\": [\n      \"Corredor\",\n      \"Entrada Lateral\"\n    ],\n    \"codigo_origem\": \"TE0568\",\n    \"corretor.codigo\": 913157,\n    \"data_disponibilidade\": \"2025-07-20\",\n    \"status\": \"Disponível\",\n    \"fotos\": [\n      {\n        \"id\": \"FAKE_FOTO_FAKE_TERRENOS_010_001\",\n        \"url\": \"https://images.unsplash.com/photo-1448630360428-65456885c650?w=800&q=80\",\n        \"descricao\": \"Vista principal do imóvel\",\n        \"destaque\": true,\n        \"ordem\": 1\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_TERRENOS_010_002\",\n        \"url\": \"https://images.unsplash.com/photo-1416331108676-a22ccb276e35?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 2\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_TERRENOS_010_003\",\n        \"url\": \"https://images.unsplash.com/photo-1416331108676-a22ccb276e35?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 3\n      },\n      {\n        \"id\": \"FAKE_FOTO_FAKE_TERRENOS_010_004\",\n        \"url\": \"https://images.unsplash.com/photo-1564013799919-ab600027ffc6?w=800&q=80\",\n        \"descricao\": \"Vista externa\",\n        \"destaque\": false,\n        \"ordem\": 4\n      }\n    ]\n  }\n]","// Exportar função principal de conversão\nexport { convertArboToPropertyV3 } from \"./converter\"\n\n// Exportar serviços reutilizáveis\nexport { ArboApiClient } from \"./services/ArboApiClient\"\nexport { ArboDownloader } from \"./services/ArboDownloader\"\nexport { ProfilerService } from \"./services/ProfilerService\"\n\n// Re-export types principais\nexport type { PropertyModel } from \"@horizon-modules/property-model-v3\"\nexport type { ArboImovel } from \"./converter/types\"\n\n// Re-export types dos serviços exportados\nexport type { \n  ProfilerConfig, \n  ProfileResult, \n  FieldConfig \n} from \"./services/ProfilerService\"\n\n// Exportar dados como objetos para uso externo\nimport testMocksValidosData from \"./data/mock/validos.json\"\nimport testMocksProblematicosData from \"./data/mock/problematicos.json\"\nimport fakeApartamentosData from \"./data/fake-data/apartamentos.json\"\nimport fakeCasasData from \"./data/fake-data/casas.json\"\nimport fakeComerciais from \"./data/fake-data/comerciais.json\"\nimport fakeTerrenosData from \"./data/fake-data/terrenos.json\"\n\nexport const testMocks = {\n  validos: testMocksValidosData,\n  problematicos: testMocksProblematicosData\n}\n\nexport const fakeData = {\n  apartamentos: fakeApartamentosData,\n  casas: fakeCasasData,\n  comerciais: fakeComerciais,\n  terrenos: fakeTerrenosData\n}"],"mappings":"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","names":["fs"]}