2.9 KiB
2.9 KiB
(Az Adatbázis Bibliája.)
🗄️ DATABASE GUIDE
🗄️ DATABASE GUIDE & DATA INTEGRITY (v1.0)
1. Soft Delete & Újraregisztráció Logika
A rendszerben nincs fizikai törlés. A data.users tábla az alábbi módon kezeli a visszatérő felhasználókat:
- Indexelés: Az
emailmezőn egy Partial Unique Index (idx_user_email_active_only) található. - Működés: - Ha
is_deleted = FALSE, az email nem használható újra.- Ha a felhasználó törli magát (
is_deleted = TRUE), az email felszabadul. - Új regisztrációkor a rendszer új
user_id-t generál, de ha a KYC adatok egyeznek, ugyanahhoz aperson_id-hoz kapcsolja az új fiókot.
- Ha a felhasználó törli magát (
2. Person (Személyazonosság) - KYC & Safety
A data.persons tábla tárolja a banki szintű azonosításhoz szükséges adatokat:
- Szétválasztott nevek:
last_nameésfirst_namea pontos azonosításhoz. - JSONB mezők: Rugalmas adatszerkezet az okmányokhoz (
identity_docs) és vészhelyzeti adatokhoz (medical_emergency). - Jutalom Trigger: A profil 100%-os kitöltése (név, szül. adatok, okmányok) automatikusan aktiválja a 14 napos PRÉMIUM csomagot.
3. Economy (Pénztárca & Referral)
- Wallet: Minden regisztrációkor létrejön egy rekord a
data.walletstáblában (0 Coin, 0 XP). - Referral Snapshot: A jutalékok kifizetésekor a rendszer rögzíti a tranzakció pillanatában érvényes százalékot (
commission_percentage), így a későbbi admin módosítások nem érintik a múltbeli elszámolásokat.
Sémák
public: Csak technikai táblák (pl. Alembic version).data: Az üzleti logika 55 táblája.
Kulcs Táblacsoportok
- Fleet:
vehicles,user_vehicles,vehicle_events,engine_specs. - Marketplace:
service_providers,service_specialties,organization_locations. - Economy:
wallets,transactions,shop_items. - Identity:
users,persons,companies.
Migrációs Állapot
- Eszköz: Alembic.
- Current Head:
10b73fee8967. - Hiányzó láncszem: A
personstábla létrehozása és a meglévőuserstábla migrációja (Ba
4. Regionalizáció és Multi-Currency (EU Scope)
A rendszer fel van készítve az EU-s piacra:
data.regional_settings: Tárolja az országkódokat (ISO 3166-1), az alapértelmezett nyelvet és a helyi pénznemet.data.exchange_rates: Napi frissítésű váltószámok (Base: EUR).- Valuta Logika: - Minden költséget a rögzítéskori helyi pénznemben (
currency_code) és az akkori váltószámmal átszámított EUR-ban is elmentünk.- Képlet:
Cost_{EUR} = Cost_{Local} \cdot ExchangeRate - Ez biztosítja, hogy a nemzetközi flották egységes kimutatást kapjanak.
- Képlet:
5. Dinamikus Paraméterezés (System Settings)
auth.reward_days: Adminból állítható egész szám (alapértelmezett: 14).auth.reward_tier: Melyik csomagot kapja (alapértelmezett: PREMIUM).