5.1 KiB
5.1 KiB
10. Billing, Credits, Subscriptions és MLM Referral System
Áttekintés
A Masterbook 2.0 "Triple Wallet" rendszerének kiterjesztése MLM (Multi-Level Marketing) referenciális jutalékokkal és P2P Gamification XP pontokkal. A rendszer lehetővé teszi a felhasználók számára, hogy meghívásos hálózatot építsenek, és jutalékot kapjanak a meghívottak előfizetési befizetéseiből.
MLM Paraméterek (SSoT)
A system_parameters táblában tárolt globális beállítások:
| Kulcs | Érték | Leírás |
|---|---|---|
mlm_level1_percent |
10 | L1 (közvetlen meghívó) jutalék százalék |
mlm_level2_percent |
5 | L2 (második szint) jutalék százalék |
mlm_level3_percent |
3 | L3 (harmadik szint) jutalék százalék |
gamification_p2p_invite_xp |
50 | XP pontok a meghívónak sikeres KYC után |
Adatmodell
User Modell kiterjesztések
referral_code(String, unique): 8 karakteres egyedi kód (pl. "ABC123DE")referred_by_id(Integer, ForeignKey): A meghívó User ID-ja (L1)
UserLiteRegister séma
class UserLiteRegister(BaseModel):
# ... meglévő mezők
referred_by_code: Optional[str] = None # Meghívó referral kódja
Regisztrációs folyamat
1. Lite Regisztráció (register_lite)
- Ha a
referred_by_codemeg van adva, a rendszer felkutatja a hozzá tartozó Usert - Az új User
referred_by_idmezőjét a megtalált ID-ra állítja - Generál egy egyedi
referral_code-ot az új User számára - Mentés az adatbázisba
2. KYC Befejezése (complete_kyc)
- Sikeres KYC után a User kap
gamification_kyc_bonusXP-t - Ha a Usernek van
referred_by_id-ja, a meghívó (L1) kapgamification_p2p_invite_xpXP-t ("P2P_REFERRAL_SUCCESS")
MLM Hálózat API
Végpont: GET /me/network
Visszaadja a felhasználó MLM hálózatát 3 szinten:
Válasz struktúra
{
"level1": [
{
"email": "user1@example.com",
"referral_code": "ABC123DE",
"folder_slug": "user1-slug",
"joined_at": "2026-04-01T10:30:00Z"
}
],
"level2": [
{
"referral_code": "DEF456GH",
"joined_at": "2026-04-01T11:30:00Z"
}
],
"level3": [
{
"referral_code": "GHI789JK",
"joined_at": "2026-04-01T12:30:00Z"
}
]
}
Adatvédelmi szabályok
- L1: Teljes információk (email, kód, slug) - közvetlen meghívottak
- L2/L3: Csak referral kód és csatlakozás dátuma - személyes adatok védelme érdekében
CREDIT Wallet Payout Engine
Fizetési esemény feldolgozása
Amikor egy User fizetést hajt végre (pl. előfizetés, szolgáltatás vásárlás):
- Lánc felépítése: A fizető User
referred_by_idmentén max 3 szint mélységig - Jutalék számítás:
- L1:
fizetés_összege × mlm_level1_percent / 100 - L2:
fizetés_összege × mlm_level2_percent / 100 - L3:
fizetés_összege × mlm_level3_percent / 100
- L1:
- CREDIT Wallet jóváírás:
- Tranzakció típus:
MLM_CREDIT - Wallet típus:
CREDIT - Ledger bejegyzés a
finance.ledgertáblában
- Tranzakció típus:
Példa: 10,000 HUF fizetés
- L1 (10%): 1,000 HUF → CREDIT Wallet
- L2 (5%): 500 HUF → CREDIT Wallet
- L3 (3%): 300 HUF → CREDIT Wallet
Admin Kontroll
Paraméterek módosítása
Az Admin felületen keresztül módosíthatók a százalékok és XP értékek:
/admin/system-parametersvégpont- Dinamikus frissítés - nincs újraindítás szükséges
Naplózás
- Minden MLM tranzakció naplózva a
finance.ledgertáblában - Gamification XP tranzakciók naplózva a
gamification.point_transactionstáblában - Audit trail a
audit.security_eventstáblában
Tesztelés
E2E Teszt Script
/app/app/scripts/test_mlm_payout_simple.py:
- MLM paraméterek ellenőrzése
- Teszt userek létrehozása (L1 → L2 → L3 → L4 fizető)
- Szimulált fizetés (10,000 HUF)
- Jutalékok számításának ellenőrzése
- CREDIT Wallet egyenlegek validálása
Futtatás
docker compose exec sf_api python3 /app/app/scripts/test_mlm_payout_simple.py
Integráció a meglévő rendszerrel
Billing Engine
A meglévő billing_engine.py kiterjesztése MLM payout logikával:
- Payment Success esemény → MLM payout trigger
- Async feldolgozás háttérben
Gamification Service
P2P_REFERRAL_SUCCESSXP jóváírás- Social Point (XP) növelése a meghívónak
Frontend
- Referral kód megjelenítése a profilban
- MLM hálózat megtekintése (
/me/network) - CREDIT Wallet egyenleg mutatása
Biztonsági megfontolások
- Lánc korlát: Maximum 3 szint (L1, L2, L3)
- Ciklus védelem: Ellenőrzés, hogy a lánc ne tartalmazza a fizetőt
- Dupla jutalék védelem: Egy fizetésből csak egyszer kaphat jutalékot egy User
- Adatvédelem: L2/L3 szinteken csak anonymizált adatok
Jövőbeli fejlesztések
- Dynamic MLM Levels: Admin által konfigurálható szintek száma
- Tiered Percentages: Szinttől függő változó százalékok
- Performance Analytics: MLM hálózat teljesítmény metrikák
- Automated Payout Reports: Havi/havi jutalék kimutatások