floorball_stas/app/crud/crud_player.py

42 lines
1.2 KiB
Python

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)