XML Feed para Projetos e Plantas
1. Finalidade do Feed
O feed XML transmite dados estruturados sobre empreendimentos imobiliários e layouts típicos. Sua finalidade é permitir que o sistema receptor crie e atualize automaticamente cards de empreendimentos, exiba preços, status, galerias, comodidades, condições de pagamento, EOI e materiais promocionais de marketing dos incorporadores.
O feed transmite os layouts de forma agregada: um registro de layout descreve um layout típico e a quantidade de unidades disponíveis desse tipo. Não se trata de uma lista de apartamentos, escritórios ou lotes específicos.
- realty-feed: contêiner raiz de todo o feed XML. ID principal: —
- offers: um empreendimento ou complexo. ID principal: complex-id
- layouts: layout típico dentro de um empreendimento. ID principal: id
- payment_plans: uma opção de pagamento do empreendimento. ID principal: id
- eoi_item: uma condição de EOI. ID principal: —
- stock: campanha de marketing, notícia ou mensagem promocional do incorporador. ID principal: —
1.1 O que é um Feed XML
Um feed XML é um arquivo estruturado contendo dados sobre empreendimentos imobiliários e layouts típicos. Ele inclui descrições, fotos, preços, endereços, status, especificações, comodidades e outros dados necessários para exibir os imóveis em um site de imobiliária ou em um catálogo.
Em termos simples, um feed XML é um fluxo de dados sobre imóveis que o sistema receptor baixa regularmente, lê e usa para atualizar automaticamente os cards dos imóveis.
A Alnair fornece os dados. O desenvolvimento do site, do catálogo, a integração com CRM e a lógica de importação ficam a cargo do cliente ou da equipe técnica do cliente.
1.2 O que a Imobiliária Precisa
Para usar o feed XML, a imobiliária precisa de sua própria infraestrutura técnica, capaz de baixar o XML regularmente, interpretar sua estrutura e atualizar os dados em seu sistema.
- Site ou catálogo de imóveis: o local onde os empreendimentos e layouts do feed serão exibidos.
- Equipe técnica ou desenvolvedor: configuração do download do XML, parsing e importação.
- Parser de XML: leitura da estrutura do XML e conversão para o modelo de dados interno.
- Módulo de importação: criação, atualização e desativação de empreendimentos e layouts.
- Agendador de tarefas: execução regular da importação em uma agenda, por exemplo via cron ou scheduler.
- Registro de erros: monitoramento de valores enum desconhecidos, campos vazios e falhas de carregamento.
1.3 Como a Imobiliária Usa o Feed XML
Um fluxo de trabalho típico é o seguinte:
- O sistema da imobiliária baixa o XML a partir de um link web pessoal.
- O XML é salvo como um snapshot bruto para diagnóstico e reprocessamento.
- O parser lê a estrutura realty-feed, offers, layouts e os blocos aninhados.
- O módulo de importação cria novos empreendimentos e layouts ou atualiza os existentes.
- Os objetos que desaparecem do novo feed são marcados como inativos.
- O site da imobiliária exibe cards, preços, galerias e status atualizados.
Principais recursos de integração:
- Atualizações automáticas: empreendimentos e layouts são atualizados sem intervenção manual.
- Criação de páginas de imóveis: os dados do feed são usados nos cards de empreendimentos e layouts.
- Preços e status atualizados: o site recebe atualizações XML de forma programada.
- Filtros e busca: bairro, preço, tipo de imóvel, quantidade de quartos e área podem ser usados para filtragem.
- Galerias de mídia: fotos do empreendimento, galerias temáticas e imagens de layout podem ser exibidas na interface.
2. Estrutura Geral do XML
<realty-feed>
<generation-date>2026-06-17T12:06:39+04:00</generation-date>
<offers>...</offers>
<offers>...</offers>
</realty-feed>
- realty-feed: objeto. Bloco raiz do feed.
- generation-date: data e hora. Data e hora de geração do XML. Usada para verificar a atualidade dos dados.
- offers: objeto[]. Lista de empreendimentos ou complexos. Cada bloco offers contém os dados do empreendimento e seus layouts.
2.1 Acesso ao Feed e Limites de Download
O feed é fornecido ao cliente por meio de um link web pessoal. O link é exclusivo do cliente e é usado pelo sistema receptor para baixar automaticamente o XML.
O link pessoal fica disponível para o administrador na conta Alnair. O administrador pode repassar esse link para a equipe técnica do cliente para configurar a importação.
- Tipo de acesso: link web pessoal. URL individual do feed XML para o cliente.
- Onde obter o link: conta Alnair. O link fica disponível para o administrador do cliente.
- Frequência de atualização do feed: a cada 4 horas. Os dados XML são atualizados no lado da Alnair uma vez a cada 4 horas.
- Intervalo mínimo de download: no máximo uma vez por hora. O sistema receptor não deve acessar o feed mais de uma vez por hora.
- Limite excedido: bloqueio de acesso. Se as requisições forem muito frequentes, o acesso ao feed pode ser bloqueado temporariamente.
Lógica de integração recomendada: configurar o download agendado via cron ou scheduler, salvar o último XML recebido e não solicitar o feed a cada carregamento de página do site. O modo ideal é baixar o feed no máximo uma vez por hora, considerando que novos dados aparecem aproximadamente a cada 4 horas.
3. Empreendimento: <offers>
offers é a entidade principal do feed. Ela contém a descrição do empreendimento, incorporador, localização, status de construção e vendas, preços, mídia, comodidades, planos de pagamento, EOI, promoções de marketing e layouts típicos.
<offers>
<complex-id>5646</complex-id>
<type>project</type>
<logo>https://...</logo>
<photo>https://...</photo>
<title>...</title>
<description>...</description>
<price_on_request>1</price_on_request>
<status>...</status>
<construction_start_at>2025-01-01T00:00:00+04:00</construction_start_at>
<construction_progress>15</construction_progress>
<planned_completion_at>2027-12-31T00:00:00+04:00</planned_completion_at>
<predicted_completion_at>2027-12-31T00:00:00+04:00</predicted_completion_at>
<amenities>...</amenities>
<developer>...</developer>
<city>Dubai</city>
<address>...</address>
<latitude>25.000000</latitude>
<longitude>55.000000</longitude>
<districts>...</districts>
<album>...</album>
<albums>...</albums>
<constructions_count>1</constructions_count>
<for_sale_count>10</for_sale_count>
<price>...</price>
<br_prices>...</br_prices>
<updated_at>2026-06-17T10:53:20+04:00</updated_at>
<is_sold_out>0</is_sold_out>
<payment_plans>...</payment_plans>
<sales_status>...</sales_status>
<stocks>...</stocks>
<eoi>...</eoi>
<service_charge>...</service_charge>
<assignment>...</assignment>
<is_limited_publication>0</is_limited_publication>
<layouts>...</layouts>
</offers>
- complex-id: inteiro. ID exclusivo do empreendimento na Alnair. Use como ID externo do empreendimento para upsert.
- type: enum. Tipo da entidade de nível superior: project ou compound. Armazene o valor bruto e importe como empreendimento de nível superior.
- logo: url. Logo do empreendimento. Exiba na marca, não use como capa.
- photo: url. Imagem principal do empreendimento / capa. Use como imagem de capa e hero.
- title: objeto localizado. Nome do empreendimento em en/ru/ar. Exiba conforme o idioma da interface.
- description: HTML localizado. Descrição do empreendimento em en/ru/ar. Renderize com segurança; o HTML está dentro de CDATA.
- price_on_request: 0/1. Sinalizador de ocultação de preço. Se 1, exiba “Preço sob consulta”.
- status: objeto. Status da construção. Não confundir com sales_status.
- construction_start_at: data e hora. Data de início da construção. Exiba se preenchido.
- construction_progress: decimal. Percentual de conclusão da obra. Exiba como porcentagem.
- planned_completion_at: data e hora. Data planejada de conclusão do empreendimento. Use como data de entrega.
- predicted_completion_at: data e hora. Data prevista de conclusão. Pode ser usada como data de conclusão atualizada.
- amenities: objeto. Comodidades e recursos do empreendimento. Mapear por chave.
- developer: objeto. Incorporador do empreendimento. Armazene nome e logo.
- city / address: string. Cidade e endereço do empreendimento. Use nos dados de localização.
- latitude / longitude: decimal. Coordenadas. Use no mapa.
- districts: objeto. Bairros/regiões do empreendimento. Use em filtros e no card do empreendimento.
- album: objeto. Galeria principal do empreendimento sem categoria. Exiba como galeria geral.
- albums: objeto. Galerias temáticas do empreendimento. Agrupe por título.
- for_sale_count: inteiro. Quantidade de unidades disponíveis no empreendimento. Pode ser exibida como disponibilidade.
- price: objeto. Faixa geral de preço do empreendimento. Ocultar quando price_on_request=1.
- br_prices: objeto[]. Preços por número de quartos ou categoria. Use em filtros e listagens.
- updated_at: data e hora. Data de atualização do empreendimento. Use para sincronização.
- is_sold_out: 0/1. Indicador de esgotado. Use junto com sales_status.
- payment_plans: objeto[]. Opções de pagamento do incorporador. Exiba como opções de pagamento.
- sales_status: objeto localizado. Status comercial do empreendimento. Define a fase de vendas.
- stocks: objeto. Campanhas de marketing e mensagens promocionais do incorporador. Exiba como blocos promocionais.
- eoi: objeto. Expression of Interest. Exiba somente para Presale (EOI).
- service_charge: objeto. Taxa de serviço. Exiba se o valor estiver preenchido.
- assignment: decimal. Condição de cessão. Vazio significa não especificado.
- is_limited_publication: 0/1. Restrição de publicação. Se 1, não publique sem permissão.
- layouts: objeto[]. Layouts típicos do empreendimento. Importe como entidades filhas do empreendimento.
4. Campos Localizados
Os campos localizados têm a mesma estrutura: os valores em inglês, russo e árabe são enviados dentro da tag.
<title>
<en>Nome do Empreendimento</en>
<ru>Название проекта</ru>
<ar>اسم المشروع</ar>
</title>
- en: valor em inglês. Fallback recomendado.
- ru: valor em russo.
- ar: valor em árabe.
Regra de fallback:
- Use o idioma da interface se ele estiver preenchido.
- Se o idioma solicitado estiver vazio, use en.
- Se en estiver vazio, use ru.
- Se ru estiver vazio, use ar.
- Se todos os valores estiverem vazios, não exiba o campo.
5. Status
5.1 Status da Construção: <status>
O status da construção mostra a situação física do empreendimento. Ele não indica disponibilidade para venda.
<status>
<key>development_stage_progress</key>
<en>Em andamento</en>
<ru>Строится</ru>
<ar>قيد الإنشاء</ar>
</status>
- Scheduled: o empreendimento está planejado.
- In Progress: a construção está em andamento.
- Ready: o empreendimento está concluído.
- Stopped: a construção foi interrompida.
5.2 Status de Vendas: <sales_status>
O status de vendas mostra a fase comercial do empreendimento: anúncio, pré-lançamento, lançamento, vendas ativas ou vendido.
- Preliminary Info: informações iniciais do empreendimento.
- Announcement: o empreendimento foi anunciado.
- Presale (EOI): captação de EOI em andamento.
- Launch: lançamento das vendas.
- On Sale: o empreendimento está disponível para compra.
- Sold Out: o empreendimento está esgotado.
- Pending: o status aguarda atualização.
6. Incorporador e Localização
Esses blocos são necessários para exibir a marca do incorporador e a localização geográfica do empreendimento.
<developer>
<title>
<en>Nome do Incorporador</en>
<ru>Developer Name</ru>
<ar>Developer Name</ar>
</title>
<logo>https://...</logo>
</developer>
<city>Dubai</city>
<address>Endereço do Empreendimento, Dubai</address>
<latitude>25.01809076</latitude>
<longitude>55.13354525</longitude>
<districts>
<district>Jumeirah Village Triangle (JVT)</district>
</districts>
- developer.title: objeto localizado. Nome do incorporador.
- developer.logo: url. Logo do incorporador.
- city: string. Cidade.
- address: string. Endereço.
- latitude / longitude: decimal. Coordenadas para o mapa.
- districts.district: string[]. Bairros do empreendimento.
7. Preços
7.1 Preço do Empreendimento: <price>
O preço em nível de empreendimento mostra a faixa geral de preços das ofertas disponíveis no empreendimento.
<price>
<min>815462</min>
<max>2089780</max>
<min_usd>222009</min_usd>
<max_usd>568942</max_usd>
<currency>AED</currency>
</price>
- min: decimal. Preço mínimo.
- max: decimal. Preço máximo.
- min_usd: decimal. Preço mínimo em USD.
- max_usd: decimal. Preço máximo em USD.
- currency: enum. Moeda principal, geralmente AED.
Se price_on_request = 1, os preços exatos não são exibidos publicamente, mesmo que o preço esteja preenchido.
7.2 Preços por Categoria: <br_prices>
br_prices agrupa preços e áreas por número de quartos ou tipo de imóvel. Isso é útil para filtros e cards curtos de empreendimento.
<br_prices>
<key>1</key>
<count>7</count>
<min_price>1070564</min_price>
<max_price>1289674</max_price>
<min_price_m2>17204</min_price_m2>
<max_price_m2>18483</max_price_m2>
<currency>AED</currency>
<min_area><m2>57.92</m2><ft2>623.45</ft2></min_area>
<max_area><m2>74.17</m2><ft2>798.36</ft2></max_area>
</br_prices>
- studio: studios.
- 1-6: número de quartos.
- villa: vilas.
- townhouse: townhouses.
- n: não aplicável / categoria não residencial / outro.
8. Mídia
A mídia no feed é dividida em vários tipos. Ela não deve ser mesclada em uma única galeria sem considerar sua finalidade: uma imagem pode ser a capa do empreendimento, outra o logo, outra uma imagem promocional e outra uma planta.
- logo: offers.logo. Logo do empreendimento. Exiba na identidade visual do empreendimento; não use como capa.
- photo: offers.photo. Imagem principal do empreendimento / capa. Use como imagem de capa no card e como hero na página do empreendimento.
- album.image: offers.album.image. Galeria principal do empreendimento sem categoria. Exiba na galeria geral do empreendimento.
- albums.album.images.image: offers.albums.album.images.image. Galeria temática do empreendimento. Agrupe por albums.album.title.
- developer.logo: offers.developer.logo. Logo do incorporador. Exiba no bloco do incorporador.
- stocks.stock.logo: offers.stocks.stock.logo. Imagem da campanha de marketing. Exiba dentro do bloco promocional.
- layouts.album.image: offers.layouts.album.image. Galeria de um layout típico específico. Exiba no nível do layout.
- levels_photos.level_photo.image: offers.layouts.levels_photos.level_photo.image. Imagem do layout por nível. Use como planta.
<photo>https://...</photo>
<album>
<image>https://...</image>
</album>
<albums>
<album>
<title><en>Infraestrutura</en><ru>Инфраструктура</ru><ar>...</ar></title>
<images>
<image>https://...</image>
</images>
</album>
</albums>
- Project presentation: imagens de apresentação do empreendimento.
- Construction progress: fotos do andamento da obra.
- Finishing examples: exemplos de acabamento.
- Infrastructure: infraestrutura do empreendimento.
- View: vistas e arredores.
Nem toda categoria precisa estar presente em cada empreendimento. Se o título da categoria estiver vazio, as imagens podem ser importadas como sem categoria ou colocadas na galeria geral.
Não existe uma tag XML separada para histórico/story na estrutura atual. Notícias, mensagens promocionais e materiais de marketing do empreendimento são enviados por meio de stocks. Para histórico de obra, a categoria Construction progress pode ser usada, se estiver presente em albums.
9. Comodidades
amenities descreve as comodidades e recursos do empreendimento. Para integração, é melhor usar key, enquanto os valores localizados devem ser usados para exibição.
<amenities>
<amenity>
<key>project_facilities_gym</key>
<en>Academia</en>
<ru>Тренажёрный зал</ru>
<ar>صالة رياضية</ar>
</amenity>
</amenities>
- amenities: objeto. Contêiner de comodidades.
- amenity: objeto. Uma comodidade.
- key: enum. Chave técnica.
- en / ru / ar: string. Nome da comodidade em três idiomas.
A chave projecet_hotel_license contém um erro de digitação, mas deve ser mapeada como Hotel License. Recomenda-se dar suporte ao alias e não interromper a importação.
10. Promoções de Marketing: <stocks>
stocks são campanhas de marketing, notícias e mensagens promocionais dos incorporadores. Podem incluir preços especiais, descontos, condições de lançamento, anúncios de EOI, ofertas temporárias de pagamento e materiais publicitários. Este bloco não representa estoque de inventário e não define disponibilidade de unidades.
<stocks>
<stock>
<title>...</title>
<description>...</description>
<start_at>2025-06-26T00:00:00+04:00</start_at>
<end_at/>
<logo>https://...</logo>
</stock>
</stocks>
- stocks: objeto. Contêiner de mensagens promocionais.
- stock: objeto. Uma campanha, notícia ou anúncio promocional.
- title: objeto localizado. Título da promoção.
- description: HTML localizado. Descrição da promoção.
- start_at: data e hora. Data de início.
- end_at: data e hora. Data de término; pode estar vazia.
- logo: url. Imagem da promoção.
Use for_sale_count, layouts.sale_units_count e sales_status para a disponibilidade dos imóveis, e não stocks.
11. EOI
EOI significa Expression of Interest. O bloco descreve interesse preliminar ou condições de depósito para empreendimentos em status Presale (EOI).
<eoi>
<is_eoi_return>0</is_eoi_return>
<eoi_items>
<eoi_item>
<price>100000</price>
<percent/>
<description>
<en>Valor de EOI para 2 quartos</en>
<ru>Сумма EOI для 2-комнатных</ru>
<ar>...</ar>
</description>
</eoi_item>
</eoi_items>
</eoi>
- is_eoi_return: 0/1/vazio. 0 = não reembolsável, 1 = reembolsável, vazio = não especificado.
- eoi_items: objeto. Contêiner das condições de EOI.
- eoi_item: objeto. Uma condição de EOI.
- price: decimal. Valor fixo de EOI.
- percent: decimal. Percentual de EOI, se usado.
- description: objeto localizado. Descrição da condição.
- sales_status.en = Presale (EOI) and eoi_items is filled: exiba EOI.
- Any other sales_status: oculte EOI.
12. Taxa de Serviço e Cessão
<service_charge>
<value>172.22</value>
<unit>sq. m</unit>
<currency>AED</currency>
</service_charge>
<assignment>40.00</assignment>
- service_charge.value: valor da taxa de serviço. Se estiver vazio, não exiba o bloco.
- service_charge.unit: unidade de cálculo, geralmente sq. m. Pode estar vazia.
- service_charge.currency: moeda, geralmente AED. Pode estar vazia.
- assignment: percentual a partir do qual a cessão é possível. Vazio = informação não especificada, não uma restrição.
13. Planos de Pagamento: <payment_plans>
payment_plans descreve as opções de pagamento do imóvel oferecidas pelo incorporador. Um empreendimento pode ter vários planos de pagamento. Cada plano divide o pagamento em etapas: reserva, construção, entrega e pós-entrega. Taxas e encargos adicionais são informados separadamente, portanto o percentual total pode ultrapassar 100%. Por exemplo, 104% pode significar 100% do valor do imóvel + 4% de taxa DLD.
- Basic: id, title, currency. Identificador do plano, título e moeda. title é texto livre, não um enum.
- Booking: on_booking_percent, on_booking_fix, on_booking_payments_count, on_booking_fees. Pagamentos e taxas na etapa de reserva.
- Construction: on_construction_percent, on_construction_fix, on_construction_payments_count, on_construction_fees. Pagamentos durante a construção.
- Handover: on_handover_percent, on_handover_fix, on_handover_payments_count, on_handover_fees. Pagamentos na entrega do imóvel.
- Post-handover: post_handover_percent, post_handover_fix, on_post_handover_payments_count, on_post_handover_fees. Pagamentos após a entrega.
- ROI: roi_percent, roi_fix, roi_payments_count, roi_fees. Campos para ROI ou esquemas de renda garantida.
- Additional fees: additional, additional_percent, additional_fix, additional_fix_m2. Pagamentos adicionais, por exemplo DLD Fee.
- Periods: period_after_handover, period_after_roi. Frequência dos pagamentos recorrentes.
- Totals: price_total, fees_included_total. Valores totais do plano e taxas incluídas.
14. Layouts: <layouts>
layouts descreve um layout típico dentro de um empreendimento. Trata-se de um tipo de unidade agregado, não de um apartamento ou escritório específico.
- id: inteiro. ID exclusivo do layout. Use como ID externo do layout.
- title: objeto localizado. Nome do layout. Exiba conforme o idioma da interface.
- project_id: inteiro. ID do empreendimento pai. Vincule com offers.complex-id.
- building_name: objeto localizado. Nome do edifício. Não exiba se estiver vazio.
- price_on_request: 0/1. Sinalizador de ocultação de preço. Se 1, não exiba o preço.
- area_min / area_max: objeto. Faixa de área. m2 e ft2.
- area_balcony_min / area_balcony_max: objeto. Faixa de área da varanda. Pode estar vazia.
- type: objeto localizado. Tipo de imóvel. Consulte a referência de tipo de unidade.
- sale_units_count: inteiro. Quantidade de unidades disponíveis desse tipo. Não é uma lista de lotes.
- album: objeto. Galeria do layout. Exiba no nível do layout.
- levels_photos: objeto. Imagens por nível. Use como plantas.
- floors_count: inteiro. Número de níveis. 1, 2, 3 etc.
- rooms_count: objeto localizado. Quantidade de quartos. Consulte a referência de quantidade de quartos.
- price: objeto. Faixa de preço do layout. Ocultar quando price_on_request=1.
- is_limited_publication: 0/1. Restrição de publicação. Se 1, ocultar publicamente.
15. Referências de Valores Enum
- Project type: project, compound.
- Sales status: Preliminary Info, Announcement, Presale (EOI), Launch, On Sale, Sold Out, Pending.
- Construction status: Scheduled, Ready, Stopped, In Progress.
- Unit type: Apartment, Villa, Townhouse, Duplex, Triplex, Penthouse, Retail, Office, Suite.
- Rooms count: Studio, 1 BR, 2 BR, 3 BR, 4 BR, 5 BR, 6 BR, 7 BR, 8 BR, NA.
- BR price key: studio, 1, 2, 3, 4, 5, 6, villa, townhouse, n.
- Gallery category: Apresentação do empreendimento, Andamento da obra, Exemplos de acabamento, Infraestrutura, Vista.
- Currency: AED.
- Service charge unit: sq. m.
- Boolean flags: 0, 1; vazio é permitido para alguns campos.
Se o feed contiver um valor que não esteja na lista de referência, a importação não deve falhar. O valor deve ser armazenado como valor bruto, mapeado como desconhecido e registrado para revisão.
16. Valores Vazios
Um valor vazio significa “não especificado”, não 0. Tags vazias podem aparecer como <field/> ou <field></field>.
- assignment: a condição de cessão não está especificada.
- service_charge.value: a taxa de serviço não está especificada.
- eoi.is_eoi_return: a reembolsabilidade do EOI não está especificada.
- area_balcony_min.m2: a área da varanda não está especificada.
- description.en: a descrição está ausente.
17. Regras de Exibição
- Preço oculto: price_on_request = 1. Exiba “Preço sob consulta”.
- Preço visível: price_on_request = 0. Exiba preço mínimo/máximo.
- EOI: sales_status.en = Presale (EOI) e EOI preenchido. Exiba EOI.
- EOI não aplicável: sales_status.en != Presale (EOI). Oculte EOI.
- Esgotado: is_sold_out = 1 ou sales_status.en = Sold Out. Exiba “Esgotado” ou oculte da listagem.
- Publicação limitada: is_limited_publication = 1. Não publique publicamente.
- Assignment vazio: assignment vazio. Não exiba o bloco de cessão.
- Taxa de serviço vazia: service_charge.value vazio. Não exiba a taxa de serviço.
18. Regras de Importação
- Empreendimento: buscar por complex-id; se encontrado, atualizar; se não, criar.
- Layout: buscar por layouts.id; vincular ao empreendimento por project_id.
- Exclusão: se um objeto desaparecer do novo feed, marcá-lo como inativo em vez de excluí-lo imediatamente.
- Enum desconhecido: armazenar valor bruto, mapear como desconhecido e registrar.
- Valores vazios: não converter para 0 sem uma regra explícita específica do campo.
19. Estrutura de Dados Recomendada
Campo do empreendimento → Origem
- external_project_id: complex-id.
- raw_offer_type: type.
- title_*: title.
- description_*: description.
- developer_name: developer.title.
- developer_logo_url: developer.logo.
- city/address/coordinates: city, address, latitude, longitude.
- districts: districts.district.
- construction_status: status.en.
- sales_status: sales_status.en.
- price_min / price_max: price.
- price_on_request: price_on_request.
- galleries: photo, album, albums.
- payment_plans: payment_plans.
- eoi: eoi.
- stocks: stocks.
- source_updated_at: updated_at.
Campo do layout → Origem
- external_layout_id: layouts.id.
- external_project_id: layouts.project_id.
- title_*: layouts.title.
- building_name_*: building_name.
- unit_type: type.en.
- rooms_count: rooms_count.en.
- sale_units_count: sale_units_count.
- area_min / area_max: area_min, area_max.
- balcony_min / balcony_max: area_balcony_min, area_balcony_max.
- floors_count: floors_count.
- price_min / price_max: price.
- layout_gallery: album.
- levels_photos: levels_photos.
- is_limited_publication: is_limited_publication.