from typing import Any, Dict, Optional, Union from sqlalchemy.orm import Session from app.crud.base import CRUDBase from app.models.player import Player from app.schemas.player import PlayerCreate, PlayerUpdate, PlayerUpdateTeam class CRUDPlayer(CRUDBase[Player, PlayerCreate, PlayerUpdate]): def get_player_by_name( self, db: Session, *, firstname: str, lastname: str, ) -> Optional[Player]: return ( db.query(Player) .filter(Player.lastname == lastname, Player.firstname == firstname) .first() ) def get_player(self, db: Session, *, player_id: int) -> Optional[Player]: return db.query(Player).filter(Player.id == player_id).first() def get_players(self, db: Session, skip: int = 0, limit: int = 100): return db.query(Player).offset(skip).limit(limit).all() def create(self, db: Session, *, obj_in: PlayerCreate) -> Player: db_obj = Player( firstname=obj_in.firstname, lastname=obj_in.lastname, ) db.add(db_obj) db.commit() db.refresh(db_obj) return db_obj player = CRUDPlayer(Player)