diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-02-18 22:38:15 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-02-18 22:38:15 +0900 |
| commit | 9f9efc2bc07810d2e06b37bad94e5922681eadef (patch) | |
| tree | 79bcce2bf065a7ea282aa7855822c3bdee92ee7c /typespec/api-server/models.tsp | |
| parent | c095200dc79f24c0cd17a2e3ba15c85a2971ea9a (diff) | |
| download | phperkaigi-2026-albatross-9f9efc2bc07810d2e06b37bad94e5922681eadef.tar.gz phperkaigi-2026-albatross-9f9efc2bc07810d2e06b37bad94e5922681eadef.tar.zst phperkaigi-2026-albatross-9f9efc2bc07810d2e06b37bad94e5922681eadef.zip | |
feat: refactor tournament to generic DB-backed N-person bracket
Replace hardcoded 6-person tournament with a generic single-elimination
bracket system backed by new DB tables (tournaments, tournament_entries,
tournament_matches). Includes admin CRUD, standard seeding algorithm,
bye handling, and a CSS Grid bracket renderer on the frontend.
Add comprehensive tests for backend API/admin handlers, seeding logic,
and frontend bracket component.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Diffstat (limited to 'typespec/api-server/models.tsp')
| -rw-r--r-- | typespec/api-server/models.tsp | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/typespec/api-server/models.tsp b/typespec/api-server/models.tsp index 47519be..6605767 100644 --- a/typespec/api-server/models.tsp +++ b/typespec/api-server/models.tsp @@ -106,14 +106,28 @@ model RankingEntry { } model Tournament { + tournament_id: integer; + display_name: string; + bracket_size: integer; + num_rounds: integer; + entries: TournamentEntry[]; matches: TournamentMatch[]; } +model TournamentEntry { + user: User; + seed: integer; +} + model TournamentMatch { - game_id: integer; + tournament_match_id: integer; + round: integer; + position: integer; + game_id?: integer; player1?: User; player2?: User; player1_score?: integer; player2_score?: integer; - winner?: integer; + winner_user_id?: integer; + is_bye: boolean; } |
