Feature: Referral-System — User wirbt User
- DB: referral_code (8-stellig, eindeutig) + referred_by zu users Bestehende User erhalten automatisch einen Code - GET /api/auth/referral: Code, Link und Anzahl geworbener User - POST /api/auth/register: ref_code Parameter für Zuordnung - Settings: 'App empfehlen'-Karte mit Link, Teilen-Button und Botschafter-Badges (Botschafter ab 1, Super ab 5, Top ab 10 Einladungen) - app.js: ?ref=CODE aus URL in sessionStorage speichern - APP_VER 222, SW by-v244
This commit is contained in:
parent
82d9e26823
commit
6d757b86c2
6 changed files with 121 additions and 7 deletions
|
|
@ -834,3 +834,17 @@ def _migrate(conn_factory):
|
|||
CREATE INDEX IF NOT EXISTS idx_walk_inv_user ON walk_invitations(user_id, status);
|
||||
""")
|
||||
logger.info("Migration: walk_invitations Tabelle bereit.")
|
||||
|
||||
# Referral-Code für jeden User (einmalig generiert)
|
||||
try:
|
||||
conn.execute("ALTER TABLE users ADD COLUMN referral_code TEXT UNIQUE")
|
||||
conn.execute("ALTER TABLE users ADD COLUMN referred_by INTEGER REFERENCES users(id)")
|
||||
# Bestehende User bekommen einen Code
|
||||
import secrets, string
|
||||
rows = conn.execute("SELECT id FROM users WHERE referral_code IS NULL").fetchall()
|
||||
for r in rows:
|
||||
code = ''.join(secrets.choice(string.ascii_uppercase + string.digits) for _ in range(8))
|
||||
conn.execute("UPDATE users SET referral_code=? WHERE id=?", (code, r['id']))
|
||||
logger.info("Migration: referral_code + referred_by zu users hinzugefügt.")
|
||||
except Exception:
|
||||
pass
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue