rate-sys-template/Mods/RateFlow/Models.py

41 lines
1.7 KiB
Python

from sqlalchemy import Column, String, Date, Enum, ForeignKey, Integer, Boolean
from sqlalchemy.orm import relationship
from .Schemas import RankLevelEnum, RatingFlowStatusEnum
from Context.common import common_db
class RatingFlow(common_db.Base):
__tablename__ = "rating_flow"
id = Column(String(16), primary_key=True)
report_date = Column(Date)
status = Column(String(32), comment="评级状态")
rank_level = Column(String(32), comment="评级等级")
company = Column(String(32), index=True, comment="测评企业")
company_id = Column(String(16), comment="企业ID")
nodes = relationship("RatingFlowNode", backref="rating_flow")
rating_flow_participant = relationship("RatingFlowParticipant", back_populates="rating_flow")
class RatingFlowParticipant(common_db.Base):
__tablename__ = "rating_flow_participant"
id = Column(String(16), primary_key=True)
participant = Column(String(32), index=True, comment="参与人")
user_id = Column(String(16), comment="用户ID")
rating_process_id = Column(String(16), ForeignKey("rating_flow.id", ondelete="CASCADE"), comment="评级流程ID")
rating_flow = relationship("RatingFlow", back_populates="rating_flow_participant")
class RatingFlowNode(common_db.Base):
__tablename__ = "rating_flow_node"
id = Column(String(16), primary_key=True, comment="流程节点ID")
node_num = Column(Integer, comment="流程节点序号")
node_name = Column(String(32), comment="流程节点名称")
status = Column(Boolean, default=0, comment="流程节点状态")
obj_id = Column(String(24), default=None, comment="流程内容mongoID")
rating_process_id = Column(String(16), ForeignKey("rating_flow.id", ondelete="CASCADE"), comment="评级流程ID")