user-wsc/AppUser/Schemas/UserSchemas.py

72 lines
1.8 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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