XML feed pro projekty a dispozice

1. Účel feedu

XML feed přenáší strukturovaná data o realitních projektech a typových dispozicích. Jeho účelem je umožnit přijímajícímu systému automaticky vytvářet a aktualizovat karty projektů, zobrazovat ceny, stavy, galerie, vybavení, platební podmínky, EOI a marketingové promo materiály od developerů.

Feed přenáší dispozice v agregované podobě: jeden záznam dispozice popisuje typovou dispozici a počet dostupných jednotek daného typu. Nejde o seznam konkrétních bytů, kanceláří nebo pozemků.

  • realty-feed: kořenový kontejner celého XML feedu. Hlavní ID: —
  • offers: jeden projekt nebo komplex. Hlavní ID: complex-id
  • layouts: typová dispozice v rámci projektu. Hlavní ID: id
  • payment_plans: jedna platební možnost projektu. Hlavní ID: id
  • eoi_item: jedna podmínka EOI. Hlavní ID: —
  • stock: marketingová kampaň, novinka nebo promo zpráva od developera. Hlavní ID: —

1.1 Co je XML feed

XML feed je strukturovaný soubor obsahující data o realitních projektech a typových dispozicích. Zahrnuje popisy, fotografie, ceny, adresy, stavy, specifikace, vybavení a další data potřebná pro zobrazení nemovitostí na webu agentury nebo v katalogu.

Jednoduše řečeno, XML feed je datový proud o nemovitostech, který přijímající systém pravidelně stahuje, čte a používá k automatické aktualizaci karet nemovitostí.

Alnair poskytuje data. Vývoj webu, tvorbu katalogu, integraci s CRM a logiku importu zajišťuje klient nebo technický tým klienta.

1.2 Co agentura potřebuje

Pro používání XML feedu potřebuje agentura vlastní technickou infrastrukturu, která dokáže pravidelně stahovat XML, parsovat jeho strukturu a aktualizovat data ve svém systému.

  • Web nebo katalog nemovitostí: místo, kde budou z feedu zobrazovány projekty a dispozice.
  • Technický tým nebo vývojář: nastavení stahování XML, parsování a importu.
  • XML parser: čtení struktury XML a převod do interního datového modelu.
  • Importní modul: vytváření, aktualizace a deaktivace projektů a dispozic.
  • Plánovač úloh: pravidelné spouštění importu podle rozvrhu, například přes cron nebo scheduler.
  • Logování chyb: sledování neznámých enum hodnot, prázdných polí a chyb při načítání.

1.3 Jak agentura používá XML feed

Typický pracovní postup vypadá takto:

  1. Systém agentury stáhne XML z osobního webového odkazu.
  2. XML se uloží jako nezpracovaný snapshot pro diagnostiku a opětovné zpracování.
  3. Parser přečte strukturu realty-feed, offers, layouts a vnořených bloků.
  4. Importní modul vytvoří nové projekty a dispozice nebo aktualizuje stávající.
  5. Objekty, které v novém feedu zmizí, se označí jako neaktivní.
  6. Web agentury zobrazí aktuální karty projektů, ceny, galerie a stavy.

Hlavní možnosti integrace:

  • Automatické aktualizace: projekty a dispozice se aktualizují bez ručního zásahu.
  • Tvorba stránek nemovitostí: data z feedu se používají pro karty projektů a dispozic.
  • Aktuální ceny a stavy: web dostává XML aktualizace podle plánu.
  • Filtry a vyhledávání: lze filtrovat podle čtvrti, ceny, typu nemovitosti, počtu pokojů a plochy.
  • Multimediální galerie: ve интерфеjsu lze zobrazit fotografie projektu, tematické galerie i obrázky dispozic.

2. Obecná struktura XML

<realty-feed>
  <generation-date>2026-06-17T12:06:39+04:00</generation-date>
  <offers>...</offers>
  <offers>...</offers>
