diff --git a/engine/config/config.go b/engine/config/config.go index 03802f0..b7b3aea 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 146e86a..bfb7e93 100644 --- a/engine/db/db.go +++ b/engine/db/db.go @@ -50,6 +50,25 @@ func Connect(connectURL string) { } 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)