david
84afa88ca4
feat: add schedule API endpoints
...
GET returns rounds with matchups for a tournament.
POST generates a round-robin schedule from registered teams.
DELETE removes all rounds and matchups.
All endpoints enforce tournament admin permissions via canManageTournament.
2026-04-02 00:59:32 -07:00
david
59009f0bf7
feat: add view match link to admin matches page
2026-03-31 18:52:06 -07:00
david
f9d6321721
fix: use ELO change instead of win rate for best partner calculation
2026-03-31 18:39:27 -07:00
david
48a96ce65f
fix: improve availablePlayers query to handle undefined playerId
2026-03-31 16:44:48 -07:00
david
1f9f708f19
fix: handle empty playerId string in user edit API
2026-03-31 16:44:26 -07:00
david
a22c801f0c
feat: add match management admin panel with delete functionality
2026-03-31 16:16:13 -07:00
david
222fb0bdc3
feat: add delete player functionality to admin panel
2026-03-31 16:16:10 -07:00
david
81f023317e
fix: update session handling to refresh admin navigation after login
2026-03-31 16:16:06 -07:00
david
7c2c198167
feat: add matches list page at /matches route
2026-03-31 13:19:03 -07:00
david
0ae4a171fd
feat: add git commit hash to footer for version tracking
2026-03-31 11:44:13 -07:00
david
f66242d569
fix: correct match diagram player positions to show teammates opposite each other
2026-03-31 11:36:24 -07:00
david
2062188cb3
fix: update API routes to handle Next.js 15+ params as Promise
2026-03-31 10:44:39 -07:00
david
a960bb8a41
feat: add user management link to admin dashboard
2026-03-31 10:26:37 -07:00
david
f26cbf2f65
feat: add delete user functionality for site admins
2026-03-31 10:26:11 -07:00
david
2ed86dafe9
feat: add user management panel for superusers
2026-03-31 10:24:35 -07:00
david
0431a7fcf3
fix: add dynamic config to prevent static generation
2026-03-31 10:14:26 -07:00
david
1e5f900821
fix: add dynamic config to pages and update Dockerfile for PostgreSQL
2026-03-31 04:17:16 -07:00
david
f49d0f02d9
fix: move Lynn, Emily, and Amelia 10px further outward
2026-03-31 03:52:48 -07:00
david
6c29eeceaf
fix: fine-tune player positions in match diagram
2026-03-31 03:51:29 -07:00
david
2fa606d0e0
fix: increase player name padding in match diagram
2026-03-31 03:49:15 -07:00
david
63956e8087
fix: increase match diagram size and improve player visibility
2026-03-31 03:47:22 -07:00
david
ce1b01b44d
fix: correct match diagram player positions
2026-03-31 03:44:23 -07:00
david
fa851a4143
feat: display all rating systems on player profile page
2026-03-31 03:38:55 -07:00
david
e19c292cfb
feat: add tabbed rankings page for Elo, OpenSkill, and Glicko2
2026-03-31 03:38:47 -07:00
david
ef5d8404c2
feat: update recalculate-elo API to support multiple rating systems
2026-03-31 03:38:39 -07:00
david
e3f9935d68
feat: auto-create tournament when uploading matches without selection
2026-03-31 03:38:34 -07:00
david
af20a5d9ec
feat: update match API to calculate all rating systems
2026-03-31 03:38:19 -07:00
david
141ca7c93e
feat: add manual match entry form and match detail pages with diagram
2026-03-31 02:01:35 -07:00
david
e0d159ad8d
fix: remove logging from prisma client and fix users API routes
2026-03-31 01:15:57 -07:00
david
b8d90897a4
fix: await params in Next.js 16 routes and pages for TypeScript compatibility
2026-03-31 00:50:56 -07:00
david
a1fb0e25a7
fix: validate ID parsing in API routes and player pages for Prisma v7
2026-03-31 00:21:02 -07:00
david
0f66815ed4
fix: validate tournament ID parsing for Prisma v7 strict type checking
2026-03-31 00:16:22 -07:00
david
b0aaffbecf
chore: fix linting errors in tests and api routes
2026-03-30 22:58:33 -07:00
david
6f83080fca
feat: update POST /api/matches to handle eventId and tournament match stats
2026-03-30 22:58:25 -07:00
david
9c8f1bc57d
feat: update MatchEditor to use tournament-specific scoring rules
2026-03-30 22:58:17 -07:00
david
d6a53f8912
feat: add targetScore and allowTies fields to tournament API routes
2026-03-30 22:58:01 -07:00
david
5d1755f082
chore: add variant scoring fields, fix tie handling, and fix test files for normalizedName
2026-03-30 22:48:31 -07:00
david
fb04a6c3f1
fix: delete elo snapshots before deleting duplicate players during merge
2026-03-30 22:20:18 -07:00
david
a7d94e9fee
fix: add tournament update API endpoint and consolidate delete into main tournaments API
2026-03-30 22:17:44 -07:00
david
fa7a422ce3
feat: add player merge functionality with automatic Elo recalculation
2026-03-30 22:04:31 -07:00
david
db782ff504
feat: add player name editing functionality in admin UI and fix site_admin access to admin dashboard
2026-03-30 21:58:30 -07:00
david
9201b2c437
feat: add admin player management page
2026-03-30 21:51:26 -07:00
david
07804b5f8f
feat: add site_admin role, casual match support, and tournament deletion
2026-03-30 21:49:43 -07:00
david
0cf346f16a
feat: add user profile API endpoint
2026-03-30 21:32:00 -07:00
david
e061e1e9f7
feat: add tournaments participated and recent matches to player profile
2026-03-30 21:31:06 -07:00
david
78b4c84eb8
feat: implement player deduplication in match upload
2026-03-30 21:30:58 -07:00
david
6feada4fd8
refactor: use permission system instead of direct session checks in admin pages
2026-03-30 21:30:50 -07:00
david
5748e416be
fix: remove duplicate tournament variable definitions in admin pages
2026-03-30 21:30:41 -07:00
david
3a78f354ad
feat: add recalculateAllElo function for idempotent ELO recalculation
2026-03-30 21:28:09 -07:00
david
4cd744f10c
fix: resolve Prisma Event type conflict with global DOM Event
...
- Renamed Event import to EventModel to avoid conflict with global DOM Event interface
- Updated type assertion to use EventModel[]
2026-03-29 21:26:16 -07:00