</realty-feed>

  • realty-feed: objekt. Kořenový blok feedu.
  • generation-date: datetime. Datum a čas vygenerování XML. Slouží ke kontrole aktuálnosti dat.
  • offers: object[]. Seznam projektů nebo komplexů. Každý blok offers obsahuje data projektu a jeho dispozice.

2.1 Přístup k feedu a limity stahování

Feed je klientovi poskytován prostřednictvím osobního webového odkazu. Odkaz je jedinečný pro klienta a přijímající systém jej používá k automatickému stahování XML.

Osobní odkaz je dostupný administrátorovi v účtu Alnair. Administrátor může tento odkaz předat technickému týmu klienta pro nastavení importu.

  • Typ přístupu: osobní webový odkaz. Individuální URL XML feedu pro klienta.
  • Kde odkaz získat: účet Alnair. Odkaz je dostupný administrátorovi klienta.
  • Frekvence aktualizace feedu: každé 4 hodiny. Data XML se na straně Alnair aktualizují jednou za 4 hodiny.
  • Minimální interval stahování: maximálně jednou za hodinu. Přijímající systém nesmí přistupovat k feedu častěji než jednou za hodinu.
  • Překročení limitu: blokace přístupu. Při příliš častých požadavcích může být přístup k feedu dočasně zablokován.

Doporučená logika integrace: nastavit plánované stahování přes cron nebo scheduler, ukládat poslední přijaté XML a nepožadovat feed při každém načtení stránky. Optimální režim je stahovat feed maximálně jednou za hodinu s ohledem na to, že nová data se objevují přibližně každé 4 hodiny.

3. Projekt: <offers>

offers je hlavní entita feedu. Obsahuje popis projektu, developera, lokaci, stav výstavby a prodeje, ceny, média, vybavení, platební plány, EOI, marketingové promo akce a typové dispozice.

<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: integer. Jedinečné ID projektu v Alnair. Použijte jako externí ID projektu pro upsert.
  • type: enum. Typ entity na nejvyšší úrovni: project nebo compound. Ukládejte surovou hodnotu a importujte jako projekt nejvyšší úrovně.
  • logo: url. Logo projektu. Zobrazte v brandingu, nepoužívejte jako cover.
  • photo: url. Hlavní obrázek projektu / cover. Použijte jako cover image a hero image.
  • title: localized object. Název projektu v en/ru/ar. Zobrazte podle jazyka rozhraní.
  • description: localized HTML. Popis projektu v en/ru/ar. Renderujte bezpečně; HTML je uvnitř CDATA.
  • price_on_request: 0/1. Příznak skrytí ceny. Pokud je 1, zobrazte „Cena na vyžádání“.
  • status: object. Stavební status. Nezaměňovat se sales_status.
  • construction_start_at: datetime. Datum zahájení výstavby. Zobrazte, pokud je vyplněno.
  • construction_progress: decimal. Procento dokončení výstavby. Zobrazte jako procenta.
  • planned_completion_at: datetime. Plánované datum dokončení projektu. Použijte jako datum předání.
  • predicted_completion_at: datetime. Odhadované datum dokončení. Lze použít jako aktualizované datum dokončení.
  • amenities: object. Vybavení a vlastnosti projektu. Mapujte podle klíče.
  • developer: object. Developer projektu. Ukládejte název a logo.
  • city / address: string. Město a adresa projektu. Použijte v údajích o lokaci.
  • latitude / longitude: decimal. Souřadnice. Použijte pro mapu.
  • districts: object. Čtvrti projektu. Použijte pro filtry a kartu projektu.
  • album: object. Hlavní nezařazená galerie projektu. Zobrazte jako obecnou galerii.
  • albums: object. Tematické galerie projektu. Seskupte podle názvu.
  • for_sale_count: integer. Počet dostupných jednotek v projektu. Lze zobrazit jako dostupnost.
  • price: object. Obecný cenový rozsah projektu. Skrýt při price_on_request=1.
  • br_prices: object[]. Ceny podle počtu ložnic nebo kategorie. Použijte pro filtry a výpisy.
  • updated_at: datetime. Datum aktualizace projektu. Použijte pro synchronizaci.
  • is_sold_out: 0/1. Příznak vyprodání. Použijte společně se sales_status.
  • payment_plans: object[]. Platební možnosti od developera. Zobrazte jako platební možnosti.
  • sales_status: localized object. Prodejní status projektu. Určuje fázi prodeje.
  • stocks: object. Marketingové kampaně a promo zprávy od developera. Zobrazte jako promo bloky.
  • eoi: object. Expression of Interest. Zobrazujte pouze pro Presale (EOI).
  • service_charge: object. Poplatek za služby. Zobrazte, pokud je hodnota vyplněna.
  • assignment: decimal. Podmínka assignování. Prázdné znamená neuvedeno.
  • is_limited_publication: 0/1. Omezení publikace. Pokud je 1, nepublikujte veřejně bez povolení.
  • layouts: object[]. Typové dispozice projektu. Importujte jako podřízené entity projektu.

