89 lines
2.0 KiB
Go
89 lines
2.0 KiB
Go
package seasonsview
|
|
|
|
import "git.haelnorr.com/h/oslstats/internal/db"
|
|
|
|
// groupSeriesByRound groups playoff series by their round field
|
|
func groupSeriesByRound(series []*db.PlayoffSeries) map[string][]*db.PlayoffSeries {
|
|
grouped := make(map[string][]*db.PlayoffSeries)
|
|
for _, s := range series {
|
|
grouped[s.Round] = append(grouped[s.Round], s)
|
|
}
|
|
return grouped
|
|
}
|
|
|
|
// getRoundOrder returns the display order of rounds for a given format
|
|
func getRoundOrder(format db.PlayoffFormat) []string {
|
|
switch format {
|
|
case db.PlayoffFormat5to6:
|
|
return []string{
|
|
"upper_bracket",
|
|
"lower_bracket",
|
|
"upper_final",
|
|
"lower_final",
|
|
"grand_final",
|
|
}
|
|
case db.PlayoffFormat7to9:
|
|
return []string{
|
|
"quarter_final",
|
|
"semi_final",
|
|
"third_place",
|
|
"grand_final",
|
|
}
|
|
case db.PlayoffFormat10to15:
|
|
return []string{
|
|
"qualifying_final",
|
|
"elimination_final",
|
|
"semi_final",
|
|
"preliminary_final",
|
|
"third_place",
|
|
"grand_final",
|
|
}
|
|
default:
|
|
return nil
|
|
}
|
|
}
|
|
|
|
// formatRoundName converts a round slug to a human-readable name
|
|
func formatRoundName(round string) string {
|
|
switch round {
|
|
case "upper_bracket":
|
|
return "Upper Bracket"
|
|
case "lower_bracket":
|
|
return "Lower Bracket"
|
|
case "upper_final":
|
|
return "Upper Final"
|
|
case "lower_final":
|
|
return "Lower Final"
|
|
case "quarter_final":
|
|
return "Quarter Finals"
|
|
case "semi_final":
|
|
return "Semi Finals"
|
|
case "qualifying_final":
|
|
return "Qualifying Finals"
|
|
case "elimination_final":
|
|
return "Elimination Finals"
|
|
case "preliminary_final":
|
|
return "Preliminary Finals"
|
|
case "third_place":
|
|
return "Third Place Playoff"
|
|
case "grand_final":
|
|
return "Grand Final"
|
|
default:
|
|
return round
|
|
}
|
|
}
|
|
|
|
// formatLabel returns a human-readable format description
|
|
func formatLabel(format db.PlayoffFormat) string {
|
|
switch format {
|
|
case db.PlayoffFormat5to6:
|
|
return "Top 5 qualify"
|
|
case db.PlayoffFormat7to9:
|
|
return "Top 6 qualify"
|
|
case db.PlayoffFormat10to15:
|
|
return "Top 8 qualify"
|
|
default:
|
|
return string(format)
|
|
}
|
|
}
|