from sqlalchemy import Column, String, Boolean, Enum, Text, DateTime, func, Integer, ForeignKey from sqlalchemy.orm import relationship from Utils.SqlAlchemyUtils import Base from Schemas.DailySchemas import DailyTypeEnum class Daily(Base): __tablename__ = "daily" id = Column(Integer, primary_key=True, comment="日报ID") type = Column(Enum(DailyTypeEnum, values_callable=lambda x: [e.value for e in x]), nullable=False) # fill_user = Column(String(128), comment="填报人openid") fill_user = Column(String(128), ForeignKey('user.openid'), comment="填报人openid") user_info = relationship('User', uselist=False, backref='user') title = Column(String(128), comment="标题") department = Column(Integer, comment="填报部门") post = Column(Integer, comment="填报部门") content = Column(Text, comment="填报内容") daily_time = Column(DateTime, server_default=func.now(), comment='日报时间') create_time = Column(DateTime, server_default=func.now(), comment='创建时间') update_time = Column(DateTime, server_default=func.now(), onupdate=func.now(), comment='修改时间') def to_dict(self): data = {c.name: getattr(self, c.name) for c in self.__table__.columns} user = getattr(self, 'user') data['user'] = user.to_dict() return data