🗄️ Adatbázis állapot napló

    Struktúra: system_settings és email_templates sémája most már tartalmazza a key oszlopot (sikeres ALTER TABLE).

    Integritás: verification_tokens lejárati idő ellenőrzése (now() alapú) beépítve.

📝 Projekt Jelentések (2026-01-28 22:19)
🗄️ Adatbázis állapot napló (20260128_2219)

    Tiers & Translations: Oszlopok és alapértékek betöltve.

    Bot Logs: bot_discovery_logs tábla aktív, készen áll a jelentésekre.

    Integritás: SQL kényszerek (Foreign Keys) és típusok (Enums) élesek.

📝 Jelentések (2026-01-28 22:45)
🗄️ Adatbázis állapot napló

    Értesítési modul: subscription_notification_rules tábla létrehozva.

    Bot modul: bot_discovery_logs tábla létrehozva.

    Jármű adatok: vehicle_variants kibővítve (power, fuel, cylinder).

📝 Jelentések (2026-01-28 22:15)
🗄️ Adatbázis állapot napló (20260128_2215)

    Fix: email_templates tábla szerkezete javítva (Key/Lang oszlopok).

    Admin: org_subscriptions felkészítve a manuális és automata hosszabbításra.

    Integritás: A vin_deadline (14 nap) figyeli az ideiglenes járműveket.

🗄️ Adatbázis állapot napló (20260128_2230)

    Tiers & Translations: Oszlopok pótolva (description, lang).

    User Vehicles: Kibővítve VIN-ellenőrzési mezőkkel (vin_verified, vin_deadline).

    Séma: Stabil, 40 tábla + új mezők.

📈 Jelentések (2026-01-28 21:50)

    Adatbázis állapot: A companies, equipment és subscription táblák élesek. A specifikációk (gumi, szervizintervallum) hozzáadva.

    Horgony: Az Auth V2 sikeres tesztje után áttérés az adatfeltöltési és automatizálási fázisba.

    Változók: custom_service_interval_km bevezetve a rugalmas karbantartáshoz.

🗄️ Adatbázis állapot napló (20260128_2200)

    Nyelvi modul: data.translations aktív, feltöltésre vár.

    Pénzügyi modul: data.subscription_tiers struktúra kész, de üres.

    Jármű hierarchia: Kategóriák betöltve (CAR, MOTORCYCLE, TRUCK).

🗄️ Adatbázis állapot napló (20260128_2145)

    Státusz: Struktúra kibővítve a Felszereltség (Equipment) modullal.

    Típusok: data.equipment_source hozzáadva.

    Integritás: A fa struktúra (Category -> Brand -> Model -> Variant) biztosított.

🗄️ Adatbázis állapot napló (20260128_2130)

    Státusz: Alapstruktúra kész (40 tábla).

    Adatmennyiség: Minimális (Seed adatok).

    Mentés: /mnt/nas/git_vault/backup_20260128_alap_kesz.sql (Létrehozva).

    Hiba: Nincs, az integritás 100%-os.

🗄️ Adatbázis állapot napló (20260128_2105)
Paraméter	Állapot	Megjegyzés
Összes tábla	40 db	Minden kért entitás (Companies, Members, Audit, etc.) létrejött.
Custom Types	4 db	companyrole, expense_category, moderation_status, source_type rendben.
Sémák	data	A logikai elválasztás (schema) sikeres.

📝 Jelentések frissítése (2026-01-28 20:45)

    Adatbázis állapot napló: Manuális típus- és tábladefiniálás folyamatban az integritás érdekében.

    Horgony megjegyzések: A companyrole ENUM és a függő táblák szinkronizálása a modellekkel.

    Változók könyve: Új típus: data.companyrole.

🗄️ Adatbázis állapot napló (20260128_2030)

    Email_logs tábla: Frissítve. Oszlopok hozzáadva: recipient, user_id, provider_id, status, email_type.

    Szekvenciák: users_id_seq és vehicle_brands_id_seq szinkronizálva.

    Integritás: Ellenőrizve. A kényszerített ALTER TABLE parancsok lefutottak.

📘 ADATBÁZIS ÁLLAPOT KÖNYV (v2.42 | 2026.01.27 - 23:55)
Modul	Hiba	Megoldás
Auth V2	Enum (email_verify) hiba	::tokentype cast hozzáadva a kódhoz.
Bot	Unique Constraint hiány	ALTER TABLE ... ADD CONSTRAINT (pgAdmin).
Database	ID Ütközés	SELECT setval(...) (pgAdmin).

📘 ADATBÁZIS ÁLLAPOT KÖNYV (v2.40 | 2026.01.27 - 23:50)
Hiba jellege	Oka	Megoldás
IntegrityError	ID ütközés (Key id=1 already exists)	SELECT setval(...) lefuttatva (pgAdmin).
InvalidTextRepresentation	Hiányzó Enum érték (email_verify)	ALTER TYPE tokentype ADD VALUE... (pgAdmin).
Regisztráció	500-as hiba	Az Enum fixálása után 201 Created várható.

📘 ADATBÁZIS ÁLLAPOT KÖNYV (v2.39 | 2026.01.27 - 23:58)
Feladat	Státusz	Megjegyzés
Auth Fix	🛠️ SQL SZINKRON	A setval parancs után a 500-as hiba megszűnik.
Brands	✅ 114 MÁRKA	Az alaplista sikeresen betöltve.
Models	🏗️ DISCOVERY	A bot elkezdi a típusok (Corolla, Golf, stb.) társítását.

📘 ADATBÁZIS ÁLLAPOT KÖNYV (v2.38 | 2026.01.27 - 23:45)
Feladat	Státusz	Módszer
Mapper Fix	✅ KÉSZ	sed parancsok lefutottak.
500 Error	🟢 MEGOLDVA	A visszamutató kapcsolatok törölve.
Jármű Feltöltés	🏗️ FOLYAMATBAN	200+ márka szinkronizálása a konténerben.

📘 ADATBÁZIS ÁLLAPOT KÖNYV (v2.37 | 2026.01.27 - 23:55)
Feladat	Státusz	Megjegyzés
Auth (Regisztráció)	🛠️ JAVÍTÁS ALATT	A sed parancs után az 500-as hiba meg fog szűnni.
Vehicle Brands	🏗️ BETÖLTÉS	A Python scripttel biztonságosan betölthető.
Séma	⚠️ ELLENŐRZÉS	A category_id hiánya miatt a script hibát jelezhet, ha más az oszlopnév.

📘 ADATBÁZIS ÁLLAPOT KÖNYV (v2.36 | 2026.01.27 - 23:35)
Modul	Státusz	Hiba oka
User Mapper	❌ HIBÁS	Hiányzó vehicles property (visszamutató link).
Auth API	🟢 FUT	De a 500-as hiba megállítja az írást.
Vehicle DB	✅ KÉSZ	Táblák és kategóriák az SQL-lel feltöltve.

📘 ADATBÁZIS ÁLLAPOT KÖNYV (v2.34 | 2026.01.27 - 23:25)
Tábla	Ellenőrizendő mezők	Cél
users	first_name, last_name	Regisztráció alapfeltétele.
audit_logs	ip_address, endpoint	Naplózás hiba elkerülése.
verification_tokens	token_hash	Aktiváló email hiba elkerülése.

📘 ADATBÁZIS ÁLLAPOT KÖNYV (v2.33 | 2026.01.27 - 23:15)
Állomány	Státusz	Megjegyzés
user.py	✅ FIXÁLVA	Kapcsolatok kikommentelve, SQLAlchemy hiba megszűnt.
main.py	✅ KÉSZ	V1 és V2 útvonalak a helyükön.
docker	🟢 FUT	A konténer elindult.

📘 ADATBÁZIS ÁLLAPOT KÖNYV (v2.32 | 2026.01.27 - 23:05)
Hiba	Állapot	Megoldás
500 Internal Error	🔍 DIAGNÓZIS ALATT	Logok ellenőrzése szükséges.
Audit Logs	🏗️ BŐVÍTÉS	ip_address oszlop ellenőrzése.
Vehicle Seeding	⏳ VÁRAKOZIK	Az alapvető regisztráció után indul.

📘 ADATBÁZIS ÁLLAPOT KÖNYV (v2.27 | 2026.01.27 - 22:15)
Hiba	Megoldás	Státusz
Missing Module (requests)	Lecserélve urllib-re (standard lib).	✅ MEGOLDVA
Syntax Error (törmelék kód)	tee parancsal felülírva a teljes fájl.	✅ MEGOLDVA
API Egységesség	V1 eltávolítva, minden a V2 alatt fut.	✅ MEGOLDVA

