feat(api): add Pydantic schemas
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
from datetime import datetime
|
||||
|
||||
from pydantic import BaseModel
|
||||
|
||||
|
||||
class JokeBase(BaseModel):
|
||||
title: str
|
||||
content: str
|
||||
type_id: int | None = None
|
||||
crowd_id: int | None = None
|
||||
|
||||
|
||||
class JokeCreate(JokeBase):
|
||||
pass
|
||||
|
||||
|
||||
class JokeUpdate(BaseModel):
|
||||
title: str | None = None
|
||||
content: str | None = None
|
||||
type_id: int | None = None
|
||||
crowd_id: int | None = None
|
||||
status: str | None = None
|
||||
|
||||
|
||||
class JokeResponse(JokeBase):
|
||||
id: int
|
||||
status: str
|
||||
view_count: int
|
||||
like_count: int
|
||||
created_at: datetime
|
||||
updated_at: datetime
|
||||
type_name: str | None = None
|
||||
crowd_name: str | None = None
|
||||
|
||||
class Config:
|
||||
from_attributes = True
|
||||
|
||||
|
||||
class PaginatedJokeResponse(BaseModel):
|
||||
items: list[JokeResponse]
|
||||
total: int
|
||||
page: int
|
||||
page_size: int
|
||||
Reference in New Issue
Block a user