Skip to content
Snippets Groups Projects
Book.py 1.09 KiB
Newer Older
from sqlalchemy import Column, Integer, String, Text, SmallInteger, Numeric, DateTime
Anton Gusev's avatar
Anton Gusev committed
from sqlalchemy.ext.declarative import declarative_base
from .Model import Model
from datetime import datetime
Anton Gusev's avatar
Anton Gusev committed

Base = declarative_base()


class Book(Base, Model):
    __tablename__ = 'books'
    id = Column(Integer, primary_key=True)
    url = Column(String(255))
Anton Gusev's avatar
Anton Gusev committed

Anton Gusev's avatar
Anton Gusev committed
    title = Column(String(255), nullable=False, index=True)
Anton Gusev's avatar
Anton Gusev committed
    description = Column(Text)
    image_path = Column(String(255))
Anton Gusev's avatar
Anton Gusev committed
    rating = Column(SmallInteger, index=True)
Anton Gusev's avatar
Anton Gusev committed

Anton Gusev's avatar
Anton Gusev committed
    upc = Column(String(32), unique=True)
Anton Gusev's avatar
Anton Gusev committed
    product_type = Column(String(32), index=True)
Anton Gusev's avatar
Anton Gusev committed
    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)
Anton Gusev's avatar
Anton Gusev committed

Anton Gusev's avatar
Anton Gusev committed
    category = Column(String(32), index=True)
Anton Gusev's avatar
Anton Gusev committed

Anton Gusev's avatar
Anton Gusev committed
    currency_type = Column(String(4), index=True)
    
    created_at = Column(DateTime, default=datetime.utcnow)
    updated_at = Column(DateTime, default=datetime.utcnow, onupdate=datetime.utcnow)