Spaces:
Running
Running
File size: 2,444 Bytes
d5dffcf d3ae963 c76aa8d d3ae963 d5dffcf d3ae963 d5dffcf d3ae963 d5dffcf d3ae963 d5dffcf 90d7999 71ce6d2 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 | from pydantic import BaseModel
from typing import Optional
# 【新增】:发送验证码的请求模型
class SendCodeRequest(BaseModel):
contact: str
contact_type: str # "email" 或 "phone"
action_type: str # "register" 或 "reset"
account: Optional[str] = None # 【新增】:仅重置密码时需要传,用于校验身份
class UserRegister(BaseModel):
account: str
password: str
email: str
phone: str
name: str
gender: str
code: str # 【新增】:注册验证码
avatarDataUrl: Optional[str] = None
age: Optional[int] = None
country: Optional[str] = None
region: Optional[str] = None
intro: Optional[str] = None
class UserLogin(BaseModel):
account: str
password: str
class UserUpdate(BaseModel):
name: Optional[str] = None
intro: Optional[str] = None
age: Optional[int] = None
country: Optional[str] = None
region: Optional[str] = None
gender: Optional[str] = None
avatarDataUrl: Optional[str] = None
class PasswordReset(BaseModel):
old_password: Optional[str] = None # 找回密码时此项可为空
new_password: str
verify_contact: str # 【新增】:接收验证码的邮箱或手机号
verify_type: str # 【新增】:"email" 或 "phone"
code: str # 【新增】:重置验证码
class InteractionToggle(BaseModel):
item_id: str
user_id: str
action_type: str
is_active: bool
class CommentCreate(BaseModel):
item_id: str
author: str
content: str
reply_to_user: Optional[str] = None
parent_id: Optional[str] = None
class ItemCreate(BaseModel):
type: str
title: str
shortDesc: str
fullDesc: str
link: str
coverUrl: Optional[str] = None
author: str
price: float = 0.0
class FollowToggle(BaseModel):
user_id: str
target_account: str
is_active: bool
class PrivateMessage(BaseModel):
sender: str
receiver: str
content: str
class PrivacySettings(BaseModel):
follows: bool
likes: bool
favorites: bool
downloads: bool
class ItemUpdate(BaseModel):
title: Optional[str] = None
shortDesc: Optional[str] = None
fullDesc: Optional[str] = None
link: Optional[str] = None
coverUrl: Optional[str] = None
price: Optional[float] = None |