Referral- & Bonus-System (Entwurf)
Konfig: backend/config/referralConfig.js (per ENV überschreibbar).
Kernregeln (konfigurierbar):
- FreePlan: 7 Tage Startlaufzeit.
- Earlybird: bis
EARLYBIRD_DEADLINEdürfen alle empfehlen; danach nur zahlende Nutzer (requirePaidPlanAfterEarlybird). - Qualifizierter NeuUser: <30 Tage alt, verifizierte Mail (optional), ≥10 Sessions/Monat, andere IP als Referrer.
- „Nutzt App“: ≥1 Session/Woche.
- Belohnung: +2 Monate pro qualifizierter Empfehlung; 20 % der Nutzungstage über 90 Tage für andere Apps; Cap 12 Monate/Jahr (außer bei High Usage ≥3 aktive Tage/Woche).
- Missbrauch: max. 3 Referrals/IP/24h.
Backend-Bausteine:
- Models:
ReferralEvent,ReferralReward, User-Felder (referralCode,referredBy,plan,referralStats,earlybird). - Services:
services/referralService.js(Code-Generierung, Eligibility, Rewarding). - Routes:
/api/v1/referrals(geschützt):GET /link→ Ref-Code/Link, wenn berechtigt.GET /stats→ letzte Events/Rewards.POST /session→ Session-Event loggen (referee = aktueller User, referrer automatisch ausreferredBy).POST /grant→ manuelles Gewähren von Monaten (mit Cap-Check).- Optional (ENV
ENABLE_REFERRAL_PROCESSOR=true):POST /process→ manuelles Ausführen der Auswertung.
- Signup:
POST /api/v1/auth/registerakzeptiertreferralCode; setztreferredByund loggt Signup-Event.
Offen / TODO für spätere Schritte:
- Aggregation-Jobs (monatlich/90-Tage) zur automatischen Qualifikation + Rewarding. Service vorhanden (
services/referralProcessor.js), Cron/Job-Anbindung fehlt noch. - Frontend-Hooks: Ref-Link Anzeige, Session-Pings, Reward-UI.
- Payment-Signal-Integration, wenn verfügbar (Stripe etc.).
Jobs ausführen:
- Manuell:
node backend/scripts/runReferralProcessor.js(nutzt.envoderMONGO_URI). - Server-seitig:
ENABLE_REFERRAL_CRON=truesetzt tägliche Ausführung (02:15) inbackend/server.js.