usermod/Schemas/UserSchemas.py

60 lines
1.3 KiB
Python
Raw Normal View History

2023-02-07 08:48:41 +08:00
from pydantic import BaseModel, constr
2023-02-07 16:09:57 +08:00
from typing import Union
2023-02-07 08:48:41 +08:00
EMailRegex = constr(regex="^[a-zA-Z0-9_-]+@fecr.com.cn$")
passwordRegex = constr(regex="^(?![A-Za-z0-9]+$)(?![a-z0-9\\W]+$)(?![A-Za-z\\W]+$)(?![A-Z0-9\\W]+$)^.{8,}$")
class ImageCaptchaRes(BaseModel):
captcha_id: str
img_data: str
class LoginReqBody(BaseModel):
email: EMailRegex = "xxxx@fecr.com.cn"
password: passwordRegex = "包含大小写字母和数字长度8-16位"
captcha_id: str
captcha_code: str
app_id: Union[str, None] #
2023-02-07 08:48:41 +08:00
2023-02-07 16:09:57 +08:00
class EmailSendReqBody(BaseModel):
email: EMailRegex = "xxxx@fecr.com.cn"
2023-02-07 08:48:41 +08:00
class UserInfo(BaseModel):
id: str
email: str
2023-02-07 16:09:57 +08:00
name: Union[str, None]
avatar: Union[str, None]
role: Union[str, None]
department: Union[str, None]
post: Union[str, None]
auth_data: Union[str, None]
2023-02-07 08:48:41 +08:00
class LoginResBody(UserInfo):
access_token: str
2023-02-07 16:09:57 +08:00
token_type: str
app_id: Union[str, None] #
2023-02-07 08:48:41 +08:00
class RegisterReqBody(BaseModel):
email: EMailRegex
password: passwordRegex
email_verify_code: str
2023-02-07 16:09:57 +08:00
2023-02-08 14:57:34 +08:00
class RestPasswordReqBody(BaseModel):
email: EMailRegex
email_verify_code: str
2023-02-07 16:09:57 +08:00
class TokenData(BaseModel):
id: str
name: Union[str, None]
role: Union[str, None]
department: Union[str, None]
post: Union[str, None]
auth_data: Union[str, None]