Backend: GamificationService refaktor (point_rules tábla integráció) #326
Notifications
Total Time Spent: 8 minutes
kincses
8 minutes
No due date set.
Dependencies
No dependencies set.
Reference: kincses/service-finder#326
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Mérföldkő: Epic 8 Gamification 2.0, Verseny és Önvéde
Cél: A GamificationService.process_activity() kiegészítése a point_rules tábla olvasásával a GAMIFICATION_MASTER_CONFIG mellett
🔗 Függőségek (Dependencies)
📝 Elemzés
A GamificationService.process_activity() jelenleg csak a GAMIFICATION_MASTER_CONFIG JSONB-t használja a pontozáshoz. Ki kell egészíteni, hogy a point_rules táblából is tudjon olvasni (action_key alapján). Ha a point_rules táblában van aktív szabály, akkor az elsőbbséget élvez a master config felett.
Főbb változtatások:
▶️ Munka megkezdve: 2026-06-29 20:16:01
✅ Munka befejezve: 2026-06-29 20:24:48
Technikai Összefoglaló:
GamificationService refaktor: point_rules tábla integráció. _get_point_rule() metódus hozzáadva, process_activity() kibővítve action_key/source_type/source_id paraméterekkel. admin.py penalty végpont, gamification.py submit-service/quiz/answer/badges/award endpointok átállítva GamificationService használatára. Sync Engine: 1284 OK.
⏱️ Az idő rögzítve.
✅ #326 Gitea kártya sikeresen lezárva
Elvégzett feladatok:
1. GamificationService refaktor (
backend/app/services/gamification_service.py)_get_point_rule()metódus hozzáadva — lekérdezi apoint_rulestáblából azaction_keyalapján a pontszabálytprocess_activity()kibővítveaction_key,source_type,source_idparaméterekkelaction_keymeg van adva, a service először apoint_rulestáblában keres, és annakpointsértékét használja_apply_penalty()frissítvesource_type/source_idtracking-gelPointsLedgercreation tartalmazza azxp,source_type,source_idmezőket2. Régi admin.py penalty végpont átírása (
backend/app/api/v1/endpoints/admin.py:412)gamification.levelmezőt módosítottagamification_service.process_activity()hívásis_penalty=Trueparaméterrelpenalty_level(negatív int) →penalty_amount(abs * 100) konverzió3. gamification.py endpointok átállítása (
backend/app/api/v1/endpoints/gamification.py)submit-service→action_key="service_submission",source_type="service"quiz/answer→action_key="daily_quiz_correct",source_type="quiz"badges/award→action_key="badge_earned",source_type="badge"Ellenőrzési eredmények:
py_compileOK