64 lines
2.3 KiB
Python
64 lines
2.3 KiB
Python
from api 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 = db.Column(db.Numeric(), nullable=False, default=0)
|
|
|
|
__mapper_args__ = {'order_by' : name.asc()}
|
|
|
|
def __init__(self, name, username, territory, currency):
|
|
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,
|
|
}
|