from fastapi import APIRouter, HTTPException from services import ( get_player_stats, get_team_stats, get_match_history, get_teams, get_players, get_seasons, predict_score, predict_team_outcome, get_team_trends, # New function for team trends get_player_trends, # New function for player trends ) router = APIRouter() @router.get("/player-stats/") async def player_statistics(player_name: str, season: str = None, role: str = "Batting"): # Validate role parameter if role not in ["Batting", "Bowling"]: raise HTTPException(status_code=400, detail="Role must be 'Batting' or 'Bowling'") return get_player_stats(player_name, season, role) @router.get("/team-stats/") async def team_statistics(team_name: str, season: str = None): return get_team_stats(team_name, season) @router.get("/match-history/") async def match_history(team1: str, team2: str, season: str = None): # Update get_match_history to handle two teams return get_match_history(team1, team2, season) @router.get("/teams") async def teams(): return get_teams() @router.get("/players") async def players(): return get_players() @router.get("/seasons") async def seasons(): return get_seasons() @router.get("/predict-score/") async def predict_player_score_endpoint(player_name: str, opposition_team: str): return predict_score(player_name, opposition_team) @router.get("/predict-team-outcome/") async def predict_team_outcome_endpoint(team1: str, team2: str): return predict_team_outcome(team1, team2) # New endpoint for team trends over time @router.get("/team-trends/") async def team_trends(team_name: str): return get_team_trends(team_name) # New endpoint for player trends over time @router.get("/player-trends/") async def player_trends(player_name: str, role: str = "Batting"): # Validate role parameter if role not in ["Batting", "Bowling"]: raise HTTPException(status_code=400, detail="Role must be 'Batting' or 'Bowling'") return get_player_trends(player_name, role)