Az ingatlan-adatlap mezőregisztere, a területszámítás és a közmű-párosítás

Az oszlopban és a JSON-ban tárolt adatlap-mezők, a típusfüggő láthatóság, a normalizálás, a helyiségtípus-szabályokra épülő területszámítás, a közmű-azonosítók és a költségszámla-párosítás.

A mezőregiszter SQL nélkül a Dlbtproperty könyvtárban él (TYPES, USES, COLUMNS, FIELDS, GROUPS, RETIRED, ROOM_TYPES, UTILITIES, DOC_ROLES, ENERGY_SCALE, COUNTS_AS, AREA_BUCKETS). A tárolás a tulajdonos modellé.

Mezők

  • Oszlopban (kereshető): area_net, area_gross, area_plot, rooms, half_rooms, build_year (1000–2200), floor_level (−5–200), building_floors; továbbá area_terrace, area_garden, area_storage, wc_count, bathroom_count.
  • JSON-ban (details): a csoportok (size, building, condition, comfort, parking, energy, energy_cert, plot, development, commercial) select, multi, bool és date mezői.
  • Típusok: flat, house, terraced, holiday, plot, development, condominium, office, retail, warehouse, garage, agricultural, hospitality, other; funkciók: residential, office, retail, hospitality, warehouse, workshop, medical, education.
  • Láthatóság: a mező akkor látszik, ha bármelyik kiválasztott típushoz tartozik; típus nélkül minden. Szöveg legfeljebb 255 karakter.
  • A visszavont hirdetési mezők (RETIRED: available_from, min_rent_months, deposit_months, pets, smoking, common_cost_payer, utility_payer) nem jelennek meg sem a formon, sem az adatlapon, sem az exportban, de a korábbi értékük rejtett mezőben visszaíródik.
  • Régi parkolási értékek átfordítása: garage_included és garage_optional → garage, none → törlődik.

Normalizálás

normalize(): csak a kiválasztott típus(ok)hoz tartozó mezők maradnak, a tartományon kívüli számok NULL-ra esnek (hibaüzenet nélkül), a select és multi értékek fehérlistásak. normalizeRooms(): üres sor kimarad, ismeretlen típus other, negatív terület 0. normalizeMeters(): azonosító nélküli sor kimarad.

Területszámítás

  1. computeAreas() a helyiségtípus-törzs szabályaival számol, ha van helyiség és van szabály; felülírja az area_net, rooms, half_rooms, wc_count, bathroom_count, area_terrace, area_garden, area_storage oszlopot.
  2. A küszöb nélküli típusok terület × area_factor összege a lakótér; a küszöbös típusok gyűjtőjéből a lakótér threshold_pct %-áig area_factor, fölötte factor_over arány számít.
  3. Szoba (counts_as = room): a half_room_max alatt félszoba; WC és fürdő darabra.
  4. Közös (ownership = common) helyiség a lakás területébe és darabszámaiba nem számít, csak a közös összegbe; ismeretlen kódú helyiség „egyéb, 100 %”.
  5. Helyiséglista nélkül a kézi érték marad. Élő számítás: computeareas végpont (edit vagy add), a form 250 ms késleltetéssel hívja; üres listánál empty.

Táblák

A táblanevek a telepítés saját előtagjával állnak az adatbázisban. property_room: property_id, level, room_type, name, area, windowless, sort_order, ownership (private, common). property_meter: property_id, utility, provider, identifier (index), payer (owner, tenant), note. A helyiségtípus-választó a törzs aktív típusait és a sorban már rögzített, közben inaktivált típust kínálja; migráció előtt a beépített 20 típust.

Költségszámla-párosítás

getByMatchValue(): előbb a match_value (aktív ingatlan), találat híján a property_meter.identifier; ilyenkor a mérő utility és payer adatát is visszaadja. A metódus hívóját a forrásvizsgálat nem találta; a felhasználási hely a kódból nem állapítható meg.