2025-04-09 21:02:43 -04:00

39 lines
907 B
Python

from pydantic import BaseModel, ConfigDict
from typing import Optional, List
from datetime import datetime
# Base schema with common attributes
class CardBase(BaseModel):
name: str
rarity: str
set_name: str
price: float
quantity: int = 0
# Schema for creating a new card
class CardCreate(CardBase):
pass
# Schema for updating a card
class CardUpdate(BaseModel):
name: Optional[str] = None
rarity: Optional[str] = None
set_name: Optional[str] = None
price: Optional[float] = None
quantity: Optional[int] = None
# Schema for reading a card (includes id and relationships)
class Card(CardBase):
id: int
created_at: datetime
updated_at: datetime
orders: List["Order"] = []
model_config = ConfigDict(from_attributes=True)
# Schema for listing cards
class CardList(BaseModel):
cards: List[Card]
total: int
page: int
limit: int