from typing import List, Optional from sqlalchemy.orm import Session from app.services.base_service import BaseService from app.models.card import Card class CardService(BaseService[Card]): def __init__(self): super().__init__(Card) def get_by_name(self, db: Session, name: str) -> Optional[Card]: return db.query(self.model).filter(self.model.name == name).first() def get_by_rarity(self, db: Session, rarity: str, skip: int = 0, limit: int = 100) -> List[Card]: return db.query(self.model).filter(self.model.rarity == rarity).offset(skip).limit(limit).all() def get_by_set(self, db: Session, set_name: str, skip: int = 0, limit: int = 100) -> List[Card]: return db.query(self.model).filter(self.model.set_name == set_name).offset(skip).limit(limit).all()