40 lines
1.2 KiB
Python
40 lines
1.2 KiB
Python
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
|