27 lines
853 B
Python
27 lines
853 B
Python
from enum import Enum
|
|
|
|
from pydantic import BaseModel, Field
|
|
|
|
|
|
class SmsScene(str, Enum):
|
|
register = "register"
|
|
login = "login"
|
|
set_password = "set_password"
|
|
|
|
|
|
class SmsSendRequest(BaseModel):
|
|
phone: str = Field(..., pattern=r"^1[3-9]\d{9}$", description="手机号")
|
|
scene: SmsScene = Field(..., description="短信场景:register=注册,login=短信登录,set_password=设置密码")
|
|
captcha_token: str | None = Field(None, description="图形验证码令牌,正式环境按配置要求传入")
|
|
|
|
|
|
class SmsVerifyRequest(BaseModel):
|
|
phone: str = Field(..., pattern=r"^1[3-9]\d{9}$", description="手机号")
|
|
scene: SmsScene = Field(..., description="短信场景")
|
|
code: str = Field(..., min_length=4, max_length=8, description="验证码")
|
|
|
|
|
|
class SmsResponse(BaseModel):
|
|
message: str
|
|
success: bool
|