22 lines
1.0 KiB
Python
22 lines
1.0 KiB
Python
from sqlalchemy import String, Integer, ForeignKey, JSON, UniqueConstraint
|
|
from sqlalchemy.orm import Mapped, mapped_column
|
|
from app.core.database import Base
|
|
|
|
|
|
class CollectionCard(Base):
|
|
__tablename__ = "user_collection"
|
|
|
|
id: Mapped[int] = mapped_column(primary_key=True)
|
|
owner_id: Mapped[int] = mapped_column(ForeignKey("users.id", ondelete="CASCADE"), nullable=False, index=True)
|
|
card_name: Mapped[str] = mapped_column(String(200), nullable=False)
|
|
set_code: Mapped[str] = mapped_column(String(10), nullable=False, default="")
|
|
collector_number: Mapped[str] = mapped_column(String(20), nullable=False, default="")
|
|
quantity: Mapped[int] = mapped_column(Integer, default=0)
|
|
foil_quantity: Mapped[int] = mapped_column(Integer, default=0)
|
|
scryfall_id: Mapped[str] = mapped_column(String(36), nullable=False, default="")
|
|
scryfall_data: Mapped[dict | None] = mapped_column(JSON)
|
|
|
|
__table_args__ = (
|
|
UniqueConstraint("owner_id", "scryfall_id", name="uq_owner_scryfall"),
|
|
)
|