# 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