daily/Schemas/UserSchemas.py

156 lines
3.0 KiB
Python

from enum import unique, Enum
from pydantic import BaseModel
from typing import Union, Optional, List
@unique
class DepartmentTypeEnum(Enum):
enum01 = "董监高"
enum02 = "评级部门"
enum03 = "业务部门"
enum04 = "研发部门"
enum05 = "职能部门"
enum06 = "战略部门"
enum07 = "子分公司"
enum08 = "质量部门"
class LoginToAppReq(BaseModel):
code: str
class LoginToAppRes(BaseModel):
email: str
# registered: bool
# token: str
class ChangeUserDailyFillNoticeReq(BaseModel):
daily_fill_notice: bool
class GetUserInfoReq(BaseModel):
code: str
class DepartmentInfo(BaseModel):
id: int
belong: Optional[int]
name: str
type: Optional[DepartmentTypeEnum]
sub_type: Optional[str]
class PostInfo(BaseModel):
id: int
belong: int
name: str
class GetUserInfoRes(BaseModel):
email: Optional[str]
post: Optional[str]
phone: Optional[str]
openid: Optional[str]
post_list: Optional[List[PostInfo]]
name: Optional[str]
department: Optional[str]
daily_fill_notice: Optional[bool]
manage_departments: Optional[str]
department_list: Optional[List[DepartmentInfo]]
registered: Optional[bool]
auth_data: Optional[str]
class TokenData(BaseModel):
email: str
registered: bool
auth_data: Union[str, None]
department: Union[str, None]
manage_departments: Optional[str]
post: Union[str, None]
class UserInfoChange(BaseModel):
email: str
name: Optional[str]
post: Optional[str]
openid: Optional[str]
daily_fill_notice: Optional[bool]
manage_departments: Optional[str]
department: Optional[str]
registered: Optional[bool]
phone: Optional[str]
class UserInfo(BaseModel):
email: str
name: str
post: str
phone: Optional[str]
daily_fill_notice: Optional[bool]
openid: Optional[str]
manage_departments: Optional[str]
department: Optional[str]
registered: Optional[bool]
class UserFullInfo(BaseModel):
email: Optional[str]
post: Optional[str]
post_list: Optional[List[PostInfo]]
name: Optional[str]
phone: Optional[str]
openid: Optional[str]
department: Optional[str]
daily_fill_notice: Optional[bool]
daily_fill_notice: Optional[bool]
manage_departments: Optional[str]
department_list: Optional[List[DepartmentInfo]]
class ChangeUserInfoReq(UserInfoChange):
email_code: str
class BindEmailReq(BaseModel):
email: str = "xxxx@fecr.com.cn"
email_code: str
class EmailSendReqBody(BaseModel):
email: str = "xxxx@fecr.com.cn"
class LoginByPhoneReq(BaseModel):
phone: str
code: str
class SetUserOpenidReq(BaseModel):
# openid: str
code:str
class GetPhoneVerifyCodeReq(BaseModel):
phone: str
class GetUserByDepartmentReq(BaseModel):
departments: List[int]
class GetUserByDepartmentRes(BaseModel):
users: List[UserInfo]
class GetUserByDepartmentTypeRes(BaseModel):
users: List[UserFullInfo]
class GetUserByDepartmentTypeReq(BaseModel):
department_type: str