import json
import sys
from nba_api.stats.endpoints import playergamelog
from nba_api.stats.static import players


def get_player_logs(player_name: str, season: str = "2025-26"):
    # Recherche du joueur
    nba_players = players.get_players()
    matching_players = [
        p
        for p in nba_players
        if p["full_name"].lower() == player_name.strip().lower()
    ]

    if not matching_players:
        return {"error": f"Joueur '{player_name}' introuvable."}

    player_id = matching_players[0]["id"]
    found_name = matching_players[0]["full_name"]

    # Requête NBA API
    gamelog = playergamelog.PlayerGameLog(
        player_id=player_id, season=season, season_type_all_star="Regular Season"
    )

    df = gamelog.get_data_frames()[0]

    if df.empty:
        return {"error": f"Aucun match trouvé pour {found_name} cette saison."}

    # Sélection des colonnes souhaitées
    display_cols = [
        "GAME_DATE",
        "MATCHUP",
        "WL",
        "MIN",
        "PTS",
        "REB",
        "AST",
        "STL",
        "BLK",
        "FG_PCT",
	"FG3_PCT",
    ]
    df_filtered = df[display_cols].copy()
    df_filtered.insert(0, "PLAYER_NAME", found_name)

    # Conversion en liste de dictionnaires pour le JSON
    return df_filtered.to_dict(orient="records")


if __name__ == "__main__":
    # Récupération du nom passé en paramètre depuis PHP
    player_input = sys.argv[1] if len(sys.argv) > 1 else "Stephen Curry"
    results = get_player_logs(player_input)

    # Sortie stricte en JSON pour PHP
    print(json.dumps(results))