from sqlalchemy.orm import relationship from Context.common import common_db from sqlalchemy import Column, Integer, String, ForeignKey, Text, DateTime, func from Mods.User.Models import User class EditRecord(common_db.Base): """ 编辑记录表 """ __tablename__ = "edit_record" id = Column(Integer, primary_key=True) edit_user = Column(String(128), ForeignKey('user.email'), comment="填报人", nullable=False) user_info = relationship('User', uselist=False, backref='user') item_id = Column(Integer, comment="编辑项id", nullable=False) item_type_id = Column(Integer, ForeignKey('edit_item_type.id'), comment="编辑项类型信息", nullable=False) item_type_info = relationship('EditItemType', uselist=False, backref='edit_item_type') before_edit_data = Column(Text, comment="编辑前的信息json") after_edit_data = Column(Text, comment="编辑后的信息json") edit_time = Column(DateTime, server_default=func.now(), comment='编辑时间') create_time = Column(DateTime, server_default=func.now(), comment='创建时间') def to_dict(self): data = {c.name: getattr(self, c.name) for c in self.__table__.columns} item_type_info = getattr(self, 'item_type_info') data['item_type_info'] = item_type_info.to_dict() user_info = getattr(self, 'user_info') data['user_info'] = user_info.to_dict() return data class EditItemType(common_db.Base): """ 编辑项信息配置表,这个表需手动配置 """ __tablename__ = "edit_item_type" id = Column(Integer, primary_key=True) name = Column(String(255), comment="名称", nullable=False) category = Column(String(255), comment="类别", nullable=False) def to_dict(self): data = {c.name: getattr(self, c.name) for c in self.__table__.columns} return data