import pytz
import datetime
from app.db.base import Base
from sqlalchemy import Column, ForeignKey
from sqlalchemy import Integer, SmallInteger
from sqlalchemy import String, Text
from sqlalchemy import DateTime
from app.models.user_info import UserInfo
class PasForm(Base):
__tablename__ = "pasform"
id = Column(Integer, primary_key=True, autoincrement=True, unique=True, index=True, doc="pas form id")
user_id = Column(Integer, ForeignKey(UserInfo.id), nullable=False, doc="form create user") # 外键
name = Column(String(255), nullable=False, doc="form name") # 考核表名称
desc = Column(String(255), nullable=True, doc="form desc") # 考核表描述
create_time = Column(DateTime(timezone=True), nullable=False, default=datetime.datetime.now(pytz.timezone('Asia/Shanghai')), doc="")
update_time = Column(DateTime(timezone=True), nullable=False, \
default=datetime.datetime.now(pytz.timezone('Asia/Shanghai')), \
onupdate=datetime.datetime.now(pytz.timezone('Asia/Shanghai')) ,doc="")
del_status = Column(SmallInteger, nullable=False, default=0, doc="delete status") # 0-未删除, 1-删除
class PasPlan(Base):
__tablename__ = "pasplan"
id = Column(Integer, primary_key=True, autoincrement=True, unique=True, index=True, doc="pas plan id")
user_id = Column(Integer, ForeignKey(UserInfo.id), nullable=False, doc="plan create user") # 外键
form_id = Column(Integer, ForeignKey(PasForm.id), nullable=False, doc="plan relate form") # 外键
name = Column(String(255), nullable=False, doc="plan name") # 考核计划名称
desc = Column(String(255), nullable=True, doc="form desc") # 考核计划描述
start_date = Column(DateTime(timezone=True), nullable=True, default=datetime.datetime.now(pytz.timezone('Asia/Shanghai')), doc="")
end_date = Column(DateTime(timezone=True), nullable=True, default=datetime.datetime.now(pytz.timezone('Asia/Shanghai')), doc="")
active = Column(SmallInteger, nullable=False, default=0, doc="plan status") # 0-未启用 1-启用 2-考核计划周期结束
create_time = Column(DateTime(timezone=True), nullable=False, default=datetime.datetime.now(pytz.timezone('Asia/Shanghai')), doc="")
update_time = Column(DateTime(timezone=True), nullable=False, \
default=datetime.datetime.now(pytz.timezone('Asia/Shanghai')), \
onupdate=datetime.datetime.now(pytz.timezone('Asia/Shanghai')) ,doc="")
del_status = Column(SmallInteger, nullable=False, default=0, doc="delete status") # 0-未删除, 1-删除
class PasPlanUser(Base):
__tablename__ = "planuser"
id = Column(Integer, primary_key=True, autoincrement=True, unique=True, index=True, doc="pas plan user id")
user_id = Column(Integer, ForeignKey(UserInfo.id), nullable=False, doc="user") # 外键
plan_id = Column(Integer, ForeignKey(PasPlan.id), nullable=False, doc="plan") # 外键
delay_lable = Column(SmallInteger, nullable=False, default=0, doc="delay status") # 0-正常考核期结束,1-延长考核期结束
delay_end_date = Column(DateTime(timezone=True), nullable=True, default=datetime.datetime.now(pytz.timezone('Asia/Shanghai')), doc="")
create_time = Column(DateTime(timezone=True), nullable=False, default=datetime.datetime.now(pytz.timezone('Asia/Shanghai')), doc="")
update_time = Column(DateTime(timezone=True), nullable=False, \
default=datetime.datetime.now(pytz.timezone('Asia/Shanghai')), \
onupdate=datetime.datetime.now(pytz.timezone('Asia/Shanghai')) ,doc="")
del_status = Column(SmallInteger, nullable=False, default=0, doc="delete status") # 0-未删除, 1-删除
class PasItem1(Base):
__tablename__ = "pasitem1"
id = Column(Integer, primary_key=True, autoincrement=True, unique=True, index=True, doc="item1 id")
form_id = Column(Integer, ForeignKey(PasForm.id), nullable=False, doc="item1 relate form") # 外键
order = Column(Integer, nullable=False, default=0, doc="item1 order in a form")
name = Column(String(255), nullable=False, doc="item1 name")
basic_desc = Column(String(255), nullable=True, doc="item1 desc")
create_time = Column(DateTime(timezone=True), nullable=False, default=datetime.datetime.now(pytz.timezone('Asia/Shanghai')), doc="")
update_time = Column(DateTime(timezone=True), nullable=False, \
default=datetime.datetime.now(pytz.timezone('Asia/Shanghai')), \
onupdate=datetime.datetime.now(pytz.timezone('Asia/Shanghai')) ,doc="")
del_status = Column(SmallInteger, nullable=False, default=0, doc="delete status") # 0-未删除, 1-删除
class PasItem2(Base):
__tablename__ = "pasitem2"
id = Column(Integer, primary_key=True, autoincrement=True, unique=True, index=True, doc="item2 id")
form_id = Column(Integer, ForeignKey(PasForm.id), nullable=False, doc="item2 relate form") # 外键
item1_id = Column(Integer, ForeignKey(PasItem1.id), nullable=False, doc="item2 relate item1") # 外键
order = Column(Integer, nullable=False, default=0, doc="item2 order in a form")
name = Column(String(255), nullable=False, doc="item2 name")
basic_desc = Column(String(255), nullable=True, doc="item2 desc")
create_time = Column(DateTime(timezone=True), nullable=False, default=datetime.datetime.now(pytz.timezone('Asia/Shanghai')), doc="")
update_time = Column(DateTime(timezone=True), nullable=False, \
default=datetime.datetime.now(pytz.timezone('Asia/Shanghai')), \
onupdate=datetime.datetime.now(pytz.timezone('Asia/Shanghai')) ,doc="")
del_status = Column(SmallInteger, nullable=False, default=0, doc="delete status") # 0-未删除, 1-删除
class PasItem3(Base):
__tablename__ = "pasitem3"
id = Column(Integer, primary_key=True, autoincrement=True, unique=True, index=True, doc="item3 id")
form_id = Column(Integer, ForeignKey(PasForm.id), nullable=False, doc="item3 relate form") # 外键
item2_id = Column(Integer, ForeignKey(PasItem2.id), nullable=False, doc="item3 relate item2") # 外键
order = Column(Integer, nullable=False, default=0, doc="item2 order in a form")
name = Column(String(255), nullable=False, doc="item3 name")
basic_desc = Column(String(255), nullable=True, doc="item3 desc")
refer_score = Column(String(255), nullable=False, doc="item3 reference score") # eg. 1/3/5
create_time = Column(DateTime(timezone=True), nullable=False, default=datetime.datetime.now(pytz.timezone('Asia/Shanghai')), doc="")
update_time = Column(DateTime(timezone=True), nullable=False, \
default=datetime.datetime.now(pytz.timezone('Asia/Shanghai')), \
onupdate=datetime.datetime.now(pytz.timezone('Asia/Shanghai')) ,doc="")
del_status = Column(SmallInteger, nullable=False, default=0, doc="delete status") # 0-未删除, 1-删除