40 lines
1007 B
Python
40 lines
1007 B
Python
"""
|
|
通用响应模型
|
|
"""
|
|
from typing import Generic, TypeVar, List, Optional
|
|
from pydantic import BaseModel, Field
|
|
|
|
T = TypeVar("T")
|
|
|
|
|
|
class DeleteResponse(BaseModel):
|
|
"""删除成功响应"""
|
|
success: bool = Field(default=True, description="操作是否成功")
|
|
message: str = Field(description="响应消息")
|
|
|
|
class Config:
|
|
json_schema_extra = {
|
|
"example": {
|
|
"success": True,
|
|
"message": "删除成功"
|
|
}
|
|
}
|
|
|
|
|
|
class PaginatedResponse(BaseModel, Generic[T]):
|
|
"""分页列表响应"""
|
|
items: List[T] = Field(description="数据列表")
|
|
total: int = Field(description="总记录数")
|
|
skip: int = Field(description="跳过的记录数")
|
|
limit: int = Field(description="返回的记录数")
|
|
|
|
class Config:
|
|
json_schema_extra = {
|
|
"example": {
|
|
"items": [],
|
|
"total": 0,
|
|
"skip": 0,
|
|
"limit": 20
|
|
}
|
|
}
|