File size: 2,066 Bytes
36da710
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
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)