from datetime import date from typing import Any, Optional from pydantic import BaseModel, Field # 会员表单验证 class MemberForm(BaseModel): id: Optional[int] = Field(None, description="会员ID") realname: str = Field(..., min_length=1, max_length=150, description="会员姓名") nickname: str = Field(..., min_length=1, max_length=150, description="会员昵称") gender: int = Field(..., ge=1, le=3, description="性别") avatar: str = Field(..., min_length=1, max_length=255, description="头像") birthday: date = Field(..., description="出生日期") email: str = Field(..., min_length=1, max_length=30, description="邮箱") city: Any = Field(..., description="行政区划") province_code: Optional[str] = Field(None, max_length=30, description="省份编码") city_code: Optional[str] = Field(None, max_length=30, description="城市编码") district_code: Optional[str] = Field(None, max_length=30, description="县区编码") address: str = Field(..., min_length=1, max_length=255, description="详细地址") username: str = Field(..., min_length=1, max_length=30, description="登录账号") password: Optional[str] = Field(None, max_length=255, description="登录密码") member_level: int = Field(..., ge=0, description="会员等级") intro: Optional[str] = Field(None, max_length=255, description="个人简介") signature: Optional[str] = Field(None, max_length=255, description="个人签名") source: int = Field(..., ge=1, le=5, description="注册来源") status: int = Field(..., ge=1, le=2, description="会员状态") # 设置状态表单 class MemberStatusForm(BaseModel): id: int = Field(..., gt=0, description="会员ID") status: int = Field(..., ge=1, le=2, description="会员状态") from typing import Optional from pydantic import BaseModel, Field # 会员等级表单验证 class MemberLevelForm(BaseModel): id: Optional[int] = Field(None, description="会员等级ID") name: str = Field(..., min_length=1, max_length=255, description="会员等级名称") sort: int = Field(..., ge=0, le=99999, description="会员等级排序")