Files
api2/api/models/category.py
T
2019-10-30 13:44:04 +01:00

65 lines
2.4 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)
framed_print_name = db.Column(db.String(250))
framed_print_h1 = db.Column(db.String(250))
framed_print_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,
"framed_print_name": self.framed_print_name,
"framed_print_h1": self.framed_print_h1,
"framed_print_description": self.framed_print_description,
}