""" 分类模型模块 ============================================================= 提供文章分类管理的数据模型定义,支持多级分类结构。 """ from application.models.base_db import BaseDB from application.models.base_model import BaseModel from config import DB_PREFIX from extensions import db from utils.case_converter import convert_camel_to_snake # ============================================================ # 分类模型 # ============================================================ class Category(BaseModel, BaseDB): """ 分类模型 用于存储文章分类数据,支持多级分类结构(无限级)。 继承自 BaseModel(通用字段)和 BaseDB(数据库操作方法)。 Attributes: id: 主键ID(继承自 BaseModel) category_name: 分类名称(String(100),必填) category_code: 分类编码(String(100),可选) parent_id: 上级分类ID(Integer,默认0,0表示顶级分类) sort: 分类排序(Integer,默认0,数值越小越靠前) note: 分类备注(String(100),可选) type: 分类类型(Integer,必填,1-公司,2-子公司,3-部门,4-小组) """ # ============================================================ # 表配置 # ============================================================ # 设置表名 __tablename__ = DB_PREFIX + "category" # ============================================================ # 字段定义 # ============================================================ # 分类名称 category_name = db.Column( db.String(100), nullable=False, comment="分类名称" ) # 分类编码 category_code = db.Column( db.String(100), nullable=True, comment="分类编码" ) # 上级分类ID parent_id = db.Column( db.Integer, nullable=False, default=0, comment="上级ID" ) # 分类排序 sort = db.Column( db.Integer, nullable=False, default=0, comment="排序" ) # 分类备注 note = db.Column( db.String(100), nullable=True, comment="分类备注" ) # 分类类型 type = db.Column( db.Integer, nullable=False, comment="分类类型:1-公司 2-子公司 3-部门 4-小组" ) # ============================================================ # 常量定义 # ============================================================ class Type: """分类类型常量""" COMPANY = 1 # 公司 SUBSIDIARY = 2 # 子公司 DEPARTMENT = 3 # 部门 GROUP = 4 # 小组 # ============================================================ # 魔法方法 # ============================================================ def __repr__(self): """ 返回模型的字符串表示 Returns: str: 格式为 "分类:{category_name}" 的字符串 """ return '分类:{}'.format(self.category_name) def __str__(self): """ 返回模型的字符串表示 Returns: str: 格式为 "分类:{category_name}" 的字符串 """ return self.__repr__()