feat: season framework with 2-week auto-rotation

Create seasons engine with getCurrentSeason(), getSeasonLeaderboard(),
and resetSeasonElo(). 20 Bitcoin-themed season names. Add currentSeason
column to fights table, set on fight creation. Elo soft-reset formula:
finalElo * 0.6 + 1200 * 0.4.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Dorian
2026-03-08 20:13:44 +00:00
co-authored by Claude Opus 4.6
parent d22d739666
commit ecac2bf246
5 changed files with 173 additions and 0 deletions
+2
View File
@@ -104,6 +104,8 @@ export function runMigrations() {
"ALTER TABLE bots ADD COLUMN has_wallet INTEGER NOT NULL DEFAULT 0",
// Zap tracking
"ALTER TABLE bots ADD COLUMN zaps_received INTEGER NOT NULL DEFAULT 0",
// Seasons
"ALTER TABLE fights ADD COLUMN current_season TEXT",
// Classic bots
"ALTER TABLE bots ADD COLUMN bot_type TEXT NOT NULL DEFAULT 'regular'",
]