(Változásnapló.) # 📜 CHANGELOG ## [1.0.1] - 2026-02-06 ### Hozzáadva - **Unified Auth Module**: Integrált Belépés, Lite Regisztráció és Elfelejtett jelszó kezelés. - **Email Rendszer**: SendGrid integráció SMTP fallback lehetőséggel. - **KYC Előkészítés**: `is_active` flag bevezetése a `User` és `Person` modellekben a 2-lépcsős folyamathoz. ### Javítva - **SQLAlchemy Mapper Fix**: Megszűnt az `owned_organizations` körkörös függőségi hiba. - **Típus Szinkron**: `Person.id` javítva `BigInteger` típusra a Postgres sémával összhangban. - **Import Fixek**: `app.db.base_class` -> `app.db.base` útvonalak egységesítve. ### Technikai adatok - Konténer állapot: Stabil (running) - Regisztrációs folyamat: Step 1 (Lite) tesztelve, sikeres. ## [1.0.0] - 2026-02-03 - **Init:** Grand Master Book létrehozása. - **Arch:** Átköltözés a 80 magos szerverre. - **Spec:** Kredit rendszer, Tiers, Soft Delete és Person logika véglegesítése. ### [2026-02-04] - Identity & Company Sync (v1.2) - **Modell Konszolidáció:** Az `app.models.identity` lett a központi identitáskezelő (User, Person, Wallet). - **Master Book v1.2 Implementáció:** Bevezetésre került a céges verifikációs logika (is_verified) és a 30 napos türelmi idő kezelése. - **Integritás javítás:** Az `Organization` tábla bővítve lett `is_transferable` és hitelesítési mezőkkel. - **Bugfix:** `security.py` IndentationError javítva, `auth_service.py` atomikus regisztrációs flow Master Book szinkronizálva. - **Security:** PostgreSQL tábla-tulajdonosi jogosultságok felülvizsgálata a migrációs hibák elhárításához. ### [2026-02-05] - Identity & Company Sync (v1.2) - **Database Security:** Javítva a `user_vehicle_equipment` tábla tulajdonosi jogosultsága (`shared-postgres` környezetben). - **Core Fix:** A `security.py` állomány behúzási hibái (IndentationError) véglegesen elhárítva. - **Organization v1.2:** Implementálva az `is_transferable`, `is_verified` és `verification_expires_at` mezők a flották hitelesítéséhez. - **AuthService Logic:** - Az `INDIVIDUAL` típusú flották mostantól alapértelmezetten nem átruházhatóak. - Beépítve a 30 napos türelmi idő (`grace_period`) kalkulációja a cégellenőrzéshez. - Atomikus regisztráció kiterjesztve a privát flották automatikus létrehozására. - **Infrastructure:** Alembic migrációs lánc szinkronizálva az új modellekkel. ### [2026-02-05] - Admin & Economy Finalization (v1.0) - **Admin Management:** Teljes hiearchia és területi felosztás kidolgozva (L0-L3). - **Security:** "Kill-switch" anomália-figyelés és 2FA kényszerítés rögzítve. - **Economy:** 10-5-2% jutalékrendszer és Voucher/Coupon logika specifikálva. - **Synergy:** Céges VIP és privát flotta közötti kedvezmény-szinergia kidolgozva. - **Invitations:** Meghívó limitációs és anti-spam logika rögzítve. # 📓 CHANGELOG - SERVICE FINDER ## [1.2.1] - 2026-02-05 ### ✅ Hozzáadva (Added) - **Multi-step Social Auth:** `User` modell bővítve `social_provider` és `social_id` mezőkkel. - **Flotta Tulajdonjog:** `Organization` modellben `is_transferable` flag implementálva (Individual flotta zárolva). - **Referral Snapshot:** Előkészítve a 10-5-2%-os jutalékrendszer adatmodellje. ### 🛠️ Javítva (Fixed) - **SQLAlchemy Mapper:** Megszűnt a `UserVehicle` KeyError hiba a string-alapú hivatkozásokkal. - **Duplikáció:** `Vehicle` osztály duplikációja eltávolítva a `vehicle.py`-ból. - **Indentation Error:** `security.py` bcrypt indentációs hiba javítva. ### ⚠️ Megjegyzés - Alembic migráció szükséges az új `Organization` és `User` mezőkhöz. 📓 CHANGELOG (Rögzítendő változások) Mivel kérted, itt van a változások listája, amit a teszt után beírhatunk: Fixed: UserRole enum validációs hiba (Postgres userrole típus mostantól kisbetűs értéket kap). Added: Teljes banki KYC integráció a regisztrációba (Személyi, Jogosítvány, Speciális engedélyek). Added: Atomi tranzakció részeként automatikus OrganizationMember létrehozás a privát flottához. Added: Audit log rögzítése minden sikeres regisztrációról. Added: Dinamikus paraméterkezelés (system_settings) a 14 napos jutalomhoz. Elvárt eredmény: A tranzakció végén létrejön a Person, a Wallet (0 Coin) és a Private Fleet (is_transferable=False). A User is_active értéke True lesz. 3. Debugging Checklist 500 Error? Ellenőrizd a docker logs -f service_finder_api kimenetét. Ha "UndefinedColumn", akkor hiányzik egy SQL mező. Ha "InvalidTextRepresentation", akkor Enum hiba (nagybetűs string). Üres Swagger? Ellenőrizd az importokat a security.py-ban és a sémákat az endpoints/auth.py-ban. --- ### 💡 Javaslatom a dokumentáció kiegészítésére: A fejlesztések rendben tartásához javaslom a **`17_DEVELOPER_NOTES_AND_PITFALLS.md`** fájl aktív használatát is, amit az előző körben küldtem. Ez segít megelőzni, hogy a fejlesztőcsapat újra belefusson a Postgres Enum vagy a `Base.metadata.create_all` korlátaiba. **Holnap reggel frissíted a GEM beállításokat is?** Ha igen, a következő lépésben elkészíthetem neked a Step 2 (KYC) végleges Pydantic sémáját és a `complete-kyc` végpont vázlatát! ## [0.2.0] - 2026-02-07 ### ✨ Hozzáadva (Added) - **Step 2 (KYC) Folyamat:** Teljes körű identitás-kezelés (telefonszám, születési adatok, okmányok, ICE kontakt). - **Automata Privát Flotta:** Minden felhasználóhoz automatikusan létrejön egy `individual` típusú szervezet (Privát Széf). - **Automata Wallet:** Minden validált felhasználó kap egy üres pénztárcát (Coin és XP egyenleggel). - **Trust Tiers:** Bevezetésre került a fokozatos bizalmi szint (Tier 1: Email, Tier 2: KYC/Active). ### 🛠️ Javítva (Fixed) - **SQLAlchemy Async Fix:** `joinedload` alkalmazása a User-Person kapcsolathoz (MissingGreenlet hiba elhárítva). - **JSON Serialization:** Pydantic `model_dump(mode='json')` használata a JSONB mezőkhöz (dátum-konverziós hiba javítva). - **Postgres Schema:** `data.organizations` tábla bővítve hiányzó oszlopokkal (`is_verified`, `updated_at`, stb.). - **Auth Endpoint:** `/complete-kyc` végpont hozzáadva és JWT védelemmel ellátva. ### ⚙️ Adatbázis Változások (Database) - Új Enum típus: `data.orgtype` ('individual', 'company'). - `data.persons` bővítve: `phone`, `birth_place`, `birth_date`, `mothers_name`, `identity_docs`, `ice_contact`. - `data.organizations` bővítve: `is_verified`, `is_transferable`, `verification_expires_at`, `updated_at`. ## [0.2.0] - 2026-02-07 ### ✅ Step 2 KYC & Activation Complete - **Funkció:** Teljes körű személyazonosság-kezelés és fiókaktiválás. - **Automatizálás:** Regisztrációkor automatikusan létrejön a "Privát Flotta" (Organization) és a digitális pénztárca (Wallet). - **Adatvédelem:** Elkészült a "Digitális Széf" logika az okmányok és vészhelyzeti adatok biztonságos tárolására. - **Technikai fix:** SQLAlchemy `joinedload` integráció az aszinkron adatkezeléshez és JSON-safe dátumkezelés. ## [0.3.0] - 2026-02-07 ### ✨ Hozzáadva (Added) - **Asset DNS Modell:** Új, univerzális eszközkezelő rendszer (Assets, VehicleCatalog, AssetEvents, AssetRatings). - **Harvester Robot:** Automata adatgyűjtő rendszer, amely külső forrásokból tölti fel a globális járműkatalógust. - **UUID Implementáció:** Az eszközök (Assets) és események (Events) mostantól biztonságos UUID azonosítókat használnak. ### ⚙️ Adatbázis Változások (Database) - `data.vehicle_catalog` tábla létrehozva a globális specifikációknak. - `data.assets` tábla létrehozva a konkrét példányok (VIN/HIN alapú) tárolására. - `data.asset_events` és `data.asset_ratings` táblák az életút és közösségi visszajelzések kezelésére. ### 🛠️ Refaktor (Refactor) - **Modell Konszolidáció:** A korábbi `Vehicle` és `VehicleBrand` modellek beolvasztva az új `Asset` és `VehicleCatalog` struktúrába. - **Kapcsolati Térkép:** Az `Organization` és `User` modellek frissítve az új Asset logikához. ## [0.3.5] - 2026-02-07 ### ✨ Robot Technológia & Adatbiztonság - **Multi-Robot Architektúra:** Előkészítve a kategória-specifikus (Car, Bike, Truck) Harvester robotok szétválasztása. - **Status Tracking:** Bevezetve a `verification_status` a katalógus elemekhez a hiányos adatok kezelésére. - **SQL Optimalizálás:** Új indexek és kategória alapú szűrések hozzáadva a globális katalógushoz. ## [0.4.0] - 2026-02-07 ### ✨ Multi-Robot System - **Kategória Robotok:** Elkészült a Car, Bike és Truck harvester moduláris szerkezete. - **Robot Manager:** Központi vezérlő az ütemezett és sorrendi adatgyűjtéshez. - **Katalógus Kereső:** Üzembe helyezve a `/catalog/search` végpont a Swaggerben. ## [0.4.5] - 2026-02-07 ### ✨ Asset Management & Infrastructure - **Asset Endpoint:** `POST /api/v1/assets/` élesítve VIN validációval. - **NAS Integration:** Automata mappastruktúra létrehozása az eszközöknek (`/assets/{uuid}`). - **Data Model:** `privacy_level` és `status` mezők hozzáadva az Asset modellhez. - **Bugfix:** SQLAlchemy `TypeError` javítva a modell és a séma szinkronizálásával. ## [0.5.0] - 2026-02-07 ### ✨ Corporate & CRM Foundation - **Corporate Onboarding:** `POST /api/v1/organizations/onboard` végpont élesítve. - **Validation:** Magyar adószám (HU) formátum ellenőrzés beépítve. - **Status Management:** Bevezetve a `pending_verification` állapot a szervezetekhez. - **Database:** PostgreSQL `orgtype` Enum szinkronizálva a Python modellel (kisbetűs mapping). - **NAS:** Automata szervezeti mappa-izoláció (`/organizations/{id}`). [0.5.1] - 2026-02-07 FIX: ModuleNotFoundError javítva az importok szinkronizálásával. DATA: Atomizált címmezők hozzáadva a data.organizations táblához. LOGIC: Háromszintű névkezelés (Hivatalos, Rövid, Display) bevezetve. ## [2.1.0] - 2026-02-08 ### Hozzáadva (Added) - **Hibrid Címkezelő Rendszer**: Új `data.addresses` központi tábla, amely UUID alapú azonosítással köti össze a személyeket, cégeket és szervizeket. - **Öntanuló GeoService**: A rendszer rögzítéskor automatikusan bővíti a ZIP-kód, város és utcanév szótárakat. - **Autocomplete API**: `/api/v1/services/suggest-street` végpont a frontend gépelés közbeni támogatásához. - **Kétlépcsős Keresés**: `/api/v1/services/search` végpont, amely megkülönbözteti a légvonalbeli (Free) és útvonal/idő alapú (Premium) kalkulációt. - **PostGIS Integráció**: Tűpontos GPS távolságmérés `geography` casting használatával. ### Javítva (Fixed) - **Gamifikációs hiba**: A `PointsLedger` modellben javítva a `points` mezőnév (TypeError: points_change fix). - **Adatbázis Inkonzisztencia**: Létrehozva a hiányzó `data.user_stats` tábla. - **Import hibák**: `Optional`, `UploadFile` és `File` hiányzó importok pótolva a szolgáltatás végpontokon. ### Változtatva (Changed) - **Címkezelési Logika**: A cégek és magánszemélyek mostantól egységes, bontott címstruktúrát (zip, city, street, street_type, house_number, parcel_id) használnak. - **XP Szűrés**: A szervizek és cégek rögzítésekor a rendszer mostantól csak a természetes személyeknek (User/Driver) oszt social pontokat. ## [2.1.0] - 2026-02-08 - **Feat**: Hibrid címkezelő rendszer bevezetése (UUID alapú `data.addresses`). - **Feat**: Öntanuló Geo-logika (Auto-create ZIP/Street). - **Feat**: Kétlépcsős (Free/Premium) szervizkereső API. - **Fix**: `points_ledger` mezőnév szinkronizáció. - **Fix**: `data.user_stats` tábla inicializálása. ## [2026-02-08] - Nemzetközi Asset és KYC Stabilizáció ### Hozzáadva - **Nemzetközi paraméterek**: `mileage_unit` (km/miles/hours) és `reading_unit` támogatása az Asset modellben. - **Pénzügyi alapok**: `AssetCost` modell bővítése nettó/bruttó összeggel, ÁFA kulccsal és deviza-kezeléssel. - **Árfolyamkezelés**: `exchange_rates` tábla implementálása MNB/ECB alapú napi frissítéshez. - **Értékelési rendszer**: `ratings` tábla létrehozva (user, asset, service_provider szinten). ### Javítva - **KYC Folyamat**: Anyja neve bontása vezetéknévre és keresztnévre a magyar/nemzetközi szabványok szerint. - **Database Schema**: Számos hiányzó oszlop pótolva (`asset_events.data`, `asset_events.event_date`, `user_stats.total_xp`). - **SQLAlchemy hiba**: Javítva az `IndexError` a katalógus lekérdezésnél és az import hiba a `PG_UUID` kapcsán. ### Megjegyzés A rendszer most már képes egyetlen KYC folyamat alatt aktiválni a felhasználót, létrehozni az egyéni flottáját, inicializálni a pénztárcáját (Kredit/Coin) és rögzíteni az első járművét kezdő km-óra állással. ## [Unreleased] - 2026-02-10 ### 🚀 Added (Új funkciók) - **RBAC System:** - \`User\` tábla bővítése: \`scope_level\`, \`scope_id\`, \`custom_permissions\`. - \`system_parameters\` tábla létrehozása a globális JSON konfigurációkhoz. - Master RBAC JSON konfiguráció seedelése. - **Gamification:** - \`GamificationService\` létrehozása (XP, Level, Credit logika). - Automata pontszámítás és nehezedő szintek logikája. - **API Modularitás:** - \`assets.py\` szétbontása 3 végpontra (Identity, Costs, Telemetry). ### 🛠 Changed (Módosítások) - **Asset Model:** Az \`Asset\` entitás mostantól lazy loading helyett \`selectinload\` stratégiát használ a teljesítmény érdekében. - **Error Handling:** Javítottuk az \`asyncpg\` többszörös parancs-futtatási hibáját a setup scriptekben. - **Configuration:** A rendszerbeállítások mostantól adatbázis-alapúak (JSONB) a hardcoded konstansok helyett. ### 🐛 Fixed (Javítások) - **Schema Mismatch:** SQLAlchemy modellek és Pydantic sémák szétválasztása (`models/asset.py` vs `schemas/asset.py`). - **Data Integrity:** \`updated_at\` és \`is_active\` oszlopok pótlása a \`system_parameters\` táblában. - **API Stability:** \`getattr\` használata a hiányzó opcionális mezőknél (pl. \`net_amount\`), hogy ne szálljon el az API 500-as hibával. ## [1.2.0] - 2026-02-10 ### Added - **Asset Financials 2.0**: Pivot-Currency modell implementálva (helyi deviza + EUR párhuzamos tárolás). - **Smart Auth Token**: JWT token mostantól tartalmazza a `rank`, `scope_level` és `scope_id` mezőket a gyors jogosultságkezeléshez. - **CostService**: Automatikus árfolyam-kalkuláció, telemetria-szinkron és XP jóváírás költségrögzítéskor. - **ExchangeRate**: Új árfolyamtábla és modell az EUR alapú váltásokhoz. ### Fixed - **Circular Import Resolution**: Megszüntetve a `db.base` és a `models` közötti körkörös függőség az import lánc modularizálásával. - **Alembic Identity Sync**: Visszaállítva a `User` modell hiányzó `scope_level` és `custom_permissions` mezői, megakadályozva az adatvesztést migrációkor. - **NotNullViolationError**: Fixálva az `asset_costs` tábla migrációja (amount_local NOT NULL kényszer). ### Changed - `AssetCost` modell mezőnevek szinkronizálva a pénzügyi standardokhoz (`amount_local`, `amount_eur`). - `SystemParameter` modell elnevezés igazítva a meglévő adatbázis sémához. ## [1.5.0] - 2026-02-10 ### Added - **Judge & Penalty System**: Bevezetve a `penalty_points` és `restriction_level` mechanizmus a visszaélések kiszűrésére. - **Dynamic Multipliers**: Admin felületről (JSON config) állítható pontszorzók a büntetési szintekhez. - **Social-to-Credit Auto-conversion**: Automatikus Kredit jóváírás a Walletbe meghatározott Social pont elérésekor. - **Level Achievement Bonus**: 10-es szintenkénti automatikus Kredit jutalmazás. ### Fixed - **Circular Dependency Fix**: A modellek közötti import hurok végleges felszámolva (string-alapú relationship hivatkozások). - **Identity Schema Protection**: Visszaállítva a `User` modell hiányzó `scope_id`, `scope_level` és `custom_permissions` mezői. - **Database Consistency**: A `user_stats` és `asset_costs` táblák sikeresen migráltak a NOT NULL kényszerek és alapértelmezett értékek (server_default) beállításával. ### Changed - **GamificationService**: Mostantól központi "Bíróként" funkcionál, leválasztva a pontszámítási logikát a többi szervizről. - **Identity Model**: A `Wallet` és `VerificationToken` osztályok integrálva az `identity.py` modulba. # Changelog - Service Finder Backend **Verzió:** 1.6.0 (Sentinel & i18n Update) **Dátum:** 2026.02.10. ## [1.6.0] - 2026-02-10 ### Hozzáadva - **Sentinel Biztonsági Rendszer:** - `PendingAction` modell bevezetése a "Négy szem elv" (Dual Control) biztosításához. - `SecurityService` implementálása: Adatlopás elleni védelem (Throttling) és automata vészleállító (Emergency Lock). - `AuditLog` bővítése szigorúbb súlyossági szintekkel (`critical`, `emergency`). - **Nyelvi Modul (i18n):** - `Translation` modell a `data` sémában. - `TranslationService`: Adatbázis-alapú fordításkezelés, szerveroldali cache, Fallback (EN) logika és JSON export funkció a Frontend számára. - **Admin Kontroll Panel:** - Új API végpontok a függőben lévő műveletek jóváhagyásához, a rendszerbiztonsági állapot monitorozásához és a nyelvi szinkronizációhoz. ### Javítva - **Circular Import Fix:** A modellek importálási rendjének optimalizálása a `app.db.base_class` közvetlen használatával, megszüntetve a hurok-importokat. - **Függőségkezelés:** `deps.py` bővítve a `get_current_active_user` függőséggel a biztonsági zárolások érvényesítéséhez. - **Soft-Delete Logika:** A felhasználói fiók törlése mostantól felszabadítja az eredeti e-mail címet a TWINS-elvű újra-regisztrációhoz. # 15. Changelog & Version History ## [v1.2.5] - 2026-02-10 (The "SuperAdmin" Update) ### 🚀 New Features - **Admin Bootstrap:** Implementáltuk a "vészhelyzeti" Admin létrehozási folyamatot (Python script alapú hash generálással). - **i18n Sync:** Élesítettük a `/api/v1/admin/translations/sync` végpontot, amely JSON fájlokba exportálja az adatbázis fordításait. - **Identity Expansion:** A `User` modell bővült a `preferred_language` és `region_code` mezőkkel a perszonalizáció érdekében. ### 🐛 Bug Fixes - **ORM Crash:** Javítva az `AssetAssignment` és `AssetCost` modellek hiányzó `organization` kapcsolatai, amelyek blokkolták a rendszer indulását (`InvalidRequestError`). - **Config Error:** Javítva a `Settings` osztályból hiányzó `STATIC_DIR` definíció, ami 500-as hibát okozott a fordítások szinkronizálásakor. - **Login Crash:** Javítva az `AttributeError` a Login végponton (a hiányzó `region_code` miatt). ### 🛠 Technical Changes - **Migrations:** Új Alembic migráció (`add_lang_and_region_to_user`) generálva és lefuttatva. - **Environment:** A `static/locales` mappa jogosultságai beállítva a Docker konténer számára. [2026.02.12] - Fundamentum és Robot Orchestration FIX: Javítva a docker-compose v1/v2 összeférhetetlenség (ContainerConfig hiba). FIX: Megszüntetve az ImportError: cannot import name 'FastAPILimiter' hiba a security.py modulban. DATABASE: PostGIS Geometry típus implementálva a service_profiles táblában. MODEL: Az Asset (Digital Twin) és ServiceProfile közötti kapcsolatok szinkronizálva az ownership_history modulon keresztül. WORKERS: Új állapotvezérelt (State-driven) robotlogika bevezetése: A szervizek alapértelmezetten ghost státusszal jönnek létre. Bevezetve a last_audit_at mező az automatikus kivezetéshez (Soft-delete). UX: A keresőmotor számára definiálva a "Nem megerősített szolgáltató" jelzés a bot által talált adatokhoz. 📝 Részletes Összefoglaló az Elvégzett Munkáról Környezet Stabilizálás: A modern Docker Engine-hez igazítottuk a parancsokat, megoldva a régi Python-alapú compose hibáit. Adatmodell Integritás: Visszaállítottuk az összes kritikus mezőt (nettó érték, ÁFA, maradványérték, telemetria), így a rendszer alkalmas komplex flottakezelési feladatokra is. Szerviz Életciklus: Kidolgoztunk egy olyan logikát, ahol a botok nem "szemetelik" az adatbázist, hanem egy ghost (árnyék) réteget hoznak létre. Ezek a szervizek csak akkor válnak teljesen hitelessé, ha a felhasználók interakcióba lépnek velük (Gamification) vagy az Admin jóváhagyja őket. Robot Koordináció: A robotok immár nem ütköznek. Az egyik a járműkatalógust építi API-kból, a másik a térképi pontokat gyűjti és auditálja. # Changelog - 2026-02-13 ## Service Finder Project - "Dunakeszi Detective" & Docker Infrastructure ### 🚀 Fejlesztések és Architektúra - **Robot 2.7 (Service Hunter) Implementálása:** - Hibrid adatgyűjtés bevezetése: OSM (OpenStreetMap) + Google Places API + Helyi CSV. - **Geocoding Integráció:** A CSV-ben megadott szöveges címek (pl. "Dunakeszi, Kikerics köz 4") automatikus GPS koordinátára fordítása a Google API segítségével. - **Trust Score alapok:** Különböző források eltérő bizalmi szinttel kerülnek rögzítésre (Manuális > Google > OSM). - **Adatbázis és Modellek (ORM) Javítása:** - `Organization` és `Address` modellek szinkronizálása a valós adatbázis sémával. - Hiányzó mezők kezelése (City, Zip átmozgatása Organization szintre). - PostGIS geometria (POINT) kezelésének pontosítása. - **Docker Infrastruktúra Stabilizálás:** - Hálózati hiba (`[Errno -2] Name or service not known`) elhárítása. - `shared_db_net` és `bridge` hálózatok megfelelő konfigurálása. - Konténer DNS beállítások fixálása (Google DNS fallback). - Adatbázis hostnév korrekció (`db` -> `shared-postgres`). ### 🧠 Üzleti Logika és Stratégia (Döntések) 1. **Multi-Tenant Kezelés:** Egy címen több cég is létezhet. A rendszer nem vonja össze őket automatikusan, csak ha az adószám/név egyezik. 2. **Adatvédelmi Elv (No-Delete):** A robot soha nem töröl adatot fizikailag. Ha egy forrás megszűnik, a rekord "archived" vagy "review_needed" státuszt kap, de az adatbázisban marad. 3. **Emberi Felügyelet:** A duplikációk összefűzése vagy a hibás adatok törlése Admin/Moderátor jogkör, nem a robot automatizmusa. 4. **Dinamikus Adatfrissítés:** A robot a jövőben frissítheti a manuálisan felvitt adatokat is (pl. ha változik a nyitvatartás a Google-ön), de a prioritási szabályokat még finomítani kell. ### 🐛 Javított Hibák - `socket.gaierror`: Docker konténer internet elérés és belső névfeloldás javítva. - `AttributeError: 'city'`: SQLAlchemy modell mezőleképezési hiba javítva. - Függőségi hiba (`depends_at` -> `depends_on`) a docker-compose fájlban. ### 🔜 Következő Lépések - Gamification és Moderátori felület (Admin UI) tervezése az adatok tisztítására. - Logikai szabályrendszer (Business Rules) véglegesítése a "Robot vs. Ember" adatkonfliktusokra. # Changelog - Service Finder Project **Dátum:** 2026-02-15 **Verzió:** Backend v1.9.8 / Robot v1.0.7 (Deep Hunter) **Fókusz:** Adatbázis séma bővítése, RDW API integráció stabilizálása, Multi-vehicle támogatás. ## 🏛️ Adatbázis és Architektúra (Alembic & SQLAlchemy) ### Hozzáadva - **Új Migráció (`enrich_catalog_technical_schema`):** - `power_kw` (Integer, Indexed): Teljesítmény tárolása. - `engine_capacity` (Integer, Indexed): Hengerűrtartalom (ccm). - `max_weight_kg` (Integer): Megengedett legnagyobb össztömeg. - `euro_class` (String): Környezetvédelmi besorolás. - **Új Migráció (`add_axles_and_body_type`):** - `axle_count` (Integer): Tengelyek száma (Teherautókhoz/Kamionokhoz). - `body_type` (String): Felépítmény (pl. Sedan, Box, Camper). - **Modell Frissítés (`asset.py`):** - Az `AssetCatalog` osztály szinkronba hozva az új DB sémával. - `UniqueConstraint` és indexek optimalizálása a gyors kereséshez. ### Javítva - **Alembic Syntax Error:** Javítva a `ddef` elírás a migrációs fájlban. - **Column Duplication:** Javítva az `axle_count` duplikált létrehozási kísérlete a második migrációban. ## 🤖 Robot / Worker (Data Ingestion) ### Módosítva - **Robot Upgrade (v1.0.2 -> v1.0.7 Deep Hunter):** - **License Plate Bridge (Rendszám-híd):** Új stratégia az API 400-as hibák megkerülésére. A robot mostantól: 1. Lekéri az alapadatokat (`m9d7-ebf2`). 2. Kivesz egy minta rendszámot. 3. Ezzel a rendszámmal lekérdezi a `FUEL`, `AXLE` és `BODY` táblákat. - **Pagination (Lapozás):** `$offset` támogatás beépítése, így a robot képes 50.000+ rekordos márkákat is végigolvasni. - **Camper Detection:** Automatikus lakóautó (`camper`) kategória felismerés a "kampeerwagen" kulcsszó alapján. - **Category Mapping:** Angol nyelvű kategóriák (Car, Truck, Motorcycle, Agricultural) kényszerítése. ### Javítva - **RDW API 400 Bad Request:** Megoldva a `merk` vs `merknaam` paraméterek eltérésének kezelésével (átállás a fő táblára). - **AttributeError:** Javítva a hibás `TECH_API_URL` hivatkozás. ## 💾 Adat (Seeding & SQL) - **Grand Seeder v2:** - SQL szkript létrehozva a világmárkák (Toyota, BMW, Scania, John Deere, stb.) tömeges betöltésére. - `model` mező feltöltése `'ALL'` értékkel a `NOT NULL` kényszer miatt. - Státuszok visszaállítása `pending`-re a teljes újradolgozáshoz. # CHANGELOG - 2026.02.16 (Architectural Overhaul: Identity & Economy Engine) ## 🏆 Napi Összefoglaló A mai napon alapjaiban strukturáltuk át az identitáskezelést (`Identity`), a jogosultsági rendszert (`RBAC`) és a gazdasági motort (`Economy`). Bevezetésre került a "Dual Entity" modell (Person vs. User), a 3-szintű Wallet rendszer, valamint a "Hunting & Farming" üzletkötői jutalékrendszer alapjai. A biztonságot a 4-szem elvű (Four-Eyes Principle) audit naplózás garantálja. --- ## 🏛️ 1. Architektúra és Logika (Master Book Updates) ### A. Identitás Filozófiája (The Dual Entity Rule) * **Person (A DNS):** A természetes személy, aki "örök". Nem törlődik GDPR törléskor sem, csak anonimizálódik. * Tárolja: `lifetime_xp` (életút pontok), `penalty_points` (büntetések 0-3 szint), `social_reputation`. * **Identity Hash:** Egyedi SHA256 lenyomat (Kisbetűsített Anyja neve + Születési hely + Idő) a duplikációk és visszaélések ellen. * **User (A Kulcs):** A belépési fiók. Bármikor törölhető/eldobható. * Kapcsolódik a Person-höz. * Tárolja: `subscription_plan`, `is_vip`, `session_data`. ### B. Gazdasági Modell (The Triple Wallet) A pénztárcát (`Wallet`) három, szigorúan elkülönített alszámlára bontottuk: 1. **Earned Credits:** Munkával (validálás) és Referral jutalékból szerzett. (Beváltható Prémiumra). 2. **Purchased Credits:** Valódi pénzért vásárolt egyenleg. (Beváltható Prémiumra). 3. **Service Coins:** B2B egység. Kizárólag hirdetésre és kiemelésre fordítható. (NEM váltható Prémiumra). ### C. Üzletkötői Rendszer (Hunting & Farming) * **Hunting (Vadász) Jutalék:** Egyszeri jutalék az első behozatalért (tervezett: 10%). * **Farming (Gazda) Jutalék:** Folyamatos jutalék a havidíjakból (tervezett: 5%). * **Átruházhatóság:** A Farming jog nem az üzletkötőhöz, hanem a Cég-Üzletkötő kapcsolathoz (`OrganizationSalesAssignment`) kötődik. Ha az üzletkötő kilép, a portfóliója (és a jutalék) átruházható másra. ### D. Biztonság (Audit & 4-Eyes) * **Operational Log:** Napi üzemi események (pl. jármű rögzítés). * **Financial Ledger:** Minden pénzmozgás (Kredit/Coin/HUF) központi főkönyve. * **Security Audit Log:** Kiemelt biztonsági események (pl. VIP státusz adása). * **4-szem elv:** Kritikusan érzékeny műveleteknél kötelező egy második admin jóváhagyása (`confirmed_by_id`). --- ## 🛠️ 2. Adatbázis és Modell Változások ### Új/Módosított Táblák (`data` séma) | Tábla | Változás | Leírás | | :--- | :--- | :--- | | **persons** | **UPDATE** | Új mezők: `identity_hash`, `lifetime_xp`, `penalty_points`, `social_reputation`, `is_sales_agent`. | | **users** | **UPDATE** | Új mezők: `subscription_expires_at`, `is_vip`, `referral_code`, `current_sales_agent_id`. | | **wallets** | **REFACTOR** | Régi balance törölve. Új: `earned_credits`, `purchased_credits`, `service_coins`. | | **org_sales_assignments** | **NEW** | Kapcsolótábla: Melyik cég után ki kapja épp a Farming jutalékot. | | **financial_ledger** | **NEW** | Pénzügyi tranzakciók megmásíthatatlan naplója. | | **security_audit_logs** | **NEW** | Adminisztrátori műveletek és 4-szem elv naplózása. | | **operational_logs** | **NEW** | Általános rendszerhasználati napló. | --- ## 📂 3. Érintett Fájlok Listája (Checklist) Kérlek, ellenőrizd, hogy ezek a fájlok a legfrissebb verziót tartalmazzák-e a mentésedben: - [x] **`backend/app/models/identity.py`** (A teljes Person/User/Wallet logika alapja) - [x] **`backend/app/models/audit.py`** (A Ledger és Security Log definíciók) - [x] **`backend/app/models/organization.py`** (A SalesAssignment tábla hozzáadása) - [x] **`backend/app/models/__init__.py`** (Az összes modell regisztrációja az Alembic számára) - [x] **`backend/app/db/base.py`** (A metadata importok frissítése) - [x] **`backend/app/core/validators.py`** (Az IdentityNormalizer és Hash generáló logika) - [x] **`backend/migrations/versions/XXXX_full_ecosystem_upgrade_v1_6.py`** (A generált migrációs fájl) --- ## 🔮 4. Következő Lépések (Roadmap) 1. **Service Réteg Implementálása:** Megírni a logikát, ami ténylegesen számolja a 10/5%-os jutalékot és beírja a `FinancialLedger`-be. 2. **Admin UI:** Felületet készíteni a `system_parameters` (Jutalék szintek) állítására. 3. **Robot v1.8:** A "Ghost" szervizek bekötése az új `Person` logikába (automata `identity_hash` generálás a cégadatokból). # Changelog ## [v1.1.0] - 2026-02-17 "The Awakening" ### 🚀 Hozzáadva (New Features) - **AI Service (Gemini Integration):** `app/services/ai_service.py` létrehozva. A rendszer mostantól képes a "Yamaha 4HN" típusú zajos adatokból tiszta marketing neveket és műszaki specifikációkat generálni. - **Robot 2 (Technical Enricher):** `app/workers/technical_enricher.py` frissítve v1.1-re. Hibrid működés: RDW adatbázis + AI kiegészítés. - **Robot 3 (OCR - Előkészület):** `app/workers/ocr_robot.py` váza elkészült a dokumentumok feldolgozásához. - **Reporting:** `app/scripts/morning_report.py` létrehozva a napi robot-tevékenység összefoglalására. - **Logging:** Új `ProcessLog` tábla létrehozva az `audit` sémában a háttérfolyamatok nyomon követésére. ### 🐛 Javítva (Bug Fixes) - **Docker Infrastructure:** - Javítva a `KeyError: 'ContainerConfig'` hiba a Docker Compose V2-re váltással. - Javítva az "empty database URL" hiba a migrációnál (`.env` változók helyes átadása). - Hálózati beragadások (Gitea/Nginx conflict) feloldva. - **Circular Imports:** Megszüntetve a `SystemParameter` modell duplikációja (`system_config.py` vs `system.py`). Minden szerviz (`Auth`, `Security`, `Cost`, `Gamification`) mostantól a központi `app.models`-ből importál. - **Swagger UI:** Az API sikeresen elindul, a dokumentáció elérhető a `/docs` végponton. ### ⚙️ Infrastruktúra (Refactor) - **Docker Compose:** Teljes tisztítás. Duplikált környezeti változók törölve, `env_file` használat optimalizálva. - **Services:** A robotok (`enricher`, `catalog`, `hunter`) külön konténerekbe szervezve, `unbuffered` python kimenettel a valós idejű logolásért. ### 🛡️ Biztonság - `.env` fájl szerkezete egységesítve, duplikációk eltávolítva.