4. Lokalizovaná pole

Lokalizovaná pole mají stejnou strukturu: hodnoty v angličtině, ruštině a arabštině se předávají uvnitř tagu.

<title>
  <en>Název projektu</en>
  <ru>Název projektu</ru>
  <ar>Název projektu</ar>
</title>

  • en: anglická hodnota. Doporučená fallback hodnota.
  • ru: ruská hodnota.
  • ar: arabská hodnota.

Pravidlo fallbacku:

  1. Použijte jazyk rozhraní, pokud je vyplněn.
  2. Pokud je požadovaný jazyk prázdný, použijte en.
  3. Pokud je en prázdné, použijte ru.
  4. Pokud je ru prázdné, použijte ar.
  5. Pokud jsou všechny hodnoty prázdné, pole nezobrazujte.

5. Stavy

5.1 Stavební status: <status>

Stavební status ukazuje fyzický stav projektu. Neoznačuje dostupnost prodeje.

<status>
  <key>development_stage_progress</key>
  <en>V realizaci</en>
  <ru>Ve výstavbě</ru>
  <ar>V realizaci</ar>
</status>

  • Scheduled: projekt je plánovaný.
  • In Progress: výstavba probíhá.
  • Ready: projekt je dokončený.
  • Stopped: výstavba byla zastavena.

5.2 Prodejní status: <sales_status>

Prodejní status ukazuje komerční fázi projektu: oznámení, presale, launch, aktivní prodej nebo vyprodáno.

  • Preliminary Info: úvodní informace o projektu.
  • Announcement: projekt byl oznámen.
  • Presale (EOI): probíhá sběr EOI.
  • Launch: spuštění prodeje.
  • On Sale: projekt je k prodeji.
  • Sold Out: projekt je vyprodán.
  • Pending: status čeká na aktualizaci.

6. Developer a lokalita

Tyto bloky jsou potřeba pro zobrazení značky developera a geografické polohy projektu.

<developer>
  <title>
    <en>Název developera</en>
    <ru>Název developera</ru>
    <ar>Název developera</ar>
  </title>
  <logo>https://...</logo>
</developer>
<city>Dubai</city>
<address>Adresa projektu, Dubai</address>
<latitude>25.01809076</latitude>
<longitude>55.13354525</longitude>
<districts>
  <district>Jumeirah Village Triangle (JVT)</district>
</districts>

  • developer.title: localized object. Název developera.
  • developer.logo: url. Logo developera.
  • city: string. Město.
  • address: string. Adresa.
  • latitude / longitude: decimal. Souřadnice pro mapu.
  • districts.district: string[]. Čtvrti projektu.

7. Ceny

7.1 Cena projektu: <price>

Cena na úrovni projektu zobrazuje obecný cenový rozsah dostupných nabídek v projektu.

<price>
  <min>815462</min>
  <max>2089780</max>
  <min_usd>222009</min_usd>
  <max_usd>568942</max_usd>
  <currency>AED</currency>
</price>

  • min: decimal. Minimální cena.
  • max: decimal. Maximální cena.
  • min_usd: decimal. Minimální cena v USD.
  • max_usd: decimal. Maximální cena v USD.
  • currency: enum. Hlavní měna, obvykle AED.

