61 lines
2.6 KiB
Python
61 lines
2.6 KiB
Python
from sqlalchemy import Column, Integer, String, Float, DateTime, ForeignKey
|
|
from sqlalchemy.sql import func
|
|
from app.db.database import Base
|
|
from sqlalchemy.orm import relationship
|
|
|
|
class TCGPlayerInventory(Base):
|
|
__tablename__ = "tcgplayer_inventory"
|
|
|
|
id = Column(Integer, primary_key=True, index=True)
|
|
tcgplayer_sku_id = Column(Integer, unique=True, index=True)
|
|
product_line = Column(String)
|
|
set_name = Column(String)
|
|
product_name = Column(String)
|
|
title = Column(String)
|
|
number = Column(String)
|
|
rarity = Column(String)
|
|
condition = Column(String)
|
|
tcg_market_price = Column(Float)
|
|
tcg_direct_low = Column(Float)
|
|
tcg_low_price_with_shipping = Column(Float)
|
|
tcg_low_price = Column(Float)
|
|
total_quantity = Column(Integer)
|
|
add_to_quantity = Column(Integer)
|
|
tcg_marketplace_price = Column(Float)
|
|
photo_url = Column(String)
|
|
created_at = Column(DateTime(timezone=True), server_default=func.now())
|
|
updated_at = Column(DateTime(timezone=True), server_default=func.now(), onupdate=func.now())
|
|
|
|
# relationships
|
|
unmanaged_inventory = relationship("UnmanagedTCGPlayerInventory", back_populates="tcgplayer_inventory")
|
|
sku = relationship("MTGJSONSKU", primaryjoin="foreign(MTGJSONSKU.tcgplayer_sku_id) == TCGPlayerInventory.tcgplayer_sku_id", viewonly=True)
|
|
|
|
|
|
class UnmanagedTCGPlayerInventory(Base):
|
|
__tablename__ = "unmanaged_tcgplayer_inventory"
|
|
|
|
id = Column(Integer, primary_key=True, index=True)
|
|
tcgplayer_inventory_id = Column(Integer, ForeignKey("tcgplayer_inventory.id"), unique=True, index=True)
|
|
tcgplayer_sku_id = Column(Integer, unique=True, index=True)
|
|
product_line = Column(String)
|
|
set_name = Column(String)
|
|
product_name = Column(String)
|
|
title = Column(String)
|
|
number = Column(String)
|
|
rarity = Column(String)
|
|
condition = Column(String)
|
|
tcg_market_price = Column(Float)
|
|
tcg_direct_low = Column(Float)
|
|
tcg_low_price_with_shipping = Column(Float)
|
|
tcg_low_price = Column(Float)
|
|
total_quantity = Column(Integer)
|
|
add_to_quantity = Column(Integer)
|
|
tcg_marketplace_price = Column(Float)
|
|
photo_url = Column(String)
|
|
created_at = Column(DateTime(timezone=True), server_default=func.now())
|
|
updated_at = Column(DateTime(timezone=True), server_default=func.now(), onupdate=func.now())
|
|
|
|
# relationships
|
|
tcgplayer_inventory = relationship("TCGPlayerInventory", back_populates="unmanaged_inventory")
|
|
sku = relationship("MTGJSONSKU", primaryjoin="foreign(MTGJSONSKU.tcgplayer_sku_id) == UnmanagedTCGPlayerInventory.tcgplayer_sku_id", viewonly=True)
|
|
|