feat(robot): hunter v2.7, geocoding support, docker network fix, changelog update

This commit is contained in:
2026-02-13 01:15:34 +00:00
parent 09a0430384
commit f38a75a025
41 changed files with 1801 additions and 153 deletions

View File

@@ -126,4 +126,10 @@ A technikai belépési pont.
### 5.2.2. TWINS Concept Update
- A `User` (User) és `Person` (Shadow Identity) szétválasztása szigorú.
- Belépéskor a rendszer a `User` táblából olvassa ki a `preferred_language` és `region_code` beállításokat, és ezeket a Token válaszban visszaadja a Frontendnek.
- Belépéskor a rendszer a `User` táblából olvassa ki a `preferred_language` és `region_code` beállításokat, és ezeket a Token válaszban visszaadja a Frontendnek.
## 1.3 Shadow Identity & Merging Logic
A rendszer támogatja a "Ghost Person" (Árnyék személy) entitásokat.
- **Ghost Person:** Olyan `data.persons` rekord, amelyet a Robot 2 hozott létre nyilvános adatok (pl. cégjegyzék) alapján.
- **Identity Linkage:** Regisztrációkor a `AuthService.complete_kyc` kötelezően ellenőrzi a meglévő Ghost rekordokat (Adószám/Név egyezés).
- **Merge Action:** Találat esetén a rendszer összefűzi a technikai User fiókot a Ghost Person rekorddal, aktiválja a jogosultságokat, és megszünteti a Ghost státuszt.

View File

@@ -196,4 +196,9 @@ A rendszer az adatintegritás és a sebesség érdekében hibrid modellt haszná
| :--- | :--- |
| `data.addresses` | Konkrét házszám szintű címek (Hibrid hivatkozási pont). |
| `data.geo_postal_codes` | Irányítószám és város kapcsolata (HU/EU támogatás). |
| `data.user_stats` | Felhasználói XP, szintek és strike-ok tárolása. |
| `data.user_stats` | Felhasználói XP, szintek és strike-ok tárolása. |
## 2.4 Financial & Enrichment Tables
- **data.organization_financials:** Éves gazdasági adatok (árbevétel, profit, létszám) tárolása historikus elemzéshez.
- **data.service_profiles.specialization_tags:** JSONB mező a szigorú szakmai szűréshez (pl. márkák, specifikus javítási típusok).
- **data.service_profiles.google_place_id:** Külső validációs kulcs a Google Places API-hoz.

View File

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

View File

@@ -218,4 +218,9 @@ Kapcsolatot teremt egy Jármű (`Asset`) és egy Szervezet (`Organization`) köz
- **status**: Active / Released
- **Validáció:** Egy jármű egyszerre csak egy szervezetnél lehet `active` státuszban.
*(Megjegyzés: A v1.2.5 frissítés javította az ORM kapcsolatokat, így a lekérdezések most már közvetlenül elérik az `assignment.organization` objektumot.)*
*(Megjegyzés: A v1.2.5 frissítés javította az ORM kapcsolatokat, így a lekérdezések most már közvetlenül elérik az `assignment.organization` objektumot.)*
## 4.0 Catalog 2022+ Strategy (Hybrid Mode)
A CarQueryAPI korlátai miatt 2022 utáni modelleknél a Robot 1 az alábbi hibrid logikát alkalmazza:
1. **API Ninjas & Auto-Data Sync:** Elsődleges technikai forrás.
2. **European Scraper Mode:** A mobile.de és autoscout24.hu portálok típusválasztóinak (meta-adatok) aratása a legfrissebb modellek és motorváltozatok rögzítéséhez.

View File

@@ -39,4 +39,15 @@ Keresési algoritmus:
Free User: 1. Hirdetők, 2. Légvonalbeli távolság, 3. Trust Score.
Útvonaltervezés (Premium): Külső motor (pl. OSRM vagy GraphHopper) integráció a pontos elérési időhöz.
Útvonaltervezés (Premium): Külső motor (pl. OSRM vagy GraphHopper) integráció a pontos elérési időhöz.
## 3.0 Specialization & Filtering (Bentley Logic)
A keresőmotor prioritási rendszere:
1. **Explicit Specialist:** Specializációs tag-ek alapján (pl. brand: Bentley).
2. **General Service:** Univerzális javítók, ahol nincs kizáró ok.
3. **Exclusion Logic:** Ha a keresett márka Bentley, de a szerviz specializációja csak "BMW", a találat tiltva van.
## 4.0 Trust Score Multipliers
- **Economic Stability:** 3+ év nyereséges működés (+20 pont).
- **Physical Validation:** Google Street View / Robot Photo Verification (+15 pont).
- **Verified Staff:** Ha a szerelőregisztrációk száma > 2 (+10 pont).

