72 lines
1.8 KiB
Python
72 lines
1.8 KiB
Python
|
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
|