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)