diff --git a/engine/config/config.go b/engine/config/config.go index c505305..07bab1c 100644 --- a/engine/config/config.go +++ b/engine/config/config.go @@ -116,6 +116,8 @@ type MiscConfig struct { StartPaused bool + TeamCount int // Auto-generate teams (team01, team02, ...) if > 0 + // Round settings Delay int Jitter int diff --git a/engine/db/db.go b/engine/db/db.go index a8af334..8e764a5 100644 --- a/engine/db/db.go +++ b/engine/db/db.go @@ -89,6 +89,25 @@ func createCumulativeScoresView() { } func AddTeams(conf *config.ConfigSettings) error { + // Auto-generate teams if TeamCount is specified + if conf.MiscSettings.TeamCount > 0 { + for i := 1; i <= conf.MiscSettings.TeamCount; i++ { + teamName := fmt.Sprintf("team%02d", i) + t := TeamSchema{Name: teamName} + result := db.Where(&t).First(&t) + if result.Error != nil { + if errors.Is(result.Error, gorm.ErrRecordNotFound) { + if _, err := CreateTeam(t); err != nil { + return err + } + } else { + return result.Error + } + } + } + } + + // Also add explicitly defined teams for _, team := range conf.Team { t := TeamSchema{Name: team.Name} result := db.Where(&t).First(&t)