Pokud je price_on_request = 1, přesné ceny se veřejně nezobrazují, i když je cena vyplněna.

7.2 Ceny podle kategorie: <br_prices>

br_prices sdružuje ceny a plochy podle počtu ložnic nebo typu nemovitosti. Je to užitečné pro filtry a krátké karty projektů.

<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: studia.
  • 1-6: počet ložnic.
  • villa: vily.
  • townhouse: řadové domy.
  • n: neplatí / nebytová kategorie / jiné.

8. Média

Média ve feedu jsou rozdělena do několika typů. Neměla by se slučovat do jedné galerie bez zohlednění jejich účelu: jeden obrázek může být cover projektu, jiný logo, další promo obrázek a jiný půdorys.

  • logo: offers.logo. Logo projektu. Zobrazte v brandingu projektu, nepoužívejte jako cover.
  • photo: offers.photo. Hlavní obrázek projektu / cover. Použijte jako cover image v kartě a hero image na stránce projektu.
  • album.image: offers.album.image. Hlavní nezařazená galerie projektu. Zobrazte v obecné galerii projektu.
  • albums.album.images.image: offers.albums.album.images.image. Tematická galerie projektu. Seskupte podle albums.album.title.
  • developer.logo: offers.developer.logo. Logo developera. Zobrazte v bloku developera.
  • stocks.stock.logo: offers.stocks.stock.logo. Obrázek marketingové kampaně. Zobrazte uvnitř promo bloku.
  • layouts.album.image: offers.layouts.album.image. Galerie konkrétní typové dispozice. Zobrazte na úrovni dispozice.
  • levels_photos.level_photo.image: offers.layouts.levels_photos.level_photo.image. Obrázek dispozice podle podlaží. Použijte jako půdorys.

<photo>https://...</photo>
<album>
  <image>https://...</image>
</album>
<albums>
  <album>
    <title><en>Infrastruktura</en><ru>Infrastruktura</ru><ar>...</ar></title>
    <images>
      <image>https://...</image>
    </images>
  </album>
</albums>

  • Project presentation: prezentační obrázky projektu.
  • Construction progress: fotografie průběhu výstavby.
  • Finishing examples: ukázky dokončení.
  • Infrastructure: infrastruktura projektu.
  • View: výhledy a okolí.

Ne každá kategorie musí být přítomna v každém projektu. Pokud je název kategorie prázdný, lze obrázky importovat jako nezařazené nebo je umístit do obecné galerie.

V současné struktuře neexistuje samostatný XML tag pro history/story. Novinky, promo zprávy a marketingové materiály projektu se předávají přes stocks. Pro historii výstavby lze použít kategorii Construction progress, pokud je přítomna v albums.

9. Vybavení

amenities popisuje vybavení a vlastnosti projektu. Pro integraci je lepší používat key, zatímco lokalizované hodnoty slouží pro zobrazení.

<amenities>
  <amenity>
    <key>project_facilities_gym</key>
    <en>Posilovna</en>
    <ru>Posilovna</ru>
    <ar>Posilovna</ar>
  </amenity>
</amenities>

  • amenities: object. Kontejner vybavení.
  • amenity: object. Jedna položka vybavení.
  • key: enum. Technický klíč.
  • en / ru / ar: string. Název vybavení ve třech jazycích.

Klíč projecet_hotel_license obsahuje překlep, ale musí být mapován jako Hotel License. Doporučuje se podporovat alias a neporušit import.

10. Marketingové promo akce: <stocks>

stocks jsou marketingové kampaně, novinky a promo zprávy od developerů. Mohou obsahovat speciální ceny, slevy, podmínky launch, oznámení EOI, dočasné platební nabídky a reklamní materiály. Tento blok není skladovou zásobou a neurčuje dostupnost jednotek.

