from app.models.user import db from datetime import datetime class Category(db.Model): __tablename__ = 'categories' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(64), nullable=False) parent_id = db.Column(db.Integer, db.ForeignKey('categories.id'), nullable=True) sort = db.Column(db.Integer, default=0) # 关系 - 只保留与自身的关系 parent = db.relationship('Category', remote_side=[id], backref='children') def __repr__(self): return f'' class Book(db.Model): __tablename__ = 'books' id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String(255), nullable=False) author = db.Column(db.String(128), nullable=False) publisher = db.Column(db.String(128), nullable=True) category_id = db.Column(db.Integer, db.ForeignKey('categories.id'), nullable=True) tags = db.Column(db.String(255), nullable=True) isbn = db.Column(db.String(32), unique=True, nullable=True) publish_year = db.Column(db.String(16), nullable=True) description = db.Column(db.Text, nullable=True) cover_url = db.Column(db.String(255), nullable=True) stock = db.Column(db.Integer, default=0) price = db.Column(db.Numeric(10, 2), nullable=True) status = db.Column(db.Integer, default=1) # 1:可用, 0:不可用 created_at = db.Column(db.DateTime, nullable=False, default=datetime.now) updated_at = db.Column(db.DateTime, nullable=False, default=datetime.now) # 移除所有关系引用 def __repr__(self): return f''