from app.extensions import db from datetime import datetime class MaterialBase(db.Model): __tablename__ = 'material_base' id = db.Column(db.Integer, primary_key=True) # 核心字段 sku_code = db.Column(db.String(100), unique=True, nullable=False) # 唯一编码 name = db.Column(db.String(255), nullable=False) # 名称 spec_model = db.Column(db.String(255)) # 规格型号 unit = db.Column(db.String(50)) # 单位 category = db.Column(db.String(100)) # 分类 # 审计字段 (自动记录时间) created_at = db.Column(db.DateTime, default=datetime.utcnow) updated_at = db.Column(db.DateTime, default=datetime.utcnow, onupdate=datetime.utcnow) # 关联关系 (让 StockBuy 可以反向找到 Material) # 这里的 dynamic 允许在 material.stock_buys 时进行进一步过滤 stock_buys = db.relationship('StockBuy', back_populates='material', lazy='dynamic') def to_dict(self): """将对象转换为字典,方便接口返回""" return { 'id': self.id, 'sku_code': self.sku_code, 'name': self.name, 'spec_model': self.spec_model, 'unit': self.unit, 'category': self.category, 'created_at': self.created_at.strftime('%Y-%m-%d %H:%M:%S') if self.created_at else None }