<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: object. Kontejner marketingových zpráv.
  • stock: object. Jedna kampaň, novinka nebo promo oznámení.
  • title: localized object. Název promo akce.
  • description: localized HTML. Popis promo akce.
  • start_at: datetime. Datum zahájení.
  • end_at: datetime. Datum ukončení; může být prázdné.
  • logo: url. Obrázek promo akce.

Pro dostupnost nemovitostí používejte for_sale_count, layouts.sale_units_count a sales_status, nikoli stocks.

11. EOI

EOI znamená Expression of Interest. Blok popisuje předběžný zájem nebo podmínky zálohy pro projekty ve statusu Presale (EOI).

<eoi>
  <is_eoi_return>0</is_eoi_return>
  <eoi_items>
    <eoi_item>
      <price>100000</price>
      <percent/>
      <description>
        <en>Částka EOI pro 2 Bedrooms</en>
        <ru>Částka EOI pro 2 Bedrooms</ru>
        <ar>...</ar>
      </description>
    </eoi_item>
  </eoi_items>
</eoi>

  • is_eoi_return: 0/1/prázdné. 0 = nevratné, 1 = vratné, prázdné = neuvedeno.
  • eoi_items: object. Kontejner podmínek EOI.
  • eoi_item: object. Jedna podmínka EOI.
  • price: decimal. Pevná částka EOI.
  • percent: decimal. Procento EOI, pokud se používá.
  • description: localized object. Popis podmínky.
  • sales_status.en = Presale (EOI) a eoi_items je vyplněné: zobrazte EOI.
  • Jakýkoli jiný sales_status: EOI skryjte.

12. Poplatek za služby a assignment

<service_charge>
  <value>172.22</value>
  <unit>sq. m</unit>
  <currency>AED</currency>
</service_charge>
<assignment>40.00</assignment>

  • service_charge.value: částka poplatku za služby. Pokud je prázdná, blok nezobrazujte.
  • service_charge.unit: jednotka výpočtu, obvykle sq. m. Může být prázdná.
  • service_charge.currency: měna, obvykle AED. Může být prázdná.
  • assignment: procento, po kterém je možné assignment provést. Prázdné = informace neuvedena, nejde o omezení.

13. Platební plány: <payment_plans>

payment_plans popisuje platební možnosti nemovitosti od developera. Jeden projekt může mít více platebních plánů. Každý plán rozděluje platbu do fází: rezervace, výstavba, předání a po předání. Poplatky a dodatečné náklady se předávají samostatně, takže celkové procento může přesáhnout 100%. Například 104% může znamenat 100% ceny nemovitosti + 4% poplatek DLD.

  • Basic: id, title, currency. Identifikátor plánu, název a měna. title je volný text, ne enum.
  • Booking: on_booking_percent, on_booking_fix, on_booking_payments_count, on_booking_fees. Platby a poplatky ve fázi rezervace.
  • Construction: on_construction_percent, on_construction_fix, on_construction_payments_count, on_construction_fees. Platby během výstavby.
  • Handover: on_handover_percent, on_handover_fix, on_handover_payments_count, on_handover_fees. Platby při předání nemovitosti.
  • Post-handover: post_handover_percent, post_handover_fix, on_post_handover_payments_count, on_post_handover_fees. Platby po předání.
  • ROI: roi_percent, roi_fix, roi_payments_count, roi_fees. Pole pro schémata ROI nebo garantovaného výnosu.
  • Additional fees: additional, additional_percent, additional_fix, additional_fix_m2. Dodatečné platby, například DLD Fee.
  • Periods: period_after_handover, period_after_roi. Frekvence opakovaných plateb.
  • Totals: price_total, fees_included_total. Celkové částky plánu a zahrnuté poplatky.

14. Dispozice: <layouts>

