user-wsc/AppUser/Schemas/UserSchemas.py

72 lines
1.8 KiB
Python
Raw Normal View History

2022-11-07 13:53:42 +08:00
from typing import Optional, List
from pydantic import BaseModel, constr
from AppUser.Schemas.DepartmentSchema import DepartmentIDRegex
from AppUser.Schemas.RoleSchema import RoleIDRegex
EMailRegex = constr(regex="^[a-zA-Z0-9_-]+@fecr.com.cn$")
PasswdRegex = constr(regex="^(?![A-Za-z0-9]+$)(?![a-z0-9\\W]+$)(?![A-Za-z\\W]+$)(?![A-Z0-9\\W]+$)^.{8,}$")
class CreateReqBody(BaseModel):
email: EMailRegex = "xxxx@fecr.com.cn"
name: str
role_id: RoleIDRegex = "ROLE01"
department_id: DepartmentIDRegex = "D001"
class FullUserResBody(BaseModel):
id: str
email: EMailRegex = "xxxx@fecr.com.cn"
name: str = "用户"
avatar: str
role: str = "guest"
department: str
is_active: bool
class EditReqBody(BaseModel):
name: Optional[str]
role_id: Optional[RoleIDRegex]
department_id: Optional[DepartmentIDRegex]
is_active: Optional[bool]
def del_null_value(self):
_dict = self.dict()
for key in list(_dict.keys()):
if not _dict.get(key):
del _dict[key]
return _dict
class ResetPwdReqBody(BaseModel):
passwd: PasswdRegex = "包含大小写字母和数字长度8-16位"
class LoginReqBody(BaseModel):
email: EMailRegex = "xxxx@fecr.com.cn"
passwd: PasswdRegex = "包含大小写字母和数字长度8-16位"
verify_code: str
class DetailResBody(BaseModel):
id: str
email: EMailRegex = "xxxx@fecr.com.cn"
name: str = "用户"
avatar: str
role: str = "guest"
department: str
class SearchReqBody(BaseModel):
email: Optional[str] = None
name: Optional[str] = None
role_id: Optional[RoleIDRegex] = None
department_id: Optional[DepartmentIDRegex] = None
class SearchResultResBody(BaseModel):
result: List[FullUserResBody]
total: int