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) } }