Initial commit: Robot ökoszisztéma v2.0 - Stabilizált jármű és szerviz robotok

This commit is contained in:
Kincses
2026-03-04 02:03:03 +01:00
commit 250f4f4b8f
7942 changed files with 449625 additions and 0 deletions

View File

@@ -0,0 +1,508 @@
(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.