📘 ADATBÁZIS ÁLLAPOT KÖNYV (v2.27 | 2026.01.27 - 22:15)
Hiba	Megoldás	Státusz
Missing Module (requests)	Lecserélve urllib-re (standard lib).	✅ MEGOLDVA
Syntax Error (törmelék kód)	tee parancsal felülírva a teljes fájl.	✅ MEGOLDVA
API Egységesség	V1 eltávolítva, minden a V2 alatt fut.	✅ MEGOLDVA



📘 ADATBÁZIS ÁLLAPOT KÖNYV (v2.27 | 2026.01.27 - 22:15)
Hiba	Megoldás	Státusz
Missing Module (requests)	Lecserélve urllib-re (standard lib).	✅ MEGOLDVA
Syntax Error (törmelék kód)	tee parancsal felülírva a teljes fájl.	✅ MEGOLDVA
API Egységesség	V1 eltávolítva, minden a V2 alatt fut.	✅ MEGOLDVA

📘 ADATBÁZIS ÁLLAPOT KÖNYV (v2.26 | 2026.01.27 - 22:12)
Modul	Státusz	Javítás
main.py	🟢 AKTÍV	Szintaktikai hiba eltávolítva.
v2/auth.py	🟢 AKTÍV	Tartalom frissítve, V1 függőség levágva.
Container	🟢 FUT	Újraindítás után online.

📘 ADATBÁZIS ÁLLAPOT KÖNYV (v2.25 | 2026.01.27 - 22:01)
Tábla	Verzió	Státusz	Megjegyzés
users	DB	✅ KÉSZ	first_name, last_name oszlopok a helyükön.
email_providers	DB	✅ KÉSZ	SendGrid (id: 5) aktív a CSV alapján.
API Routes	Kód	⚠️ ZAVAROS	V1 és V2 keveredés.

📘 ADATBÁZIS ÁLLAPOT KÖNYV (v2.23 | 2026.01.27 - 22:30)
Feladat	Státusz	Megoldás
Email duplikáció	🛠️ JAVÍTÁS ALATT	DELETE + UNIQUE CONSTRAINT SQL.
Auth.py telepítés	✅ KÉSZ	Heredoc (cat) módszerrel frissítve.
500-as hiba	🔍 TESZTELÉSRE VÁR	Az SQL lefutása után elvileg megszűnik.

📘 ADATBÁZIS ÁLLAPOT KÖNYV (v2.22 | 2026.01.27 - 22:15)
Modul	Állapot	Megjegyzés
Auth API	✅ KÉSZ	auth.py frissítve, mezők szinkronban.
Email Providers	✅ KÉSZ	Duplikációk törölve, SendGrid aktív.
Audit Log	✅ KÉSZ	Minden regisztrációt naplóz (IP-vel).

📘 ADATBÁZIS ÁLLAPOT KÖNYV (v2.21 | 2026.01.27 - 22:05)
Tábla	Séma	Változás	Státusz
users	data	first_name, last_name mezők aktívak	✅ KÉSZ
email_providers	data	unique_provider_name kényszer hozzáadva	✅ KÉSZ
auth.py	Fájl	Kereszt/Vezetéknév szétválasztva	✅ KÉSZ

📘 ADATBÁZIS ÁLLAPOT KÖNYV (v2.20 | 2026.01.27 - 21:55)
Funkció	Admin-beállítás (Key)	Érték
Bot-védelem	registration_throttle_minutes	10
Helyszín-szűrő	allowed_countries_list	[EU Országok]
E-mail Motor	email_providers	SendGrid (Aktív)

📘 ADATBÁZIS ÁLLAPOT KÖNYV (v2.19 | 2026.01.27 - 21:45)
Funkció	Módszer	Beállítás helye
Bot-védelem	IP Throttling (10 perc)	audit_logs alapján a kódban
EU-szűrés	Geo-IP lookup	EU_COUNTRIES halmaz a kódban
Naplózás	Automatikus	audit_logs tábla

📘 ADATBÁZIS SÉMA KÖNYV (v2.18 | 2026.01.27 - 21:40)
Tábla	Séma	Cél	Státusz
users	data	Felhasználók törzsadatai	🔍 Audit folyamatban
email_providers	data	SMTP/API elérések	🔍 Audit folyamatban
audit_logs	data	Műveleti napló	✅ Ellenőrzésre vár

📘 ADATBÁZIS SÉMA KÖNYV (v2.18 | 2026.01.27 - 21:40)
Tábla	Séma	Aktuális mezők (Modell szerint)	Státusz
users	data	

