Files
KintoneAppBuilder/backend/app/db/schemas.py
2024-11-23 18:36:01 +09:00

183 lines
3.0 KiB
Python

from pydantic import BaseModel
from datetime import datetime
import typing as t
from app.core.security import chacha20Decrypt, chacha20Encrypt
class Base(BaseModel):
create_time: datetime
update_time: datetime
class Permission(BaseModel):
id: int
menu:str
function:str
privilege:str
class Role(BaseModel):
id: int
name:str
description:str
permissions:t.List[Permission] = []
class UserBase(BaseModel):
email: str
is_active: bool = True
is_superuser: bool = False
first_name: str = None
last_name: str = None
roles:t.List[Role] = []
class UserOut(UserBase):
pass
class UserCreate(UserBase):
email:str
password: str
first_name: str
last_name: str
is_active:bool
is_superuser:bool
class ConfigDict:
orm_mode = True
class UserEdit(UserBase):
password: t.Optional[str] = None
class ConfigDict:
orm_mode = True
class User(UserBase):
id: int
class ConfigDict:
orm_mode = True
class Token(BaseModel):
access_token: str
token_type: str
class AppList(Base):
domainurl: str
appname: str
appid:str
updateuser: UserOut
version:int
class AppVersion(BaseModel):
domainurl: str
appname: str
versionname: str
comment:str
appid:str
class TokenData(BaseModel):
id:int = 0
email: str = None
permissions: str = "user"
class AppEdit(BaseModel):
setting: str = None
class AppBase(BaseModel):
appid: str
setting: str = None
class App(AppBase):
id: int
class ConfigDict:
orm_mode = True
class Kintone(BaseModel):
id: int
type: int
name: str = None
desc: str = None
content: str = None
class ConfigDict:
orm_mode = True
class Action(BaseModel):
id: int
name: str = None
title: str = None
subtitle: str = None
outputpoints: str = None
property: str = None
categoryid: int = None
nosort: int
categoryname : str =None
class ConfigDict:
orm_mode = True
class FlowIn(BaseModel):
flowid: str
# domainurl:str
appid: str
appname:str
eventid: str
name: str = None
content: str = None
class Flow(Base):
id: int
flowid: str
appid: str
eventid: str
domainurl: str
name: str = None
content: str = None
class ConfigDict:
orm_mode = True
class DomainBase(BaseModel):
id: int
tenantid: str
name: str
url: str
kintoneuser: str
kintonepwd: str
def encrypt_kintonepwd(self):
encrypted_pwd = chacha20Encrypt(self.kintonepwd)
self.kintonepwd = encrypted_pwd
class Domain(Base):
id: int
tenantid: str
name: str
url: str
kintoneuser: str
kintonepwd: str
class ConfigDict:
orm_mode = True
class Event(Base):
id: int
category: str
type: str
eventid: str
function: str
mobile: bool
eventgroup: bool
class ConfigDict:
orm_mode = True
class ErrorCreate(BaseModel):
title:str
location:str
content:str