68 lines
2.6 KiB
Python
68 lines
2.6 KiB
Python
# 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)
|
|
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,
|
|
}
|