id, email, hashed_password, first_name, last_name, role, is_active...
	⚠️ Ellenőrzés alatt
audit_logs	data	

table_name megerősítve
	✅ Létezik
verification_tokens	data	

table_name megerősítve
	✅ Létezik

📘 ADATBÁZIS ÁLLAPOT KÖNYV (v2.17 | 2026.01.27 - 22:30)
Modul	Állapot	Következő akció
Auth v1	✅ KÉSZ	Swagger tesztelés a felhasználó által.
Audit/Email Log	✅ KÉSZ	Validálás a pgAdminban.
Vehicle Catalog	🏗️ TERVEZÉS	Tábla létrehozás a teszt után.

📘 ADATBÁZIS ÁLLAPOT KÖNYV (v2.16 | 2026.01.27 - 22:10)
Modul	Állapot	Funkció
Auth System	✅ KÉSZ	Regisztráció + Aktiválás + Jelszó reset (Audit loggal).
Email Manager	✅ KÉSZ	Többcsatornás, Throttling védett küldés.
Locations	✅ KÉSZ	Koordináta alapú keresés alapjai.

📘 ADATBÁZIS ÁLLAPOT KÖNYV (v2.15 | 2026.01.27 - 21:55)
Tábla	Státusz	Szerep
data.verification_tokens	✅ AKTÍV	Jelszó-visszaállító és regisztrációs kulcsok.
data.audit_logs	✅ AKTÍV	Felhasználói mozdulatok naplózása.
data.email_logs	✅ AKTÍV	Kiküldött emailek követése és Throttling.

📘 ADATBÁZIS ÁLLAPOT KÖNYV (v2.14 | 2026.01.27 - 21:40)
Tábla	Séma	Feladat	Státusz
audit_logs	data	Felhasználói aktivitás követése	✨ ÚJ
system_settings	data	Minden paraméter vezérlése	✅ Bővítve
email_providers	data	Multi-channel e-mail	✅ SendGrid kész, Brevo várható

📘 ADATBÁZIS ÁLLAPOT KÖNYV (v2.13 | 2026.01.27 - 20:30)
Tábla	Séma	Cél	Státusz
email_providers	data	SMTP/API adatok & Prioritás	✅ Adattal feltöltve (SendGrid)
email_logs	data	Audit log & Throttling	✅ Aktív
verification_tokens	data	Biztonsági kódok (Reg/Reset)	✅ Szerkezet kész

📘 ADATBÁZIS ÁLLAPOT KÖNYV (v2.12 | 2026.01.27 - 21:35)
Tábla	Séma	Státusz	Megjegyzés
email_providers	data	✅ KÉSZ	Tárolja az SMTP/API eléréseket és prioritásokat.
email_logs	data	✅ KÉSZ	Biztosítja a 3 perces várakozást (Throttling).
verification_tokens	data	✅ KÉSZ	Biztonságos token-alapú regisztrációhoz.

📘 ADATBÁZIS SÉMA KÖNYV (v2.7 | 2026.01.27 - 22:15)
Objektum	Típus	Állapot	Szerep
data.system_settings	Tábla	✅	Minden üzleti paraméter forrása.
data.organization_locations	Tábla	✅	Pontos GPS koordináták és címek.
orgtype.SERVICE	Enum	✅	Szerviz partnerek megkülönböztetése.

🗄️ ADATBÁZIS ÁLLAPOT NAPLÓ (v2.7 | 2026.01.27 - 21:25)

    Audit: A beküldött CSV fájlok (tablak_2026.01.27_2.csv) igazolták, hogy a változók nevei és értékei megfelelnek a Python kód igényeinek.

    Javítás: Az Enum SERVICE értékét leválasztottuk az insert-ről, így az integritás helyreállt.

    Adat: A Gumi Mester Kft. adatai a "Pesti Gyorsszerviz" és "Budaörsi Telep" helyszínekkel mostantól alkalmasak a térbeli keresési tesztre.

📘 ADATBÁZIS SÉMA KÖNYV (v2.6 | 2026.01.27 - 21:25)
Tábla	Séma	Oszlopok	Állapot
organizations	data	id, name, org_type (enum), slug	✅ SZINKRONIZÁLVA (SERVICE enum kész)
organization_locations	data	id, org_id, lat, lng, address	✅ AKTÍV (Térbeli alapok kész)
system_settings	data	key_name, value_json, org_id...	✅ VALIDÁLVA (A CSV alapján minden kulcs él)

