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:

  1. O sistema da imobiliária baixa o XML a partir de um link web pessoal.
  2. O XML é salvo como um snapshot bruto para diagnóstico e reprocessamento.
  3. O parser lê a estrutura realty-feed, offers, layouts e os blocos aninhados.
  4. O módulo de importação cria novos empreendimentos e layouts ou atualiza os existentes.
  5. Os objetos que desaparecem do novo feed são marcados como inativos.
  6. 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:

  1. Use o idioma da interface se ele estiver preenchido.
  2. Se o idioma solicitado estiver vazio, use en.
  3. Se en estiver vazio, use ru.
  4. Se ru estiver vazio, use ar.
  5. 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.

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.