feat: v1.7 overhaul - identity hash, triple wallet, financial ledger, and security audit system

This commit is contained in:
2026-02-16 00:42:49 +00:00
parent bb02d4ed59
commit d574d3297d
63 changed files with 3710 additions and 565 deletions

View File

@@ -365,4 +365,120 @@ A rendszer most már képes egyetlen KYC folyamat alatt aktiválni a felhasznál
### 🔜 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.
- 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).