import sys
import json
from nba_api.stats.static import teams
from nba_api.stats.endpoints import commonteamroster
def height_to_meters(height_str):
    try:
        feet, inches = map(int, height_str.split('-'))
        total_cm = (feet * 30.48) + (inches * 2.54)
        return f"{total_cm / 100:.2f} m"
    except (ValueError, AttributeError):
        return height_str
def get_players_and_photos(team_name, season="2024-25"):
    nba_teams = teams.get_teams()
    matched_teams = [
        t for t in nba_teams 
        if team_name.lower() in t['full_name'].lower() or team_name.lower() in t['nickname'].lower()
    ]
    
    if not matched_teams:
        return []
    
    team_id = matched_teams[0]['id']
    
    roster = commonteamroster.CommonTeamRoster(team_id=team_id, season=season)
    df_roster = roster.get_data_frames()[0]
    
    df_roster['HEADSHOT_URL'] = df_roster['PLAYER_ID'].apply(
        lambda pid: f"https://cdn.nba.com/headshots/nba/latest/1040x760/{pid}.png"
    )

    # Exemple sur le DataFrame de la NBA API :
    df_roster['HEIGHT'] = df_roster['HEIGHT'].apply(height_to_meters)
    cols = ['PLAYER', 'NUM', 'POSITION', 'HEIGHT', 'WEIGHT', 'AGE', 'HEADSHOT_URL']
    
    # Conversion du DataFrame en dictionnaire Python
    return df_roster[cols].to_dict(orient='records')

if __name__ == "__main__":
    # Récupération de l'argument passé par PHP
    team = sys.argv[1] if len(sys.argv) > 1 else "Los Angeles Lakers"
    season = sys.argv[2] if len(sys.argv) > 2 else "2024-25"
    
    data = get_players_and_photos(team, season)
    
    # Impression exclusive du JSON sur stdout pour PHP
    print(json.dumps(data))
