Files
service-finder/MILESTONE_8_GAMIFICATION_PRO.md
2026-03-22 11:02:05 +00:00

104 lines
5.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 8. Mérföldkő: Gamification 2.0, Verseny és Önvédelmi Rendszer
**Állapot:** Tervezés alatt
**Kezdés dátuma:** 2026-03-15
**Befejezés határideje:** 2026-04-15 (becsült)
**Felelős:** Backend Architekt, Gamification Team
## 🎯 Célok
1. A meglévő Gamification rendszer kibővítése szezonális versenyekkel és önvédelmi mechanizmusokkal.
2. A Service Finder robot pipeline hibáinak kijavítása (Robot 3, sémaeltérés, hiányzó Auditor).
3. A felhasználók által beküldött szervizek biztonságos és ellenőrzött átjuttatása a productionba.
4. Moderációs és büntető rendszer bevezetése a spam és rosszindulatú beküldések kezelésére.
## 📋 Feladatlista
### 1. Adatbázis & Modell Fázis (Foundation)
- [ ] **Season tábla:** Féléves versenyek tárolása.
- `id`, `name`, `start_date`, `end_date`, `is_active`
- Séma: `system.seasons`
- [ ] **UserContribution tábla:** Spam védelem és cooldown kezelés.
- `user_id`, `service_fingerprint`, `action_type`, `earned_xp`, `cooldown_end`
- Séma: `gamification.user_contributions`
- [ ] **UserStats bővítés:** Restrikciós szintek és büntető kvóták.
- `restriction_level` (0, -1, -2, -3)
- `penalty_quota_remaining`
- `banned_until`
- Séma: `system.user_stats` (meglévő tábla)
- [ ] **SystemParameter integráció:** Dinamikus küszöbök tárolása.
- `key`: `promotion_threshold`, `xp_reward_base`, `penalty_multiplier`
- `value`: JSON konfiguráció
- Séma: `system.system_parameters` (meglévő)
### 2. Worker Refactoring (The Pipeline)
- [ ] **Robot 3 (Enricher) átírása:** Ne publikáljon! Csak növelje a trust_score-t a stagingben a talált szakmák alapján → státusz: `auditor_ready`.
- Cél: A jelenlegi `researched` státusz helyett `auditor_ready` legyen, jelezve, hogy az Auditor feldolgozhatja.
- Függőség: Hiányzó Auditor robot (lásd alább).
- [ ] **Robot 2 (Auditor) implementálása:** Staging → Production átemelés.
- Olvassa ki a küszöböt a `system_parameters`-ből.
- Ha a trust_score elég magas:
- Organization létrehozása (Digital Twin).
- ServiceProfile létrehozása a staging adatok alapján.
- Státusz átállítás `active` vagy `pending_validation`.
- Ha nem igazolható az adat: InternalNotification a moderátoroknak.
- Audit log rögzítése.
- [ ] **Séma bővítés:** A `service_staging` táblához hiányzó mezők hozzáadása.
- `contact_phone`, `website`, `external_id`, `contact_email`
- Migráció: Alembic szkript.
### 3. Gamification API & Verseny (Logic)
- [ ] **POST /submit-service:** User szint ellenőrzés, 90 napos cooldown check, büntetési szorzók.
- Ellenőrzés: `restriction_level` alapján XP szorzó (-1 szint = 50% XP, -2 szint = 20% XP).
- Cooldown: `UserContribution` tábla alapján, ugyanazon fingerprint esetén.
- XP jutalom: `SystemParameter` alapján, korrigálva a büntetési szorzóval.
- [ ] **GET /leaderboard:** Szezonális toplista.
- Szezon kiválasztása (`is_active = TRUE`).
- Rangsorolás: Szezonális XP alapján.
- Adatvédelem: Maszkolt e-mail címek (`a***@domain.com`).
- [ ] **POST /claim-business:** Tulajdonosi igénylés indítása.
- Feltétel: `trust_score ≥ 100` és `is_verified = TRUE`.
- Moderátori jóváhagyás szükséges.
- Jogosultság átadása a kérvényező felhasználónak.
### 4. Moderáció & Admin (Protection)
- [ ] **Büntető mechanizmus:** Ha a Robot 4 vagy moderátor hibás adatot talál → User strike → `restriction_level` csökkentés.
- Strikes tárolása: `gamification.user_strikes`.
- Automatikus szintcsökkentés: 3 strikes → `restriction_level -1`.
- [ ] **Admin funkció:** Büntetési kvóták és XP értékek állítása a `SystemParameter` táblán keresztül.
- Admin UI: Paraméterek szerkesztése (küszöbértékek, szorzók, cooldown idő).
- [ ] **Moderátori értesítések:** InternalNotification rendszer bővítése.
- Értesítési csatornák: email, in-app, push (opcionális).
## 🗺️ Kapcsolódó Gitea Kártyák
- #76: Hibás Robot 3 (Enricher) közvetlen publikálás a service_profiles táblába (LEZÁRVA)
- #77: Service Staging tábla hiányzó mezői (contact_phone, website, external_id) (LEZÁRVA)
- #78: Hiányzó Auditor robot a staging -> production átvitelhez (LEZÁRVA)
## 🔗 Függőségek
- **Meglévő rendszer:** Gamification API (`/my-stats`, `/leaderboard`, `/submit-service`), Service robot pipeline (04), SystemParameter tábla.
- **Külső rendszerek:** Google Places API (Robot 4), Docker környezet, PostgreSQL adatbázis.
## 🚀 Megvalósítási Lépések
1. **Adatbázis migrációk** (Alembic) Season, UserContribution, UserStats bővítés, service_staging mezők.
2. **Robot refactoring** Robot 3 logika finomhangolása, Robot 2 (Auditor) implementálása.
3. **API bővítés** Új végpontok, meglévők módosítása (submit-service, leaderboard, claim-business).
4. **Moderációs rendszer** Strikes kezelés, admin felület integráció.
5. **Tesztelés** Egységtesztek, integrációs tesztek, teljes pipeline teszt.
6. **Dokumentáció** API dokumentáció, robot leírások, admin útmutató.
## ⚠️ Kockázatok
- **Adatbázis séma változás:** Meglévő adatok migrálása szükséges lehet.
- **Robot függőségek:** Ha az Auditor robot hibás, a staging adatok felhalmozódnak.
- **Teljesítmény:** A leaderboard lekérdezés nagy adatmennyiség esetén lassú lehet (indexelés, gyorsítótárazás).
## ✅ Sikeresség Mérésére
- A staging → production átvitel sikeresen működik (napi X szerviz publikálása).
- A spam beküldések száma csökken (strikes rendszer hatékonysága).
- A felhasználói engagement növekszik (XP, ranglétrák, versenyek).
---
*Ez a dokumentum a projekt gyökerében található, és a 8. mérföldkő tervezési fázisát rögzíti. A tényleges megvalósítás előtt az Architect és a Code csapat felülvizsgálja.*