# 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, }