255 lines
9.5 KiB
Python
255 lines
9.5 KiB
Python
from sqlalchemy import Boolean, Column, Integer, String, DateTime,ForeignKey,Table
|
|
from sqlalchemy.orm import Mapped,relationship,as_declarative,mapped_column
|
|
from datetime import datetime
|
|
from app.db import Base
|
|
from app.core.security import chacha20Decrypt
|
|
|
|
@as_declarative()
|
|
class Base:
|
|
id = Column(Integer, primary_key=True, index=True)
|
|
create_time = Column(DateTime, default=datetime.now)
|
|
update_time = Column(DateTime, default=datetime.now, onupdate=datetime.now)
|
|
|
|
|
|
userrole = Table(
|
|
"userrole",
|
|
Base.metadata,
|
|
Column("userid",Integer,ForeignKey("user.id")),
|
|
Column("roleid",Integer,ForeignKey("role.id")),
|
|
)
|
|
|
|
rolepermission = Table(
|
|
"rolepermission",
|
|
Base.metadata,
|
|
Column("roleid",Integer,ForeignKey("role.id")),
|
|
Column("permissionid",Integer,ForeignKey("permission.id")),
|
|
)
|
|
|
|
class User(Base):
|
|
__tablename__ = "user"
|
|
|
|
email = mapped_column(String(50), unique=True, index=True, nullable=False)
|
|
first_name = mapped_column(String(100))
|
|
last_name = mapped_column(String(100))
|
|
hashed_password = mapped_column(String(200), nullable=False)
|
|
is_active = mapped_column(Boolean, default=True)
|
|
is_superuser = mapped_column(Boolean, default=False)
|
|
tenantid = mapped_column(String(100))
|
|
createuserid = mapped_column(Integer,ForeignKey("user.id"))
|
|
updateuserid = mapped_column(Integer,ForeignKey("user.id"))
|
|
createuser = relationship('User',foreign_keys=[createuserid])
|
|
updateuser = relationship('User',foreign_keys=[updateuserid])
|
|
roles = relationship("Role",secondary=userrole,back_populates="users")
|
|
|
|
|
|
class Role(Base):
|
|
__tablename__ = "role"
|
|
|
|
name = mapped_column(String(100))
|
|
description = mapped_column(String(255))
|
|
level = mapped_column(Integer)
|
|
users = relationship("User",secondary=userrole,back_populates="roles")
|
|
permissions = relationship("Permission",secondary=rolepermission,back_populates="roles")
|
|
|
|
class Permission(Base):
|
|
__tablename__ = "permission"
|
|
|
|
menu = mapped_column(String(100))
|
|
function = mapped_column(String(255))
|
|
link = mapped_column(String(100))
|
|
privilege = mapped_column(String(100))
|
|
roles = relationship("Role",secondary=rolepermission,back_populates="permissions")
|
|
|
|
|
|
class App(Base):
|
|
__tablename__ = "app"
|
|
|
|
domainurl = mapped_column(String(200), nullable=False)
|
|
appname = mapped_column(String(200), nullable=False)
|
|
appid = mapped_column(String(100), index=True, nullable=False)
|
|
version = mapped_column(Integer)
|
|
versionname = mapped_column(String(200), nullable=False)
|
|
is_saved = mapped_column(Boolean, default=False)
|
|
createuserid = mapped_column(Integer,ForeignKey("user.id"))
|
|
updateuserid = mapped_column(Integer,ForeignKey("user.id"))
|
|
createuser = relationship('User',foreign_keys=[createuserid])
|
|
updateuser = relationship('User',foreign_keys=[updateuserid])
|
|
|
|
class AppVersion(Base):
|
|
__tablename__ = "appversion"
|
|
|
|
domainurl = mapped_column(String(200), nullable=False)
|
|
appname = mapped_column(String(200), nullable=False)
|
|
appid = mapped_column(String(100), index=True, nullable=False)
|
|
version = mapped_column(Integer)
|
|
versionname = mapped_column(String(200), nullable=False)
|
|
comment = mapped_column(String(200), nullable=False)
|
|
createuserid = mapped_column(Integer,ForeignKey("user.id"))
|
|
updateuserid = mapped_column(Integer,ForeignKey("user.id"))
|
|
createuser = relationship('User',foreign_keys=[createuserid])
|
|
updateuser = relationship('User',foreign_keys=[updateuserid])
|
|
|
|
|
|
|
|
class AppSetting(Base):
|
|
__tablename__ = "appsetting"
|
|
|
|
appid = mapped_column(String(100), index=True, nullable=False)
|
|
setting = mapped_column(String(1000))
|
|
|
|
class Kintone(Base):
|
|
__tablename__ = "kintone"
|
|
|
|
type = mapped_column(Integer, index=True, nullable=False)
|
|
name = mapped_column(String(100), nullable=False)
|
|
desc = mapped_column(String)
|
|
content = mapped_column(String)
|
|
|
|
class Action(Base):
|
|
__tablename__ = "action"
|
|
|
|
name = mapped_column(String(100), index=True, nullable=False)
|
|
title = mapped_column(String(200))
|
|
subtitle = mapped_column(String(500))
|
|
outputpoints = mapped_column(String)
|
|
property = mapped_column(String)
|
|
categoryid = mapped_column(Integer,ForeignKey("category.id"))
|
|
nosort = mapped_column(Integer)
|
|
|
|
class Flow(Base):
|
|
__tablename__ = "flow"
|
|
|
|
flowid = mapped_column(String(100), index=True, nullable=False)
|
|
appid = mapped_column(String(100), index=True, nullable=False)
|
|
eventid = mapped_column(String(100), index=True, nullable=False)
|
|
domainurl = mapped_column(String(200))
|
|
name = mapped_column(String(200))
|
|
content = mapped_column(String)
|
|
createuserid = mapped_column(Integer,ForeignKey("user.id"))
|
|
updateuserid = mapped_column(Integer,ForeignKey("user.id"))
|
|
createuser = relationship('User',foreign_keys=[createuserid])
|
|
updateuser = relationship('User',foreign_keys=[updateuserid])
|
|
|
|
class FlowHistory(Base):
|
|
__tablename__ = "flowhistory"
|
|
|
|
flowid = mapped_column(String(100), index=True, nullable=False)
|
|
appid = mapped_column(String(100), index=True, nullable=False)
|
|
eventid = mapped_column(String(100), index=True, nullable=False)
|
|
domainurl = mapped_column(String(200))
|
|
name = mapped_column(String(200))
|
|
content = mapped_column(String)
|
|
version = mapped_column(Integer)
|
|
createuserid = mapped_column(Integer,ForeignKey("user.id"))
|
|
updateuserid = mapped_column(Integer,ForeignKey("user.id"))
|
|
createuser = relationship('User',foreign_keys=[createuserid])
|
|
updateuser = relationship('User',foreign_keys=[updateuserid])
|
|
|
|
class Tenant(Base):
|
|
__tablename__ = "tenant"
|
|
|
|
tenantid = mapped_column(String(100), index=True, nullable=False)
|
|
name = mapped_column(String(200))
|
|
licence = mapped_column(String(200))
|
|
startdate = mapped_column(DateTime)
|
|
enddate = mapped_column(DateTime)
|
|
db = mapped_column(String(200))
|
|
|
|
|
|
class Domain(Base):
|
|
__tablename__ = "domain"
|
|
|
|
tenantid = mapped_column(String(100), index=True, nullable=False)
|
|
name = mapped_column(String(100), nullable=False)
|
|
url = mapped_column(String(200), nullable=False)
|
|
kintoneuser = mapped_column(String(100), nullable=False)
|
|
kintonepwd = mapped_column(String(100), nullable=False)
|
|
is_active = mapped_column(Boolean, default=True)
|
|
def decrypt_kintonepwd(self):
|
|
decrypted_pwd = chacha20Decrypt(self.kintonepwd)
|
|
return decrypted_pwd
|
|
createuserid = mapped_column(Integer,ForeignKey("user.id"))
|
|
updateuserid = mapped_column(Integer,ForeignKey("user.id"))
|
|
ownerid = mapped_column(Integer,ForeignKey("user.id"))
|
|
createuser = relationship('User',foreign_keys=[createuserid])
|
|
updateuser = relationship('User',foreign_keys=[updateuserid])
|
|
owner = relationship('User',foreign_keys=[ownerid])
|
|
|
|
|
|
class UserDomain(Base):
|
|
__tablename__ = "userdomain"
|
|
|
|
userid = mapped_column(Integer,ForeignKey("user.id"))
|
|
domainid = mapped_column(Integer,ForeignKey("domain.id"))
|
|
is_default = mapped_column(Boolean, default=False)
|
|
createuserid = mapped_column(Integer,ForeignKey("user.id"))
|
|
updateuserid = mapped_column(Integer,ForeignKey("user.id"))
|
|
domain = relationship("Domain")
|
|
user = relationship("User",foreign_keys=[userid])
|
|
createuser = relationship('User',foreign_keys=[createuserid])
|
|
updateuser = relationship('User',foreign_keys=[updateuserid])
|
|
|
|
class ManageDomain(Base):
|
|
__tablename__ = "managedomain"
|
|
|
|
userid = mapped_column(Integer,ForeignKey("user.id"))
|
|
domainid = mapped_column(Integer,ForeignKey("domain.id"))
|
|
createuserid = mapped_column(Integer,ForeignKey("user.id"))
|
|
updateuserid = mapped_column(Integer,ForeignKey("user.id"))
|
|
domain = relationship("Domain")
|
|
user = relationship("User",foreign_keys=[userid])
|
|
createuser = relationship('User',foreign_keys=[createuserid])
|
|
updateuser = relationship('User',foreign_keys=[updateuserid])
|
|
|
|
class Event(Base):
|
|
__tablename__ = "event"
|
|
|
|
category = mapped_column(String(100), nullable=False)
|
|
type = mapped_column(String(100), nullable=False)
|
|
eventid= mapped_column(String(100), nullable=False)
|
|
function = mapped_column(String(500), nullable=False)
|
|
mobile = mapped_column(Boolean, default=False)
|
|
eventgroup = mapped_column(Boolean, default=False)
|
|
|
|
class EventAction(Base):
|
|
__tablename__ = "eventaction"
|
|
|
|
eventid = mapped_column(String(100),ForeignKey("event.eventid"))
|
|
actionid = mapped_column(Integer,ForeignKey("action.id"))
|
|
|
|
|
|
class ErrorLog(Base):
|
|
__tablename__ = "errorlog"
|
|
|
|
title = mapped_column(String(50))
|
|
location = mapped_column(String(500))
|
|
content = mapped_column(String(5000))
|
|
|
|
class OperationLog(Base):
|
|
__tablename__ = "operationlog"
|
|
|
|
tenantid = mapped_column(String(100))
|
|
clientip = mapped_column(String(200))
|
|
useragent = mapped_column(String(200))
|
|
userid = mapped_column(Integer,ForeignKey("user.id"))
|
|
operation = mapped_column(String(200))
|
|
function = mapped_column(String(200))
|
|
response = mapped_column(String(200))
|
|
user = relationship('User')
|
|
|
|
class KintoneFormat(Base):
|
|
__tablename__ = "kintoneformat"
|
|
|
|
name = mapped_column(String(50))
|
|
startrow =mapped_column(Integer)
|
|
startmapped_column =mapped_column(Integer)
|
|
typemapped_column =mapped_column(Integer)
|
|
codemapped_column =mapped_column(Integer)
|
|
field = mapped_column(String(5000))
|
|
trueformat = mapped_column(String(10))
|
|
|
|
class Category(Base):
|
|
__tablename__ = "category"
|
|
|
|
categoryname = mapped_column(String(20))
|
|
nosort = mapped_column(Integer) |