major-domo-legacy/api_calls/player.py
2025-07-12 23:15:00 -05:00

46 lines
1.2 KiB
Python

import logging
import pydantic
from typing import Optional
from api_calls.team import Team
from db_calls import db_get
from exceptions import log_exception, ApiException
logger = logging.getLogger('discord_app')
class Player(pydantic.BaseModel):
id: Optional[int] = None
name: str
wara: float
team: Team
image: str
image2: Optional[str] = None
season: int
pitcher_injury: Optional[int] = None
pos_1: str
pos_2: Optional[str] = None
pos_3: Optional[str] = None
pos_4: Optional[str] = None
pos_5: Optional[str] = None
pos_6: Optional[str] = None
pos_7: Optional[str] = None
pos_8: Optional[str] = None
vanity_card: Optional[str] = None
headshot: Optional[str] = None
last_game: Optional[str] = None
last_game2: Optional[str] = None
il_return: Optional[str] = None
demotion_week: Optional[int] = None
strat_code: Optional[str] = None
bbref_id: Optional[str] = None
injury_rating: Optional[str] = None
sbaplayer_id: Optional[int] = None
async def get_one_player(player_id: int) -> Player:
data = await db_get('players', object_id=player_id)
if not data:
log_exception(ApiException(f'No player found with ID {player_id}'))
return Player(**data)