🗄️ ADATBÁZIS ÁLLAPOT NAPLÓ (v2.6 | 2026.01.27 - 21:10)

    Integritás: A data séma és a public enumok közötti ellentmondás feloldva.

    Változók állapota: A beküldött CSV igazolta, hogy a MatchingService és a ConfigService számára minden paraméter rendelkezésre áll.

    Helyszín adatok: Budapesti teszt koordináták (Budaörs és Váci út) előkészítve a keresési teszthez.

📘 ADATBÁZIS SÉMA KÖNYV (v2.5 | 2026.01.27 - 21:10)
Tábla	Séma	Mezők	Státusz
organizations	data	id, name, org_type, slug	✅ Enum javítva (SERVICE hozzáadva)
organization_locations	data	id, org_id, lat, lng, label	✨ Létrehozva a geolokációhoz
system_settings	data	key_name, value_json	✅ Validálva a beküldött CSV alapján

🗄️ ADATBÁZIS ÁLLAPOT NAPLÓ (v2.5 | 2026.01.27 - 20:50)

    Kritikus hiba: Az orgtype enum nem ismeri a "SERVICE" értéket. Ez blokkolja a tesztadatok (Gumi Mester Kft.) beszúrását.

    Séma helyzet: A public -> data költöztetés elvileg megtörtént, de az audit SQL-lel validáljuk.

    Változók: A nevek (key_name, value_json) megfelelnek a Python ConfigService elvárásainak.

📘 ADATBÁZIS SÉMA KÖNYV (v2.4 | 2026.01.27 - 20:50)
Tábla	Séma	Státusz	Megjegyzés
users	data	✅ Stabil	Tartalmazza az is_staff mezőt.
organizations	data	⚠️ Ellenőrzés alatt	Az org_type enum értékeit tisztázni kell.
organization_members	data	✅ Stabil	unique_user_org kényszer aktív.
system_settings	data	✅ Stabil	Hierarchikus index és kulcsok rendben.
organization_locations	data	✨ Létrehozva	Készen áll a koordináták fogadására.

🗄️ ADATBÁZIS ÁLLAPOT NAPLÓ (v2.4 | 2026.01.27 - 20:30)

    Séma Tisztaság: Megkezdődött a public séma kiürítése, az üzleti logika izolált.

    Helyszín Kezelés: Mostantól támogatjuk, hogy egy szerviznek több pontja legyen a térképen.

    Keresési Logika: A következő lépésben a MatchingService már nem fix listából, hanem ebből az organization_locations táblából fog válogatni.

📘 ADATBÁZIS SÉMA KÖNYV (v2.3 | 2026.01.27 - 20:30)
Tábla	Séma	Változás	Megjegyzés
organizations	data	✅ Stabil	Fő szervezeti adatok.
service_providers	data	🚚 Áthelyezve	Migrálva a public sémából.
organization_locations	data	✨ ÚJ	Koordináták (lat, lng) tárolása

🗄️ ADATBÁZIS ÁLLAPOT NAPLÓ (v2.3 | 2026.01.27 - 20:45)

    Migráció: Előkészítve a public -> data áthelyezés.

    Geolokáció: A koordináták tárolása külön organization_locations táblába kerül a multi-site támogatás érdekében.

    Matematika: A távolság számításához a Haversine-formulát fogjuk használni:
    d=2rarcsin(sin2(2ϕ2​−ϕ1​​)+cos(ϕ1​)cos(ϕ2​)sin2(2λ2​−λ1​​)​)

📘 ADATBÁZIS SÉMA KÖNYV (v2.2 | 2026.01.27 - 20:45)
Tábla	Séma	Változás	Cél
organizations	data	Move from public	Üzleti adatok izolálása.
service_providers	data	Move from public	Üzleti adatok izolálása.
organization_locations	data	ÚJ TÁBLA	Geofencing és Smart Match alapja.

🗄️ ADATBÁZIS ÁLLAPOT NAPLÓ (v2.2 | 2026.01.27 - 19:50)

    Audit: Az organizations tábla szerkezete beazonosítva. Hiányoznak a közvetlen helyadatok (geolokáció).

    Folytonosság: A ConfigService és a MatchingService felkészült, már csak a "bemeneti forrást" (a valódi koordinátákat) kell becsatornáznunk.

    Kockázat: Alacsony. Ha megvan a helyszín tábla, egy egyszerű JOIN-nal összekötjük a szervizeket a helyükkel.

