Helyiségtípusok: adatmodell, mentés és törlésvédelem

A helyiségtípus-törzs felépítése, a mentés ellenőrzései, a kétféle törlés és a terület-számítás szabályainak tárolása.

A helyiségtípus-törzs üzemeltetői törzsadat: az ingatlanok helyiséglistájának típus-választóját és a nettó hasznos terület számításának szabályait adja. Cég-adatot nem tartalmaz, ezért tartalmi hatóköre nincs.

Adatmodell

A táblanevek a telepítés saját előtagjával állnak az adatbázisban.

TáblaSzerepFő mezők
room_typea típus és a szabálya; egyedi kódcode, counts_as, area_bucket, area_factor, threshold_pct, factor_over, half_room_max, sort_order, status
room_type_descriptionnyelvenkénti név (max. 64 karakter)room_type_id, language_id, name

A helyiség-sor a kódra hivatkozik (property_room.room_type). A tulajdonos modell publikus metódusai más modulok számára: getRules() (ingatlan form, mentés, területszámítás), getOptions() (helyiség-választó), ready().

Mentés

  1. A kód kisbetűsítve, a minta: betűvel kezdődő, 2–32 karakter kisbetű, szám, aláhúzás. Hibás: „2–32 karakter: kisbetű, szám, aláhúzás, betűvel kezdve.”; foglalt: „Ezt a kódot már egy másik helyiségtípus használja.”
  2. Legalább egy nyelven név kell: „Adja meg a megnevezést legalább egy nyelven.” Bármely hibánál felül: „Ellenőrizze a megjelölt mezőket.”
  3. Az arányok a felületen százalékban érkeznek, a törzsben szorzóként (százalék osztva 100-zal) tárolódnak. A modell fehérlistán át ír: ismeretlen counts_as esetén other, ismeretlen area_bucket esetén net. Határok: arány 0–10, küszöb 0–1000 %, félszoba-határ 0–1000.
  4. Visszaolvasás után siker: „Mentve.”; új rekordnál a válasz az új azonosítót is visszaadja, amelyet a form a rejtett mezőbe ír, így a következő mentés módosítás.

Állapotok és törlés

  • Státusz: 0 inaktív, 1 aktív, 9 törölt (kuka). A helyiség-választó csak aktív típust kínál; a számításban minden nem törölt típus szabálya él.
  • Egyetlen törlés-végpont van. Ha a usernek delete joga van, végleges törlés fut, de csak akkor, ha egyetlen helyiség sem használja a kódot (az ingatlan modell countRoomsByType() metódusa számol); különben: „Nem törölhető: 3 helyiség használja. Inaktiválja helyette.” Ez az ág fut akkor is, ha mindkét törlési joga megvan.
  • Ha csak statusdelete joga van, a sor kukába kerül (status 9). Nem létező sor: „A helyiségtípus nem található.”

Alapadatok

A migráció 23 típust vesz fel angol, magyar és német névvel. Szoba-típusok 12 m² félszoba-határral: living, bedroom, study, office. Nettó gyűjtő 100 %-kal többek között: kitchen, dining, hall, corridor, wardrobe, pantry, laundry, basement, attic, other. A terrace és a balcony a terasz-gyűjtőbe kerül 50 %-kal, 50 %-os küszöbbel, fölötte 30 %-kal. A storage, garage, garden 0 %-kal a saját gyűjtőjébe, a pool és a stairs 0 %-kal az egyéb gyűjtőbe kerül.

Jogosultság

  • Alap útvonal-hozzáférés: a helyiségtípus menüpont útvonala.
  • Funkciójogok (alapcsomag): list, add, edit, statusdelete, delete, debug. Az aktiválás és inaktiválás az edit joghoz tartozik; a kuka csak a törölt elemek láthatóságára jogosultnak látszik.
  • Tartalmi hatókör: nincs, üzemeltetői törzs.

Ismert korlátok

Az adatszoba és a REST-export a helyiség típuskódját adja tovább. A kódból nem állapítható meg, hogy az adatszoba a törzs nevét vagy egy beépített feliratot ír-e ki.