Backend: USE_UNVERIFIED_PROVIDER pontszabály bekötése #362

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

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

Cél: A USE_UNVERIFIED_PROVIDER (200 XP) pontszabály bekötése a rendszerbe. Ez a pont akkor jár, ha egy user olyan providert használ (pl. expense létrehozáskor), amely még nincs admin által jóváhagyva (pending státuszú).

🔗 Függőségek (Dependencies)

  • Bemenet: provider_service.py, expenses.py, find_or_create_provider_by_name() (#359)
  • Kimenet: USE_UNVERIFIED_PROVIDER pontszabály élesedése

📝 Elemzés

A find_or_create_provider_by_name() függvény által visszaadott PROVIDER_CONFIRMATION helyett bizonyos esetekben USE_UNVERIFIED_PROVIDER-t kell kiosztani:

  • Ha a provider PENDING státuszú és a használó user NEM a provider létrehozója → USE_UNVERIFIED_PROVIDER (200)
  • Ha a provider PENDING státuszú és a használó user a provider létrehozója → PROVIDER_CONFIRMATION (150)
  • Ez megakadályozza az XP farmingot (saját provider használata saját magának)

Hivatkozás: docs/gamification_provider_connection_analysis.md (4.4 szekció)

**Mérföldkő:** Service Provider Discovery & Gamification Integration **Cél:** A USE_UNVERIFIED_PROVIDER (200 XP) pontszabály bekötése a rendszerbe. Ez a pont akkor jár, ha egy user olyan providert használ (pl. expense létrehozáskor), amely még nincs admin által jóváhagyva (pending státuszú). ### 🔗 Függőségek (Dependencies) - **Bemenet:** provider_service.py, expenses.py, find_or_create_provider_by_name() (#359) - **Kimenet:** USE_UNVERIFIED_PROVIDER pontszabály élesedése ### 📝 Elemzés A find_or_create_provider_by_name() függvény által visszaadott PROVIDER_CONFIRMATION helyett bizonyos esetekben USE_UNVERIFIED_PROVIDER-t kell kiosztani: - Ha a provider PENDING státuszú és a használó user NEM a provider létrehozója → USE_UNVERIFIED_PROVIDER (200) - Ha a provider PENDING státuszú és a használó user a provider létrehozója → PROVIDER_CONFIRMATION (150) - Ez megakadályozza az XP farmingot (saját provider használata saját magának) Hivatkozás: docs/gamification_provider_connection_analysis.md (4.4 szekció)
kincses added the Status: To DoType: Feature labels 2026-06-30 14:27:27 +02:00
kincses added Status: In Progress and removed Status: To Do labels 2026-06-30 14:57:28 +02:00
kincses started working 2026-06-30 14:57:28 +02:00
Author
Owner

▶️ Munka megkezdve: 2026-06-30 14:57:27

▶️ **Munka megkezdve:** 2026-06-30 14:57:27
kincses added Status: Done and removed Status: In Progress labels 2026-06-30 15:08:16 +02:00
kincses worked for 10 minutes 2026-06-30 15:08:16 +02:00
Author
Owner

Munka befejezve: 2026-06-30 15:08:15

Technikai Összefoglaló:
USE_UNVERIFIED_PROVIDER (200 XP) pontszabály bekötése a find_or_create_provider_by_name() függvénybe. A provider státusza (pending/approved) és a létrehozó user azonosítója alapján történő megkülönböztetés: PENDING + nem saját provider → USE_UNVERIFIED_PROVIDER (200 XP), PENDING + saját provider → PROVIDER_CONFIRMATION (150 XP), APPROVED → PROVIDER_VERIFIED_USE (100 XP). Seed script frissítve. Mind a 3 teszt scenario sikeresen lefutott.

⏱️ Az idő rögzítve.

✅ **Munka befejezve:** 2026-06-30 15:08:15 **Technikai Összefoglaló:** USE_UNVERIFIED_PROVIDER (200 XP) pontszabály bekötése a find_or_create_provider_by_name() függvénybe. A provider státusza (pending/approved) és a létrehozó user azonosítója alapján történő megkülönböztetés: PENDING + nem saját provider → USE_UNVERIFIED_PROVIDER (200 XP), PENDING + saját provider → PROVIDER_CONFIRMATION (150 XP), APPROVED → PROVIDER_VERIFIED_USE (100 XP). Seed script frissítve. Mind a 3 teszt scenario sikeresen lefutott. ⏱️ *Az idő rögzítve.*
Author
Owner

#362 Kártya sikeresen lezárva

Implementált változtatások

1. backend/app/services/provider_service.pyfind_or_create_provider_by_name()

  • A függvény most már a provider added_by_user_id mezője alapján differenciálja a kiosztott pontszabályokat:
    • APPROVED provider → PROVIDER_VERIFIED_USE (100 XP)
    • PENDING + a használó user a provider létrehozójaPROVIDER_CONFIRMATION (150 XP)
    • PENDING + a használó user NEM a provider létrehozója → USE_UNVERIFIED_PROVIDER (200 XP)

2. backend/app/scripts/seed_provider_point_rules.py — Seed script

  • USE_UNVERIFIED_PROVIDER (200 XP) hozzáadva a SEED_RULES listához

Ellenőrzés

  • Sync engine — 1292 OK, 0 Fixed, 0 Extra
  • USE_UNVERIFIED_PROVIDER (200 XP, active) létezik az adatbázisban (id=4)
  • Teszt script — mind a 3 scenario sikeresen lefutott (PROVIDER_DISCOVERY, PROVIDER_CONFIRMATION, USE_UNVERIFIED_PROVIDER)
  • Gitea #362 lezárva, időmérő leállítva
  • .roo/history.md frissítve
## ✅ #362 Kártya sikeresen lezárva ### Implementált változtatások **1. [`backend/app/services/provider_service.py`](backend/app/services/provider_service.py:202-215) — `find_or_create_provider_by_name()`** - A függvény most már a provider `added_by_user_id` mezője alapján differenciálja a kiosztott pontszabályokat: - **APPROVED** provider → `PROVIDER_VERIFIED_USE` (100 XP) - **PENDING** + a használó user a provider **létrehozója** → `PROVIDER_CONFIRMATION` (150 XP) - **PENDING** + a használó user **NEM** a provider létrehozója → `USE_UNVERIFIED_PROVIDER` (200 XP) **2. [`backend/app/scripts/seed_provider_point_rules.py`](backend/app/scripts/seed_provider_point_rules.py) — Seed script** - `USE_UNVERIFIED_PROVIDER` (200 XP) hozzáadva a SEED_RULES listához ### Ellenőrzés - ✅ Sync engine — 1292 OK, 0 Fixed, 0 Extra - ✅ `USE_UNVERIFIED_PROVIDER` (200 XP, active) létezik az adatbázisban (id=4) - ✅ Teszt script — mind a 3 scenario sikeresen lefutott (PROVIDER_DISCOVERY, PROVIDER_CONFIRMATION, USE_UNVERIFIED_PROVIDER) - ✅ Gitea #362 lezárva, időmérő leállítva - ✅ `.roo/history.md` frissítve
Sign in to join this conversation.