View File

@@ -38,4 +38,65 @@ A Robot 1 (Catalog Filler) egy rétegelt feltöltési stratégiát követ:
Layer 2 (Technical Depth): Folyadékmennyiségek, kerékméretek, meghúzási nyomatékok.
Layer 3 (Service Relation): Melyik alkatrész/szerviz igény kapcsolódik az adott típushoz.
Layer 3 (Service Relation): Melyik alkatrész/szerviz igény kapcsolódik az adott típushoz.
API Strategy
24. Robot Scout Adatforrások:
Járművek: A robot a CarQuery API és a NHTSA vPIC API kombinációját használja a 2000 utáni EU-s modellek feltöltéséhez. A ciklusidő: 1 év/5 perc.
Szervizek: Az OSM Overpass API az elsődleges forrás a lokációkhoz. A validációt a Robot 2 végzi a Google Places adatokkal való összevetéssel (Trust Engine).
Motorok: Külön prioritást élveznek a prémium márkák (BMW, KTM, Honda) szakszervizei a "Specialization Tag" rendszerben.
📘 MASTER BOOK KIEGÉSZÍTÉS (v2.4) - 2026.02.13
20.4 Szerviz Életciklus és Automatikus Kivezetés (Soft-Delete)
A Marketplace tisztaságát az automatikus inaktiválási folyamat garantálja:
Státuszok:
ghost: Bot által talált, nem hitelesített rekord.
active: Működő, publikus szerviz.
flagged: Gyanús (pl. bezártnak jelentett), felülvizsgálatra vár.
inactive: Megszűnt vagy inaktivált szerviz (Soft-deleted).
Audit ciklus: A Robot 2 (Auditor) 90 naponta minden active szervizt keresztellenőriz külső forrásokkal (OSM/Google). Ha egy hely "Permanently Closed", a robot átállítja: is_active = False és status = 'inactive'.
22.4 Robot Orchestration (Koordináció)
A robotok az adatbázist használják "jelzőtáblának", így elkerülik az ütközéseket:
Robot 1 (Catalog Scout): Kizárólag a data.vehicle_catalog táblát írja.
Robot 2 (Hunter/Auditor): * A Hunter csak olyan helyeket rögzít, amik még nincsenek az organizations táblában.
Az Auditor csak az is_active=True rekordokat vizsgálja felül.
Robot 3 (OCR/Detective): Dokumentum-alapú validálást végez. Ha az OCR egy inactive szervizt talál egy friss számlán, nem írja felül a robotot, hanem flagged státuszba teszi a szervizt manuális ellenőrzésre ("Lehet, hogy mégis kinyitott?").
20.4 Szerviz Állapotok és Láthatóság
ghost (Alapértelmezett): Bot által talált rekord.
Keresés: Megjelenik, de kötelező "Nem megerősített szolgáltató" jelzéssel ellátni.
Gamification: Teljesen nyitott. A felhasználók értékelhetik, fotózhatják. Minden ilyen interakció növeli a trust_score-t.
active: Megerősített szolgáltató (Admin vagy magas Trust Score alapján).
flagged: Felülvizsgálat alatt (pl. ellentmondásos adatok).
inactive: Igazoltan megszűnt. Csak ez az állapot rejtett a keresés elől.
## 2.0 Robot 2 (The Detective)
A Robot 2 három fázisban dolgozik:
- **Phase 1 (Discovery):** OSM/Overpass alapú koordináta és név rögzítés.
- **Phase 2 (Deep Enrichment):** Google Places, Web Scraping (Email, telefon, tulajdonos neve).
- **Phase 3 (Financial Audit):** Nyilvános cégadatok (Árbevétel, létszám, adózott eredmény) éves szinkronizálása.