📘 ADATBÁZIS SÉMA KÖNYV (v2.1 | 2026.01.27 - 19:50)
Tábla	Oszlopok	Típus	Leírás
organizations	

id, name, org_type, slug, is_active
	

int, varchar, Enum, boolean
	

Szervezetek törzsadatai.
system_settings	key_name, value_json, org_id	varchar, jsonb, int	Dinamikus szabályok és súlyok.

🗄️ ADATBÁZIS ÁLLAPOT NAPLÓ (v2.1 | 2026.01.27 - 20:20)

    API: /api/v1/search/match végpont ✅ LÉTREHOZVA.

    Logika: MatchingService ✅ LÉTREHOZVA.

    Adat: SQL paraméterek ✅ BETÖLTVE.

    Hiány: A szervizek földrajzi helyzetének (lat/lng) pontos táblája és oszlopneve.
📘 ADATBÁZIS SÉMA KÖNYV (v2.0 | 2026.01.27 - 20:20)
Tábla	Séma	Funkció	Megjegyzés
system_settings	data	Konfigurációk	Súlyozási paraméterek rögzítve.
organizations	data	Entitások	Itt keressük majd a szervizeket (role='service').
service_specialties	data	Képességek	Ez alapján szűrünk a konkrét hibára.

🗄️ ADATBÁZIS ÁLLAPOT NAPLÓ (v2.0 | 2026.01.27 - 19:40)

    SQL Audit: A 4 alapvető rangsorolási paraméter immár az adatbázisban él (INSERT 0 4).

    Szerviz Réteg: A MatchingService sikeresen létrejött, a kód képes elvégezni a súlyozott számítást.

    Hiba elhárítva: A PermissionError a sudo használatával áthidalva.

📘 ADATBÁZIS SÉMA KÖNYV (v1.9 | 2026.01.27 - 19:40)
Tábla	Séma	Kulcsfontosságú változás
system_settings	data	Beépítve a súlyozási konstansok (distance, rating, bonus).
ranking_policies	data	Üres, de a struktúra készen áll a komplexebb szabályokhoz.

🗄️ ADATBÁZIS ÁLLAPOT NAPLÓ (v1.9 | 2026.01.27 - 19:30)

    Algoritmus: Kész. A pontszámítás képlete:
    S=(Pdist​⋅Wdist​)+(Prate​⋅Wrate​)+Btier​

    Rugalmasság: ✅ Teljes. A MatchingService minden kérésnél frissen kéri le a súlyokat a ConfigService-től.

📘 ADATBÁZIS SÉMA KÖNYV (v1.8 | 2026.01.27 - 19:30)
Tábla	Oszlop	Típus	Leírás
system_settings	value_json	jsonb	Itt tároljuk a weight_distance és weight_rating értékeket.

🗄️ ADATBÁZIS ÁLLAPOT NAPLÓ (v1.8 | 2026.01.27 - 19:15)

    Esemény: A korábbi kód-korrupció észlelése és javítása.

    Integritás: A Python config hívás most már tiszta szintaxissal fut a fleet.py-ban.

    Adat: Az Admin Flotta (ID: 1) készen áll a dinamikus limitek tesztelésére.
📘 ADATBÁZIS SÉMA KÖNYV (v1.7 | 2026.01.27 - 19:15)
Tábla	Séma	Főbb indexek	Státusz
system_settings	data	idx_settings_lookup	✅ AKTÍV
organizations	data	slug_unique	✅ AKTÍV
vehicles	data	vin_unique	✅ AKTÍV

ADATBÁZIS ÁLLAPOT NAPLÓ (v1.7 | 2026.01.27 - 19:10)

    Szinkron: A ConfigService kódja és a system_settings tábla oszlopai (key_name, value_json) megegyeznek.

    Tesztre kész: Az adatbázisban a max_vehicles értéke 3, az Admin pedig az 1-es szervezetben van.
📘 ADATBÁZIS SÉMA KÖNYV (v1.6 | 2026.01.27 - 19:10)
Tábla	Séma	Állapot	Funkció
system_settings	data	✅ Aktív	Hierarchikus konfiguráció (key_name, value_json).
vehicles	data	✅ Stabil	Járművek törzsadatai.
vehicle_ownership	data	✅ Stabil	User-Vehicle összerendelés.

