diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-03-20 12:17:29 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-03-20 12:17:29 +0900 |
| commit | 1555842ff38944eecd9a7c0a948157648d2411ff (patch) | |
| tree | 6650fcba29bbfea7ee7ed150dd96e20c96351edd | |
| parent | b7e43db87b134b19707b70e94b13a72b430c9825 (diff) | |
| download | phperkaigi-2026-albatross-1555842ff38944eecd9a7c0a948157648d2411ff.tar.gz phperkaigi-2026-albatross-1555842ff38944eecd9a7c0a948157648d2411ff.tar.zst phperkaigi-2026-albatross-1555842ff38944eecd9a7c0a948157648d2411ff.zip | |
fix(tournament): restrict BYE auto-win to round 0 only
In later rounds, a nil player means the opponent is TBD (e.g., waiting
for a semifinal winner), not a BYE. Previously these were incorrectly
marked as BYE wins.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
| -rw-r--r-- | backend/tournament/service.go | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/backend/tournament/service.go b/backend/tournament/service.go index 938b430..21b3b82 100644 --- a/backend/tournament/service.go +++ b/backend/tournament/service.go @@ -228,12 +228,12 @@ func (s *Service) GetTournament(ctx context.Context, tournamentID int) (Bracket, } } - // Check for bye - if mr.player1 == nil && mr.player2 != nil { + // Check for bye (only in round 0; in later rounds, nil player means opponent TBD) + if round == 0 && mr.player1 == nil && mr.player2 != nil { mr.isBye = true uid := mr.player2.UserID mr.winnerUID = &uid - } else if mr.player1 != nil && mr.player2 == nil { + } else if round == 0 && mr.player1 != nil && mr.player2 == nil { mr.isBye = true uid := mr.player1.UserID mr.winnerUID = &uid |
