Backend: social_service.py hardcoded XP javítása dinamikus pontszabály lookup-ra #361

Closed
opened 2026-06-30 14:27:19 +02:00 by kincses · 2 comments
Owner

Mérföldkő: Service Provider Discovery & Gamification Integration

Cél: A social_service.py create_service_provider() metódusában lévő hardcoded 50 XP kicserélése dinamikus _award_provider_points(action_key='ADD_NEW_PROVIDER') hívásra, valamint a RATE_PROVIDER pontszabály bekötése a vote_for_provider() metódusba.

🔗 Függőségek (Dependencies)

  • Bemenet: social_service.py, _award_provider_points() függvény, GamificationService
  • Kimenet: ADD_NEW_PROVIDER (500) és RATE_PROVIDER (250) pontszabályok konzisztens kiosztása

📝 Elemzés

Két javítás szükséges:

  1. create_service_provider() (26. sor):

    • Eredeti:
    • Javítás:
    • Figyelem: a _award_provider_points a provider_service.py-ban van, importálni kell
  2. vote_for_provider() (31. sor):

    • A Vote létrehozása után meghívni:
    • Ez biztosítja, hogy a RATE_PROVIDER (250 XP) végre kiosztásra kerüljön

Hivatkozás: docs/gamification_provider_connection_analysis.md (6.3, 6.4 szekció)

**Mérföldkő:** Service Provider Discovery & Gamification Integration **Cél:** A social_service.py create_service_provider() metódusában lévő hardcoded 50 XP kicserélése dinamikus _award_provider_points(action_key='ADD_NEW_PROVIDER') hívásra, valamint a RATE_PROVIDER pontszabály bekötése a vote_for_provider() metódusba. ### 🔗 Függőségek (Dependencies) - **Bemenet:** social_service.py, _award_provider_points() függvény, GamificationService - **Kimenet:** ADD_NEW_PROVIDER (500) és RATE_PROVIDER (250) pontszabályok konzisztens kiosztása ### 📝 Elemzés Két javítás szükséges: 1. **create_service_provider()** (26. sor): - Eredeti: - Javítás: - Figyelem: a _award_provider_points a provider_service.py-ban van, importálni kell 2. **vote_for_provider()** (31. sor): - A Vote létrehozása után meghívni: - Ez biztosítja, hogy a RATE_PROVIDER (250 XP) végre kiosztásra kerüljön Hivatkozás: docs/gamification_provider_connection_analysis.md (6.3, 6.4 szekció)
kincses added the Status: To DoType: Bug labels 2026-06-30 14:27:19 +02:00
kincses added Status: Done and removed Status: To Do labels 2026-06-30 14:55:36 +02:00
Author
Owner

Munka befejezve: 2026-06-30 14:55:36

Technikai Összefoglaló:
Backend: social_service.py hardcoded XP javítva. create_service_provider(): hardcoded 50 XP → dinamikus _award_provider_points('ADD_NEW_PROVIDER') (500 pont). vote_for_provider(): RATE_PROVIDER (250 pont) bekötve sikeres szavazat után. Sync engine: 1292 OK. Point rules verifikálva: ADD_NEW_PROVIDER=500, RATE_PROVIDER=250 aktív.

⏱️ Az idő rögzítve.

✅ **Munka befejezve:** 2026-06-30 14:55:36 **Technikai Összefoglaló:** Backend: social_service.py hardcoded XP javítva. create_service_provider(): hardcoded 50 XP → dinamikus _award_provider_points('ADD_NEW_PROVIDER') (500 pont). vote_for_provider(): RATE_PROVIDER (250 pont) bekötve sikeres szavazat után. Sync engine: 1292 OK. Point rules verifikálva: ADD_NEW_PROVIDER=500, RATE_PROVIDER=250 aktív. ⏱️ *Az idő rögzítve.*
Author
Owner

#361 - Backend: social_service.py hardcoded XP javítása — KÉSZ

Végrehajtott módosítások

Módosított fájl: backend/app/services/social_service.py

1. create_service_provider() — 26. sor

  • ELŐTT: gamification_service.process_activity(db, user_id, 50, 10, f"New Provider: {new_provider.name}") — hardcoded 50 XP
  • UTÁNA: _award_provider_points(db, user_id, "ADD_NEW_PROVIDER") — dinamikus lookup a gamification.point_rules táblából → 500 pont

2. vote_for_provider() — 57. sor

  • ELŐTT: Nem volt pontjóváírás szavazat után
  • UTÁNA: _award_provider_points(db, voter_id, "RATE_PROVIDER") — sikeres szavazat után → 250 pont

Ellenőrzési eredmények

Ellenőrzés Eredmény
Sync Engine (DB séma) 1292 OK, 0 Fixed, 0 Extra
social_service import Sikeres
_award_provider_points import Sikeres
ADD_NEW_PROVIDER pontszabály 500 pont, aktív
RATE_PROVIDER pontszabály 250 pont, aktív
Gitea #361 lezárás Done

Architektúra

A pontok NINCSENEK beégetve a kódba. Mindkét action_key (ADD_NEW_PROVIDER, RATE_PROVIDER) a gamification.point_rules táblából olvasódik ki futásidőben a provider_service.py-ben lévő _award_provider_points() függvényen keresztül, amely a gamification_service.award_points()-t hívja meg. Az admin felületről bármikor módosíthatók.

## ✅ #361 - Backend: social_service.py hardcoded XP javítása — KÉSZ ### Végrehajtott módosítások **Módosított fájl:** [`backend/app/services/social_service.py`](backend/app/services/social_service.py) #### 1. `create_service_provider()` — 26. sor - **ELŐTT:** `gamification_service.process_activity(db, user_id, 50, 10, f"New Provider: {new_provider.name}")` — hardcoded 50 XP - **UTÁNA:** `_award_provider_points(db, user_id, "ADD_NEW_PROVIDER")` — dinamikus lookup a `gamification.point_rules` táblából → **500 pont** #### 2. `vote_for_provider()` — 57. sor - **ELŐTT:** Nem volt pontjóváírás szavazat után - **UTÁNA:** `_award_provider_points(db, voter_id, "RATE_PROVIDER")` — sikeres szavazat után → **250 pont** ### Ellenőrzési eredmények | Ellenőrzés | Eredmény | |---|---| | Sync Engine (DB séma) | ✅ 1292 OK, 0 Fixed, 0 Extra | | `social_service` import | ✅ Sikeres | | `_award_provider_points` import | ✅ Sikeres | | `ADD_NEW_PROVIDER` pontszabály | ✅ 500 pont, aktív | | `RATE_PROVIDER` pontszabály | ✅ 250 pont, aktív | | Gitea #361 lezárás | ✅ Done | ### Architektúra A pontok **NINCSENEK** beégetve a kódba. Mindkét action_key (`ADD_NEW_PROVIDER`, `RATE_PROVIDER`) a `gamification.point_rules` táblából olvasódik ki futásidőben a [`provider_service.py`](backend/app/services/provider_service.py:59)-ben lévő `_award_provider_points()` függvényen keresztül, amely a `gamification_service.award_points()`-t hívja meg. Az admin felületről bármikor módosíthatók.
Sign in to join this conversation.