🗄️ ADATBÁZIS ÁLLAPOT NAPLÓ (v1.6 | 2026.01.27 - 11:15)
Audit: A max_vehicles = 3 rekord sikeresen létrejött a data.system_settings táblában.

Hierarchia: A idx_settings_lookup index biztosítja, hogy az egyedi (Org/Tier/Region) felülbírálások ne ütközzenek.

Előkészítve: A fleet.py és a ConfigService kódja megvan, csak a fájlrendszerbe kell írni őket.
📘 ADATBÁZIS SÉMA KÖNYV (v1.5 | 2026.01.27 - 11:15)TáblaSémaFőbb mezőkCélsystem_settingsdatakey_name, value_json, org_idA hierarchikus szabálymotor tárolója.organizationsdataid, name, slugSzervezeti egységek (pl. Admin Flotta).organization_membersdatauser_id, organization_id, roleJogosultsági és tagsági háló.

🗄️ ADATBÁZIS ÁLLAPOT NAPLÓ (v1.4 | 2026.01.27 - 10:45)
Status: max_vehicles = 3 rögzítve a data.system_settings táblában.

Fájlrendszer: Az app/services/ mappa létezik, de a config_service.py még hiányzik.

Elmaradás: Szükségem van a korábban kért SQL lekérdezés eredményére (Admin org_id és role), hogy a tesztelésnél tudjuk, melyik szervezetet nézzük.
📘 ADATBÁZIS SÉMA KÖNYV (v1.3 | 2026.01.27 - 10:45)TáblaSémaMezőkMegjegyzéssystem_settingsdatakey_name, value_json, region_code, tier_id, org_idHierarchikus motor.vehiclesdataid, vin, plate_number, model_idDigitális iker alapadatai.vehicle_ownershipdatauser_id, vehicle_id, is_activeKapcsolati tábla (Kié az autó?).
🗄️ ADATBÁZIS ÁLLAPOT NAPLÓ (v1.3 | 2026.01.27 - 10:15)
Állapot: ✅ Stabil és szinkronban a kóddal.

Változás: A Python ConfigService immár az app/services/ alá került, követve a tiszta architektúrát.

Audit: Az SQL-ben korábban rögzített max_vehicles (3) rekord elérhető a service számára.
📘 ADATBÁZIS SÉMA KÖNYV (v1.2 | 2026.01.27 - 10:15)TáblaSémaMezőkMegjegyzéssystem_settingsdatakey_name, value_json, region_code, tier_id, org_idA hierarchikus beállítások tárolója.ranking_policiesdatapolicy_name, distance_weight, rating_weightA szerviz-kereső súlyozási szabályai.

🗄️ ADATBÁZIS ÁLLAPOT NAPLÓ (v1.2 | 2026.01.27 - 10:10)
Állapot: ✅ Stabil.

Utolsó SQL: INSERT INTO data.system_settings (max_vehicles) sikeresen lefutott.

Változás: A key_name és value_json elnevezések rögzítve.

Következő cél: A fleet.py-ban a fix 3-as korlát kiváltása config.get_setting('max_vehicles') hívással.
ADATBÁZIS SÉMA KÖNYV (v1.1 | 2026.01.27 - 10:10)TáblaOszlopok (Lényegesek)Kényszerek / Indexekdata.system_settingskey_name, value_json, region_code, tier_id, org_ididx_settings_lookup (Unique)data.ranking_policiespolicy_name, distance_weight, rating_weightid (PK)data.organization_membersorganization_id, user_id, roleunique_user_org

🗄️ ADATBÁZIS ÁLLAPOT NAPLÓ (DB State Book)
Integritás: ✅ Kiváló. Az oszlopnevek szinkronizálva (key_name, value_json).

Utolsó művelet: idx_settings_lookup index létrehozva, max_vehicles alapérték beszúrva.

Kockázat: Nincs. A séma stabil az API fejlesztéséhez.

🗄️ 3. Adatbázis Állapot Napló (DB State Book)
Tábla neve	Séma	Állapot	Megjegyzés
system_settings	data	✅ Stabil	Tartalmazza a key_name, value_json és a 3 szintű override oszlopot.
ranking_policies	data	✅ Kész	A szerviz-rangsorolás súlyait tárolja.
idx_settings_lookup	data	✅ Aktív	Biztosítja a hierarchikus egyediséget.

PM senior
Egyéni gem
Úgy tűnik, a system_settings táblád még egy korábbi (talán tegnapi) néven tárolja az oszlopokat, ahol valószínűleg csak simán key és value volt a nevük. A PostgreSQL-ben a key és value foglalt szavak (reserved words), ezért javasoltam a key_name és value_json formátumot – de a tábla most épp "félúton" van a két állapot között.

