26 lines
551 B
Python
26 lines
551 B
Python
from typing import Generic, TypeVar, Optional, List
|
|
from pydantic import BaseModel, Field
|
|
|
|
T = TypeVar("T")
|
|
|
|
|
|
class ResponseModel(BaseModel, Generic[T]):
|
|
code: int = 200
|
|
message: str = "success"
|
|
data: Optional[T] = None
|
|
|
|
|
|
class ListResponse(BaseModel, Generic[T]):
|
|
code: int = 200
|
|
message: str = "success"
|
|
data: List[T] = []
|
|
total: int = 0
|
|
page: int = 1
|
|
page_size: int = 20
|
|
|
|
|
|
class PageParams(BaseModel):
|
|
page: int = Field(1, ge=1)
|
|
page_size: int = Field(20, ge=1, le=500)
|
|
keyword: Optional[str] = None
|