layouts popisuje typovou dispozici v rámci projektu. Jde o agregovaný typ jednotky, nikoli o konkrétní byt nebo kancelář.

  • id: integer. Jedinečné ID dispozice. Použijte jako externí ID dispozice.
  • title: localized object. Název dispozice. Zobrazte podle jazyka rozhraní.
  • project_id: integer. ID nadřazeného projektu. Propojte s offers.complex-id.
  • building_name: localized object. Název budovy. Nezobrazujte, pokud je prázdný.
  • price_on_request: 0/1. Příznak skrytí ceny. Pokud je 1, cenu nezobrazujte.
  • area_min / area_max: object. Rozsah plochy. m2 a ft2.
  • area_balcony_min / area_balcony_max: object. Rozsah plochy balkonu. Může být prázdný.
  • type: localized object. Typ nemovitosti. Viz reference typů jednotek.
  • sale_units_count: integer. Počet dostupných jednotek tohoto typu. Nejde o seznam pozemků.
  • album: object. Galerie dispozice. Zobrazte na úrovni dispozice.
  • levels_photos: object. Obrázky podle podlaží. Použijte jako půdorysy.
  • floors_count: integer. Počet podlaží. 1, 2, 3 atd.
  • rooms_count: localized object. Počet pokojů. Viz reference počtu pokojů.
  • price: object. Cenový rozsah dispozice. Skrýt při price_on_request=1.
  • is_limited_publication: 0/1. Omezení publikace. Pokud je 1, skryjte veřejně.

15. Reference hodnot enum

  • Typ projektu: project, compound.
  • Prodejní status: Preliminary Info, Announcement, Presale (EOI), Launch, On Sale, Sold Out, Pending.
  • Stavební status: Scheduled, Ready, Stopped, In Progress.
  • Typ jednotky: Apartment, Villa, Townhouse, Duplex, Triplex, Penthouse, Retail, Office, Suite.
  • Počet pokojů: 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.
  • Kategorie galerie: Project presentation, Construction progress, Finishing examples, Infrastructure, View.
  • Měna: AED.
  • Jednotka service charge: sq. m.
  • Booleovské příznaky: 0, 1; u některých polí je povolené i prázdné.

Pokud feed obsahuje hodnotu, která není v referenčním seznamu, import nesmí selhat. Hodnota musí být uložena jako surová, namapována jako neznámá a zalogována k revizi.

16. Prázdné hodnoty

Prázdná hodnota znamená „neuvedeno“, nikoli 0. Prázdné tagy mohou vypadat jako <field/> nebo <field></field>.

  • assignment: podmínka assignmentu není uvedena.
  • service_charge.value: poplatek za služby není uveden.
  • eoi.is_eoi_return: vratnost EOI není uvedena.
  • area_balcony_min.m2: plocha balkonu není uvedena.
  • description.en: popis chybí.

17. Pravidla zobrazení

  • Cena skrytá: price_on_request = 1. Zobrazte „Cena na vyžádání“.
  • Cena viditelná: price_on_request = 0. Zobrazte min/max cenu.
  • EOI: sales_status.en = Presale (EOI) a EOI je vyplněné. Zobrazte EOI.
  • EOI není relevantní: sales_status.en != Presale (EOI). EOI skryjte.
  • Vyprodáno: is_sold_out = 1 nebo sales_status.en = Sold Out. Zobrazte „Vyprodáno“ nebo skryjte z výpisu.
  • Omezená publikace: is_limited_publication = 1. Nepublikujte veřejně.
  • Assignment prázdný: assignment prázdné. Blok assignmentu nezobrazujte.
  • Service charge prázdný: service_charge.value prázdné. Poplatek za služby nezobrazujte.

18. Pravidla importu

  • Projekt: vyhledat podle complex-id; pokud je nalezen, aktualizovat; pokud ne, vytvořit.
  • Dispozice: vyhledat podle layouts.id; propojit s projektem přes project_id.
  • Smazání: pokud objekt zmizí z nového feedu, označit jej jako neaktivní místo okamžitého smazání.
  • Neznámý enum: uložit surovou hodnotu, namapovat jako neznámou a zalogovat.
  • Prázdné hodnoty: nekonvertovat na 0 bez explicitního pravidla pro dané pole.

Pole projektu → Zdroj

  • 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.

Pole dispozice → Zdroj

  • 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.