33 lines
1.7 KiB
Python
33 lines
1.7 KiB
Python
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
|
|
from Mods.Comment.Models import Comment
|
|
|
|
|
|
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.email'), comment="填报人email")
|
|
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="填报内容")
|
|
file_md = Column(String(255), comment="附加文件")
|
|
required_auth = Column(Text, comment="日报权限")
|
|
sign_name = Column(String(128), comment="签发人")
|
|
sub_type = Column(String(255), comment="二级类别")
|
|
comments = relationship("Comment", cascade='all', back_populates='daily', uselist=True)
|
|
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_info')
|
|
data['user'] = user.to_dict()
|
|
return data
|