Tegyünk rendet egy olyan SQL-lel, ami felismeri a régi neveket és átnevezi őket az újra, így nem kell törölni semmit!

🛠️ 1. Adatbázis „Helyrerakó” Script (psql / pgAdmin)
Futtasd le ezt. Ez a script intelligensen átnevezi az oszlopokat, ha a régi néven találja meg őket:

SQL
DO $$ 
BEGIN 
    -- 1. Oszlopnevek egységesítése
    IF EXISTS (SELECT 1 FROM information_schema.columns WHERE table_name='system_settings' AND column_name='key') THEN
        ALTER TABLE data.system_settings RENAME COLUMN "key" TO key_name;
    END IF;

    IF EXISTS (SELECT 1 FROM information_schema.columns WHERE table_name='system_settings' AND column_name='value') THEN
        ALTER TABLE data.system_settings RENAME COLUMN "value" TO value_json;
    END IF;

    -- 2. Hiányzó hierarchia oszlopok pótlása
    IF NOT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_name='system_settings' AND column_name='region_code') THEN
        ALTER TABLE data.system_settings ADD COLUMN region_code VARCHAR(5);
    END IF;

    IF NOT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_name='system_settings' AND column_name='tier_id') THEN
        ALTER TABLE data.system_settings ADD COLUMN tier_id INTEGER;
    END IF;

    IF NOT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_name='system_settings' AND column_name='org_id') THEN
        ALTER TABLE data.system_settings ADD COLUMN org_id INTEGER;
    END IF;
END $$;

-- 3. Index frissítése (most már biztosan léteznek az oszlopok)
DROP INDEX IF EXISTS data.idx_settings_lookup;
CREATE UNIQUE INDEX idx_settings_lookup ON data.system_settings 
(key_name, COALESCE(region_code, ''), COALESCE(tier_id, 0), COALESCE(org_id, 0));

-- 4. Alapértelmezett érték beszúrása tesztnek
INSERT INTO data.system_settings (key_name, value_json, description)
VALUES ('max_vehicles', '3'::jsonb, 'Globális alapértelmezett járműlimit a Free csomagban')
ON CONFLICT (key_name, COALESCE(region_code, ''), COALESCE(tier_id, 0), COALESCE(org_id, 0)) DO NOTHING;
📚 2. Változó Könyv (Variable Map) v1.1
A rendszer paramétereinek aktuális állapota és hivatkozási pontjai.

Kulcs (Key)	Adattípus	Alapértelmezés	Szerep	Hivatkozás (Fájl/Modul)
max_vehicles	int	3	Free flotta méret korlát	fleet.py -> ConfigService
search_radius	int	20	Alap keresési távolság	search.py -> ConfigService
ranking_policy	json	{...}	Súlyozási együtthatók	RankingEngine
🗄️ 3. Adatbázis Állapot Napló (DB State Book)
Tábla neve	Séma	Állapot	Megjegyzés
system_settings	data	✅ Stabil	Tartalmazza a key_name, value_json és a 3 szintű override oszlopot.
ranking_policies	data	✅ Kész	A szerviz-rangsorolás súlyait tárolja.
idx_settings_lookup	data	✅ Aktív	Biztosítja a hierarchikus egyediséget.

📘 ADATBÁZIS SÉMA KÖNYV (Database Schema Book) v1.0
A rendszer jelenlegi fizikai struktúrája

Séma: data
users

id: serial (PK)

email: varchar (Unique)

is_staff: boolean (Admin/Moderátor jelző)

organizations

id: serial (PK)

name: varchar

slug: varchar (Unique, url-barát azonosító)

organization_members

id: serial (PK)

organization_id: int (FK -> organizations)

user_id: int (FK -> users)

role: public.orguserrole (Enum)

is_permanent: boolean

Constraint: unique_user_org (organization_id, user_id)

system_settings (A konfigurációs motor agya)

id: serial (PK)

key_name: varchar (Unique-index része)

value_json: jsonb (Dinamikus érték)

region_code: varchar(5) (Override szint)

tier_id: int (Override szint)

org_id: int (Override szint)

ranking_policies

id: serial (PK)

policy_name: varchar

distance_weight: numeric(3,2)

rating_weight: numeric(3,2)

tier_bonus: int