61 lines
2.1 KiB
Python
61 lines
2.1 KiB
Python
# coding=UTF-8
|
|
|
|
from api.extensions import db
|
|
from api.models.locale import Locale
|
|
|
|
|
|
class Category(db.Model):
|
|
__tablename__ = 'categories'
|
|
|
|
id = db.Column(db.Integer, primary_key=True)
|
|
name = db.Column(db.String(255), nullable=False)
|
|
texts = db.relationship(
|
|
'CategoryTexts', backref='category', lazy='dynamic')
|
|
|
|
def to_json(self):
|
|
return {
|
|
'id': self.id,
|
|
'name': self.name,
|
|
'texts': [t.to_json() for t in self.texts]
|
|
}
|
|
|
|
|
|
class CategoryTexts(db.Model):
|
|
__tablename__ = 'category_texts'
|
|
|
|
id = db.Column(db.Integer, primary_key=True)
|
|
category_id = db.Column(db.Integer, db.ForeignKey('categories.id'))
|
|
locale = db.relationship("Locale")
|
|
locale_id = db.Column(db.Integer, db.ForeignKey('locales.id'))
|
|
wallpaper_name = db.Column(db.String(250))
|
|
wallpaper_h1 = db.Column(db.String(250))
|
|
wallpaper_description = db.Column(db.Text)
|
|
canvas_name = db.Column(db.String(250))
|
|
canvas_h1 = db.Column(db.String(250))
|
|
canvas_description = db.Column(db.Text)
|
|
design_wallpaper_name = db.Column('name', db.String(250))
|
|
design_wallpaper_h1 = db.Column(db.String(250))
|
|
design_wallpaper_description = db.Column(db.Text)
|
|
poster_name = db.Column(db.String(250))
|
|
poster_h1 = db.Column(db.String(250))
|
|
poster_description = db.Column(db.Text)
|
|
|
|
|
|
def to_json(self):
|
|
return {
|
|
'id': self.id,
|
|
'locale': self.locale.value,
|
|
'wallpaper_name': self.wallpaper_name,
|
|
'wallpaper_h1': self.wallpaper_h1,
|
|
'wallpaper_description': self.wallpaper_description,
|
|
'canvas_name': self.canvas_name,
|
|
'canvas_h1': self.canvas_h1,
|
|
'canvas_description': self.canvas_description,
|
|
'design_wallpaper_name': self.design_wallpaper_name,
|
|
'design_wallpaper_h1': self.design_wallpaper_h1,
|
|
'design_wallpaper_description': self.design_wallpaper_description,
|
|
'poster_name': self.poster_name,
|
|
'poster_h1': self.poster_h1,
|
|
'poster_description': self.poster_description,
|
|
}
|