from sqlalchemy import Column, Integer, String, Float, Boolean, DateTime, ForeignKey from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import relationship from datetime import datetime Base = declarative_base() class Box(Base): __tablename__ = "boxes" id = Column(String, primary_key=True, index=True) upload_id = Column(String, ForeignKey("upload_history.upload_id")) set_name = Column(String) set_code = Column(String) type = Column(String) cost = Column(Float) date_purchased = Column(DateTime) date_opened = Column(DateTime) date_created = Column(DateTime, default=datetime.now) date_modified = Column(DateTime, default=datetime.now, onupdate=datetime.now) class ManaboxExportData(Base): __tablename__ = "manabox_export_data" id = Column(String, primary_key=True) upload_id = Column(String) box_id = Column(String, nullable=True) name = Column(String) set_code = Column(String) set_name = Column(String) collector_number = Column(String) foil = Column(String) rarity = Column(String) quantity = Column(Integer) manabox_id = Column(String) scryfall_id = Column(String) purchase_price = Column(Float) misprint = Column(String) altered = Column(String) condition = Column(String) language = Column(String) purchase_price_currency = Column(String) date_created = Column(DateTime, default=datetime.now) date_modified = Column(DateTime, default=datetime.now, onupdate=datetime.now) class UploadHistory(Base): __tablename__ = "upload_history" id = Column(String, primary_key=True) upload_id = Column(String) filename = Column(String) date_created = Column(DateTime, default=datetime.now) date_modified = Column(DateTime, default=datetime.now, onupdate=datetime.now) status = Column(String) class TCGPlayerGroups(Base): __tablename__ = 'tcgplayer_groups' id = Column(String, primary_key=True) group_id = Column(Integer) name = Column(String) abbreviation = Column(String) is_supplemental = Column(String) published_on = Column(String) modified_on = Column(String) category_id = Column(Integer) class TCGPlayerInventory(Base): __tablename__ = 'tcgplayer_inventory' # TCGplayer Id,Product Line,Set Name,Product Name,Title,Number,Rarity,Condition,TCG Market Price,TCG Direct Low,TCG Low Price With Shipping,TCG Low Price,Total Quantity,Add to Quantity,TCG Marketplace Price,Photo URL id = Column(String, primary_key=True) export_id = Column(String) tcgplayer_product_id = Column(String, ForeignKey("tcgplayer_product.id"), nullable=True) tcgplayer_id = Column(Integer) 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) date_created = Column(DateTime, default=datetime.now) date_modified = Column(DateTime, default=datetime.now, onupdate=datetime.now) class TCGPlayerExportHistory(Base): __tablename__ = 'tcgplayer_export_history' id = Column(String, primary_key=True) type = Column(String) pricing_export_id = Column(String) inventory_export_id = Column(String) date_created = Column(DateTime, default=datetime.now) date_modified = Column(DateTime, default=datetime.now, onupdate=datetime.now) class TCGPlayerPricingHistory(Base): __tablename__ = 'tcgplayer_pricing_history' id = Column(String, primary_key=True) tcgplayer_product_id = Column(String, ForeignKey("tcgplayer_product.id")) export_id = Column(String) group_id = Column(Integer) tcgplayer_id = Column(Integer) tcg_market_price = Column(Float) tcg_direct_low = Column(Float) tcg_low_price_with_shipping = Column(Float) tcg_low_price = Column(Float) tcg_marketplace_price = Column(Float) date_created = Column(DateTime, default=datetime.now) date_modified = Column(DateTime, default=datetime.now, onupdate=datetime.now) class TCGPlayerProduct(Base): __tablename__ = 'tcgplayer_product' id = Column(String, primary_key=True) group_id = Column(Integer) tcgplayer_id = Column(Integer) product_line = Column(String) set_name = Column(String) product_name = Column(String) title = Column(String) number = Column(String) rarity = Column(String) condition = Column(String) date_created = Column(DateTime, default=datetime.now) date_modified = Column(DateTime, default=datetime.now, onupdate=datetime.now) class ManaboxTCGPlayerMapping(Base): __tablename__ = 'manabox_tcgplayer_mapping' id = Column(String, primary_key=True) manabox_id = Column(String, ForeignKey("manabox_export_data.id")) tcgplayer_id = Column(Integer, ForeignKey("tcgplayer_inventory.tcgplayer_id")) date_created = Column(DateTime, default=datetime.now) date_modified = Column(DateTime, default=datetime.now, onupdate=datetime.now) class SetCodeGroupIdMapping(Base): __tablename__ = 'set_code_group_id_mapping' id = Column(String, primary_key=True) set_code = Column(String) group_id = Column(Integer) date_created = Column(DateTime, default=datetime.now) date_modified = Column(DateTime, default=datetime.now, onupdate=datetime.now) class UnmatchedManaboxData(Base): __tablename__ = 'unmatched_manabox_data' id = Column(String, primary_key=True) manabox_id = Column(String, ForeignKey("manabox_export_data.id")) reason = Column(String) date_created = Column(DateTime, default=datetime.now) date_modified = Column(DateTime, default=datetime.now, onupdate=datetime.now)