49 lines
1.0 KiB
Python
49 lines
1.0 KiB
Python
from datetime import datetime
|
|
|
|
from pydantic import BaseModel
|
|
from typing import Optional, List
|
|
|
|
from schemas.comment import CommentResponse
|
|
from schemas.user import UserResponse
|
|
|
|
|
|
class RecordCreate(BaseModel):
|
|
user_id: int
|
|
content: str
|
|
image_list: List[str] = []
|
|
video_list: List[str] = []
|
|
|
|
|
|
class RecordUpdate(BaseModel):
|
|
content: Optional[str] = None
|
|
image_list: Optional[List[str]] = None
|
|
video_list: Optional[List[str]] = None
|
|
|
|
|
|
class RecordResponse(BaseModel):
|
|
id: int
|
|
user: UserResponse
|
|
content: str
|
|
image_list: List[str]
|
|
video_list: List[str]
|
|
like_count: int
|
|
comment_count: int
|
|
comments: List[CommentResponse] = []
|
|
create_time: datetime
|
|
update_time: datetime
|
|
|
|
model_config = {
|
|
"from_attributes": True,
|
|
"json_encoders": {
|
|
datetime: lambda dt: dt.strftime("%Y-%m-%d %H:%M:%S")
|
|
}
|
|
}
|
|
|
|
|
|
class RecordPageResponse(BaseModel):
|
|
records: List[RecordResponse]
|
|
total: int
|
|
page: int
|
|
size: int
|
|
pages: int
|