from pydantic import BaseModel, Field from datetime import datetime, date from typing import Optional class UserSettingsUpdate(BaseModel): """更新用户设置请求模型""" nickname: Optional[str] = Field(None, max_length=50) avatar: Optional[str] = None signature: Optional[str] = Field(None, max_length=200) birthday: Optional[date] = None email: Optional[str] = Field(None, max_length=100) site_name: Optional[str] = Field(None, max_length=50) theme: Optional[str] = Field(None, max_length=20) language: Optional[str] = Field(None, max_length=10) default_view: Optional[str] = Field(None, max_length=20) default_sort_by: Optional[str] = Field(None, max_length=20) default_sort_order: Optional[str] = Field(None, max_length=10) class UserSettingsResponse(BaseModel): """用户设置响应模型""" id: int nickname: str avatar: Optional[str] = None signature: Optional[str] = None birthday: Optional[date] = None email: Optional[str] = None site_name: str theme: str language: str default_view: str default_sort_by: str default_sort_order: str created_at: datetime updated_at: datetime class Config: from_attributes = True