from sqlalchemy import Column, Integer, String, Text, SmallInteger, Numeric, DateTime from sqlalchemy.ext.declarative import declarative_base from .Model import Model from datetime import datetime Base = declarative_base() class Book(Base, Model): __tablename__ = 'books' id = Column(Integer, primary_key=True) url = Column(String(255)) title = Column(String(255), nullable=False, index=True) description = Column(Text) image_path = Column(String(255)) rating = Column(SmallInteger, index=True) upc = Column(String(32), unique=True) product_type = Column(String(32), index=True) price_excl_tax = Column(Numeric(6, 2), index=True) price_incl_tax = Column(Numeric(6, 2), index=True) tax = Column(Numeric(6, 2), index=True) in_stock = Column(Integer, index=True) count_reviews = Column(Integer, index=True) category = Column(String(32), index=True) currency_type = Column(String(4), index=True) created_at = Column(DateTime, default=datetime.utcnow) updated_at = Column(DateTime, default=datetime.utcnow, onupdate=datetime.utcnow)