From 6232e2f3094d53151a17db9c36f35e192d9d304d Mon Sep 17 00:00:00 2001 From: nsfisis Date: Sat, 21 Feb 2026 10:59:29 +0900 Subject: refactor: rename stuttering exported types in game and tournament packages MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fix golangci-lint revive warnings by removing package name prefixes: - game.GameHubInterface → game.HubInterface - game.GameDetail → game.Detail - tournament.TournamentEntry → tournament.Entry - tournament.TournamentMatch → tournament.Match - tournament.TournamentBracket → tournament.Bracket - tournament.TournamentEditData → tournament.EditData Also fix gofmt alignment in api/convert.go and gosimple S1016 in game/service.go. Co-Authored-By: Claude Opus 4.6 --- backend/admin/handler_test.go | 2 +- backend/api/convert.go | 10 ++++---- backend/api/handler_test.go | 2 +- backend/game/service.go | 35 +++++++++++++-------------- backend/tournament/service.go | 48 +++++++++++++++++++------------------- backend/tournament/service_test.go | 2 +- 6 files changed, 48 insertions(+), 51 deletions(-) diff --git a/backend/admin/handler_test.go b/backend/admin/handler_test.go index ac9ccc6..994c584 100644 --- a/backend/admin/handler_test.go +++ b/backend/admin/handler_test.go @@ -358,7 +358,7 @@ func (m *mockQuerier) SyncGameStateBestScoreSubmission(ctx context.Context, arg return nil } -// mockGameHub implements game.GameHubInterface for testing. +// mockGameHub implements game.HubInterface for testing. type mockGameHub struct { enqueueTestTasksFunc func(ctx context.Context, submissionID, gameID, userID int, language, code string) error } diff --git a/backend/api/convert.go b/backend/api/convert.go index f05f3bf..dec734a 100644 --- a/backend/api/convert.go +++ b/backend/api/convert.go @@ -18,7 +18,7 @@ func toAPIUser(p game.Player) User { } } -func toAPIGame(g game.GameDetail) Game { +func toAPIGame(g game.Detail) Game { var startedAt *int64 if g.StartedAt != nil { ts := g.StartedAt.Unix() @@ -75,10 +75,10 @@ func toAPIRankingEntry(r game.RankingEntry) RankingEntry { code = nullable.NewNullNullable[string]() } return RankingEntry{ - Player: toAPIUser(r.Player), - Score: r.Score, + Player: toAPIUser(r.Player), + Score: r.Score, SubmittedAt: r.SubmittedAt, - Code: code, + Code: code, } } @@ -112,7 +112,7 @@ func toAPITournamentPlayerPtr(p *tournament.Player) *User { return &u } -func toAPITournament(t tournament.TournamentBracket) Tournament { +func toAPITournament(t tournament.Bracket) Tournament { entries := make([]TournamentEntry, len(t.Entries)) for i, e := range t.Entries { entries[i] = TournamentEntry{ diff --git a/backend/api/handler_test.go b/backend/api/handler_test.go index a4e08dc..2dcde29 100644 --- a/backend/api/handler_test.go +++ b/backend/api/handler_test.go @@ -132,7 +132,7 @@ func (m *mockTxManager) RunInTx(_ context.Context, fn func(q db.Querier) error) return fn(&mockQuerier{}) } -// mockGameHub implements game.GameHubInterface for testing. +// mockGameHub implements game.HubInterface for testing. type mockGameHub struct { calcCodeSizeResult int enqueueErr error diff --git a/backend/game/service.go b/backend/game/service.go index debc126..13900e1 100644 --- a/backend/game/service.go +++ b/backend/game/service.go @@ -11,7 +11,7 @@ import ( "albatross-2026-backend/db" ) -type GameHubInterface interface { +type HubInterface interface { CalcCodeSize(code string, language string) int EnqueueTestTasks(ctx context.Context, submissionID, gameID, userID int, language, code string) error } @@ -19,10 +19,10 @@ type GameHubInterface interface { type Service struct { q db.Querier txm db.TxManager - hub GameHubInterface + hub HubInterface } -func NewService(q db.Querier, txm db.TxManager, hub GameHubInterface) *Service { +func NewService(q db.Querier, txm db.TxManager, hub HubInterface) *Service { return &Service{q: q, txm: txm, hub: hub} } @@ -45,7 +45,7 @@ type ProblemDetail struct { SampleCode string } -type GameDetail struct { +type Detail struct { GameID int GameType string IsPublic bool @@ -108,13 +108,13 @@ func playerFromMainPlayerRow(row db.ListMainPlayersRow) Player { } } -func gameDetailFromPublicRow(row db.ListPublicGamesRow) GameDetail { +func gameDetailFromPublicRow(row db.ListPublicGamesRow) Detail { var startedAt *time.Time if row.StartedAt.Valid { t := row.StartedAt.Time startedAt = &t } - return GameDetail{ + return Detail{ GameID: int(row.GameID), GameType: row.GameType, IsPublic: row.IsPublic, @@ -131,13 +131,13 @@ func gameDetailFromPublicRow(row db.ListPublicGamesRow) GameDetail { } } -func gameDetailFromGetRow(row db.GetGameByIDRow) GameDetail { +func gameDetailFromGetRow(row db.GetGameByIDRow) Detail { var startedAt *time.Time if row.StartedAt.Valid { t := row.StartedAt.Time startedAt = &t } - return GameDetail{ + return Detail{ GameID: int(row.GameID), GameType: row.GameType, IsPublic: row.IsPublic, @@ -156,12 +156,12 @@ func gameDetailFromGetRow(row db.GetGameByIDRow) GameDetail { // Service methods -func (s *Service) ListPublicGames(ctx context.Context) ([]GameDetail, error) { +func (s *Service) ListPublicGames(ctx context.Context) ([]Detail, error) { gameRows, err := s.q.ListPublicGames(ctx) if err != nil { return nil, err } - games := make([]GameDetail, len(gameRows)) + games := make([]Detail, len(gameRows)) gameIDs := make([]int32, len(gameRows)) gameID2Index := make(map[int32]int, len(gameRows)) for i, row := range gameRows { @@ -180,21 +180,21 @@ func (s *Service) ListPublicGames(ctx context.Context) ([]GameDetail, error) { return games, nil } -func (s *Service) GetGameByID(ctx context.Context, gameID int, isAdmin bool) (GameDetail, error) { +func (s *Service) GetGameByID(ctx context.Context, gameID int, isAdmin bool) (Detail, error) { row, err := s.q.GetGameByID(ctx, int32(gameID)) if err != nil { if errors.Is(err, pgx.ErrNoRows) { - return GameDetail{}, ErrNotFound + return Detail{}, ErrNotFound } - return GameDetail{}, err + return Detail{}, err } if !row.IsPublic && !isAdmin { - return GameDetail{}, ErrNotFound + return Detail{}, ErrNotFound } game := gameDetailFromGetRow(row) mainPlayerRows, err := s.q.ListMainPlayers(ctx, []int32{int32(gameID)}) if err != nil { - return GameDetail{}, err + return Detail{}, err } for _, playerRow := range mainPlayerRows { game.MainPlayers = append(game.MainPlayers, playerFromMainPlayerRow(playerRow)) @@ -523,10 +523,7 @@ func (s *Service) FixSubmissionStatuses(ctx context.Context) error { return err } for _, r := range gameStates { - if err := s.q.SyncGameStateBestScoreSubmission(ctx, db.SyncGameStateBestScoreSubmissionParams{ - GameID: r.GameID, - UserID: r.UserID, - }); err != nil { + if err := s.q.SyncGameStateBestScoreSubmission(ctx, db.SyncGameStateBestScoreSubmissionParams(r)); err != nil { return err } } diff --git a/backend/tournament/service.go b/backend/tournament/service.go index 0737d69..938b430 100644 --- a/backend/tournament/service.go +++ b/backend/tournament/service.go @@ -47,12 +47,12 @@ type Player struct { Label *string } -type TournamentEntry struct { +type Entry struct { User Player Seed int } -type TournamentMatch struct { +type Match struct { TournamentMatchID int Round int Position int @@ -65,13 +65,13 @@ type TournamentMatch struct { IsBye bool } -type TournamentBracket struct { +type Bracket struct { TournamentID int DisplayName string BracketSize int NumRounds int - Entries []TournamentEntry - Matches []TournamentMatch + Entries []Entry + Matches []Match } // StandardBracketSeeds returns the seed assignments for each slot in a standard @@ -90,7 +90,7 @@ func StandardBracketSeeds(bracketSize int) []int { return seeds } -func findSeedByUserID(entries []TournamentEntry, userID int) int { +func findSeedByUserID(entries []Entry, userID int) int { for _, e := range entries { if e.User.UserID == userID { return e.Seed @@ -99,22 +99,22 @@ func findSeedByUserID(entries []TournamentEntry, userID int) int { return 0 } -func (s *Service) GetTournament(ctx context.Context, tournamentID int) (TournamentBracket, error) { +func (s *Service) GetTournament(ctx context.Context, tournamentID int) (Bracket, error) { t, err := s.q.GetTournamentByID(ctx, int32(tournamentID)) if err != nil { if errors.Is(err, pgx.ErrNoRows) { - return TournamentBracket{}, game.ErrNotFound + return Bracket{}, game.ErrNotFound } - return TournamentBracket{}, err + return Bracket{}, err } entryRows, err := s.q.ListTournamentEntries(ctx, int32(tournamentID)) if err != nil { - return TournamentBracket{}, err + return Bracket{}, err } seedToUser := make(map[int]Player) - entries := make([]TournamentEntry, len(entryRows)) + entries := make([]Entry, len(entryRows)) for i, e := range entryRows { u := Player{ UserID: int(e.UserID), @@ -125,7 +125,7 @@ func (s *Service) GetTournament(ctx context.Context, tournamentID int) (Tourname Label: e.Label, } seedToUser[int(e.Seed)] = u - entries[i] = TournamentEntry{ + entries[i] = Entry{ User: u, Seed: int(e.Seed), } @@ -133,7 +133,7 @@ func (s *Service) GetTournament(ctx context.Context, tournamentID int) (Tourname matchRows, err := s.q.ListTournamentMatches(ctx, int32(tournamentID)) if err != nil { - return TournamentBracket{}, err + return Bracket{}, err } bracketSize := int(t.BracketSize) @@ -278,7 +278,7 @@ func (s *Service) GetTournament(ctx context.Context, tournamentID int) (Tourname } // Build response matches - apiMatches := make([]TournamentMatch, 0, len(matchRows)) + apiMatches := make([]Match, 0, len(matchRows)) for round := 0; round < numRounds; round++ { numPositions := bracketSize / (1 << (round + 1)) for pos := 0; pos < numPositions; pos++ { @@ -295,7 +295,7 @@ func (s *Service) GetTournament(ctx context.Context, tournamentID int) (Tourname } } - apiMatches = append(apiMatches, TournamentMatch{ + apiMatches = append(apiMatches, Match{ TournamentMatchID: matchID, Round: round, Position: pos, @@ -310,7 +310,7 @@ func (s *Service) GetTournament(ctx context.Context, tournamentID int) (Tourname } } - return TournamentBracket{ + return Bracket{ TournamentID: int(t.TournamentID), DisplayName: t.DisplayName, BracketSize: bracketSize, @@ -426,26 +426,26 @@ func (s *Service) UpdateTournament(ctx context.Context, params UpdateTournamentP }) } -// TournamentEditData holds data needed for the tournament edit page. -type TournamentEditData struct { +// EditData holds data needed for the tournament edit page. +type EditData struct { Tournament db.Tournament SeedUserMap map[int]int Matches []db.TournamentMatch } // GetTournamentEditData retrieves the data needed for editing a tournament. -func (s *Service) GetTournamentEditData(ctx context.Context, tournamentID int) (TournamentEditData, error) { +func (s *Service) GetTournamentEditData(ctx context.Context, tournamentID int) (EditData, error) { t, err := s.q.GetTournamentByID(ctx, int32(tournamentID)) if err != nil { if errors.Is(err, pgx.ErrNoRows) { - return TournamentEditData{}, game.ErrNotFound + return EditData{}, game.ErrNotFound } - return TournamentEditData{}, err + return EditData{}, err } entryRows, err := s.q.ListTournamentEntries(ctx, int32(tournamentID)) if err != nil { - return TournamentEditData{}, err + return EditData{}, err } seedUserMap := make(map[int]int) for _, e := range entryRows { @@ -454,10 +454,10 @@ func (s *Service) GetTournamentEditData(ctx context.Context, tournamentID int) ( matchRows, err := s.q.ListTournamentMatches(ctx, int32(tournamentID)) if err != nil { - return TournamentEditData{}, err + return EditData{}, err } - return TournamentEditData{ + return EditData{ Tournament: t, SeedUserMap: seedUserMap, Matches: matchRows, diff --git a/backend/tournament/service_test.go b/backend/tournament/service_test.go index c43fb4e..a07b595 100644 --- a/backend/tournament/service_test.go +++ b/backend/tournament/service_test.go @@ -79,7 +79,7 @@ func TestStandardBracketSeeds_AllSeedsPresent(t *testing.T) { } func TestFindSeedByUserID(t *testing.T) { - entries := []TournamentEntry{ + entries := []Entry{ {User: Player{UserID: 10}, Seed: 1}, {User: Player{UserID: 20}, Seed: 2}, {User: Player{UserID: 30}, Seed: 3}, -- cgit v1.3.1