package logic // Team represents a football team. type Team struct { Name string `json:"name"` Group string `json:"group"` // e.g., "A", "B", ..., "L" } // Match represents a group stage match between two teams. type Match struct { TeamA string `json:"team_a"` TeamB string `json:"team_b"` IsCompleted bool `json:"is_completed"` ScoreA int `json:"score_a"` ScoreB int `json:"score_b"` } // ScoreOutcome represents a possible match score and its probability. type ScoreOutcome struct { ScoreA int `json:"score_a"` ScoreB int `json:"score_b"` Probability float64 `json:"probability"` } // TeamStats holds the metrics used to rank teams within a group or across third-place teams. type TeamStats struct { TeamName string Points int GoalDifference int GoalsScored int // Fields used for tie-breaking comparison within the group H2HPoints int H2HGD int H2HGS int } // TeamProbability represents the calculated qualification probabilities for a single team. type TeamProbability struct { TeamName string `json:"team_name"` Group string `json:"group"` DirectQualProb float64 `json:"direct_qual_prob"` ThirdQualProb float64 `json:"third_qual_prob"` TotalQualProb float64 `json:"total_qual_prob"` }