finals generation added
This commit is contained in:
88
internal/view/seasonsview/playoff_helpers.go
Normal file
88
internal/view/seasonsview/playoff_helpers.go
Normal file
@@ -0,0 +1,88 @@
|
||||
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)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user