Files
YuShiSheJiShi/backend/app/schemas/user.py
032c43525a feat(ai): 支持双模型多视角AI设计生图与后台管理系统
- 实现AI多视角设计图生成功能,支持6个可选设计参数配置
- 集成SiliconFlow FLUX.1与火山引擎Seedream 4.5双模型切换
- 构建专业中文转英文prompt系统,提升AI生成质量
- 前端设计预览支持多视角切换与视角指示器展示
- 增加多视角设计图片DesignImage模型关联及存储
- 后端设计服务异步调用AI接口,失败时降级生成mock图
- 新增管理员后台管理路由及完整的权限校验机制
- 实现后台模块:仪表盘、系统配置、用户/品类/设计管理
- 配置数据库系统配置表,支持动态AI配置及热更新
- 增加用户管理员标识字段,管理后台登录鉴权支持
- 更新API接口支持多视角设计参数及后台管理接口
- 优化设计删除逻辑,删除多视角相关图片文件
- 前端新增管理后台页面与路由,布局样式独立分离
- 更新环境变量增加AI模型相关Key与参数配置说明
- 引入httpx异步HTTP客户端用于AI接口调用及图片下载
- README文档完善AI多视角生图与后台管理详细功能与流程说明
2026-03-27 15:29:50 +08:00

53 lines
1.5 KiB
Python

"""
用户相关 Pydantic Schemas
"""
from pydantic import BaseModel, Field
from datetime import datetime
from typing import Optional
class UserCreate(BaseModel):
"""用户注册请求"""
username: str = Field(..., min_length=2, max_length=50, description="用户名")
password: str = Field(..., min_length=6, max_length=100, description="密码")
nickname: Optional[str] = Field(None, max_length=50, description="昵称")
class UserLogin(BaseModel):
"""用户登录请求"""
username: str = Field(..., description="用户名")
password: str = Field(..., description="密码")
class UserResponse(BaseModel):
"""用户响应"""
id: int
username: str
nickname: Optional[str] = None
phone: Optional[str] = None
avatar: Optional[str] = None
is_admin: bool = False
created_at: datetime
class Config:
from_attributes = True
class Token(BaseModel):
"""认证令牌响应"""
access_token: str
token_type: str = "bearer"
class UserUpdate(BaseModel):
"""用户信息更新请求"""
nickname: Optional[str] = Field(None, max_length=50, description="昵称")
phone: Optional[str] = Field(None, max_length=20, description="手机号")
avatar: Optional[str] = Field(None, max_length=255, description="头像URL")
class PasswordChange(BaseModel):
"""修改密码请求"""
old_password: str = Field(..., description="旧密码")
new_password: str = Field(..., min_length=6, max_length=100, description="新密码")