Feature: 100 Gründer-Challenge — Leaderboard, Ranking, founder_number
- users.founder_number: sequentielle Nummer #1-#100 (bei Registrierung mit Code oder Admin-Grant) - Globaler Cap: max. 100 Gründer über alle Partner-Codes zusammen - GET /api/partner/founders/stats: öffentlich — Slots, Partner-Ranking nach uses, Gründer-Galerie - Öffentliche Seite /gruender: Fortschrittsbalken, Partner-Challenge-Leaderboard (🥇🥈🥉), Gründer-Grid - Forum: "Gründer #42"-Badge (lila) neben Autorenname bei Threads + Antworten - Settings: Badge zeigt "Gründer #N" statt nur "Gründer", klickbar zur /gruender-Seite - Sidebar: "🏆 100 Gründer"-Link im Footer - Admin-Grant: Vergabe von founder_number beim manuellen is_founder=1-Setzen - SW by-v516, APP_VER 493
This commit is contained in:
parent
e57c6db013
commit
ab41af470d
10 changed files with 243 additions and 18 deletions
|
|
@ -93,7 +93,13 @@ async def register(data: RegisterRequest, response: Response, request: Request):
|
|||
)
|
||||
updates = {"referred_by": -partner["id"]}
|
||||
if partner["grants_founder"]:
|
||||
updates["is_founder"] = 1
|
||||
total_founders = conn.execute(
|
||||
"SELECT COUNT(*) FROM users WHERE is_founder=1"
|
||||
).fetchone()[0]
|
||||
if total_founders < 100:
|
||||
founder_num = total_founders + 1
|
||||
updates["is_founder"] = 1
|
||||
updates["founder_number"] = founder_num
|
||||
set_clause = ", ".join(f"{k}=?" for k in updates)
|
||||
conn.execute(
|
||||
f"UPDATE users SET {set_clause} WHERE id=?",
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue