Commit Graph
6 Commits
Author SHA1 Message Date
SowinskiBraeden fbf56e1271 Prepare redesign for public deployment 2026-06-28 17:07:29 -07:00
SowinskiBraeden 79c638b8fa remove legacy systems 2026-06-28 10:51:59 -07:00
SowinskiBraeden ffc33c967a update email verification process 2026-06-27 12:35:00 -07:00
SowinskiBraeden 882726e5e9 fix: correct migration chain for league settings columns (2.5.1)
Migration 0003_league_settings was chained to 0002 but the DB was already
at 0003_site_admin (an applied migration with no version file). Added a stub
for 0003_site_admin to satisfy the chain and updated the down_revision on
0003_league_settings accordingly. Columns eligible_min_sessions and
break_even_cents now apply cleanly on top of the existing schema.
2026-06-26 21:43:32 -07:00
SowinskiBraeden 2fc7bab183 feat: per-league eligible sessions and break-even threshold settings (2.5.0)
Add two configurable leaderboard settings per league, replacing the global
constants with per-row DB columns:

- eligible_min_sessions (default 3): minimum sessions before a player ranks
  on the main leaderboard rather than showing as provisional
- break_even_cents (default 100 = $1.00): sessions within ±this of $0 net
  are classified as break-even rather than a win or loss

Changes:
- Migration 0003 adds both columns with server defaults for existing leagues
- League DB model gains eligible_min_sessions and break_even_cents columns
- net_result_bucket() and build_leaderboard() accept optional tolerance param
- summarize_player_runs() passes tolerance to net_result_bucket for streaks
- League leaderboard route reads values from the league row instead of config
- League settings form exposes both fields with validation (1-100 sessions,
  $0.00-$100.00 threshold)
2026-06-26 21:37:47 -07:00
SowinskiBraeden 2eadc722e9 2.0+ public access setup 2026-06-23 21:38:33 -07:00