# coding=UTF-8 from api.extensions import db from api.lib.slugify import slugify class Designer(db.Model): __tablename__ = "designers" id = db.Column("designerid", db.Integer, primary_key=True) commission = db.Column(db.Integer(), nullable=False) commission_resale = db.Column(db.Integer(), nullable=False) currency = db.Column(db.String(3), nullable=False) name = db.Column(db.String(100), nullable=False) no_follow = db.Column(db.Integer(), nullable=True, default=0) path = db.Column(db.String(100), nullable=False) sort_desc = db.Column(db.Boolean(), nullable=False, default=False) territory = db.Column(db.String(2), nullable=False) username = db.Column(db.String(100), nullable=False) visible_designerpage = db.Column(db.Integer(), nullable=False, default=1) visible_list = db.Column(db.Integer(), nullable=False, default=1) visible_productpage = db.Column(db.Integer(), nullable=False, default=1) visible_search = db.Column(db.Integer(), nullable=False, default=1) enable_retouch = db.Column(db.Integer(), nullable=False, default=1) pricepremium_wallpaper = db.Column(db.Numeric(), nullable=False, default=0) pricepremium_canvas = db.Column(db.Numeric(), nullable=False, default=0) pricepremium_poster = db.Column(db.Numeric(), nullable=False, default=0) pricepremium_framed_print = db.Column(db.Numeric(), nullable=False, default=0) def __init__(self, name, username, territory, currency, *args, **kwargs): super(Designer, self).__init__(*args, **kwargs) self.name = name self.username = username self.territory = territory self.currency = currency self.commission = 0 self.commission_resale = 0 self.path = slugify(name) @property def send_to_bottom(self): if self.sort_desc: return 1 return 0 @property def exclude_from_overview(self): if self.visible_list == 1: return 0 return 1 def to_json(self): return { "id": self.id, "commission": self.commission, "commission_resale": self.commission_resale, "currency": self.currency, "name": self.name, "no_follow": self.no_follow, "path": self.path, "sort_desc": 1 if self.sort_desc else 0, "territory": self.territory, "username": self.username, "visible_designerpage": self.visible_designerpage, "visible_list": self.visible_list, "visible_productpage": self.visible_productpage, "visible_search": self.visible_search, }