# coding=UTF-8 from api.extensions import db from flask_sqlalchemy import BaseQuery class Product(db.Model): __tablename__ = 'product-products' id = db.Column('productid', db.Integer, primary_key=True) designerid = db.Column(db.Integer, db.ForeignKey('designers.designerid')) designer = db.relationship('Designer', backref='products') class Currencies(db.Model): __tablename__ = 'product-currencies' iso3char = db.Column(db.String(3), primary_key=True) exchange_rate = db.Column(db.Numeric, default=1) class MaterialQuery(BaseQuery): def wallpapers(self): return self.filter(Material.name.in_(Material.WALLPAPER_MATERIALS)) def canvas(self): return self.filter(Material.name.in_(Material.CANVAS_MATERIALS)) class Material(db.Model): __tablename__ = 'product-materials' query_class = MaterialQuery WALLPAPER_MATERIALS = ['standard-wallpaper', # 'self-adhesive-wallpaper', // isn't sold now 'premium-wallpaper'] CANVAS_MATERIALS = ['standard-canvas'] id = db.Column('materialid', db.Integer, primary_key=True) name = db.Column('material', db.String(255), nullable=False) price = db.Column('price', db.Integer) def to_json(self): return { 'id': self.id, 'name': self.name, 'price': float(self.price) } def __repr__(self): return self.name