57 lines
922 B
Python
57 lines
922 B
Python
from uuid import UUID
|
|
from pydantic import BaseModel
|
|
from datetime import datetime
|
|
from typing import Literal
|
|
|
|
|
|
class CommentUser(BaseModel):
|
|
id: UUID
|
|
name: str | None
|
|
image: str | None
|
|
username: str | None
|
|
|
|
|
|
class CommentBase(BaseModel):
|
|
id: int
|
|
text: str
|
|
image: str | None
|
|
created_at: datetime
|
|
|
|
|
|
class NewComment(BaseModel):
|
|
comment: CommentBase
|
|
|
|
|
|
class Comment(CommentBase):
|
|
replies: int
|
|
likes: int
|
|
dislikes: int
|
|
user_feedback: int
|
|
user: CommentUser
|
|
|
|
|
|
class Reply(CommentBase):
|
|
likes: int
|
|
dislikes: int
|
|
user_feedback: int
|
|
user: CommentUser
|
|
replied_user: CommentUser
|
|
|
|
|
|
class Comments(BaseModel):
|
|
comments: list[Comment]
|
|
page: int
|
|
total_count: int
|
|
last_page: int
|
|
|
|
|
|
class Replies(BaseModel):
|
|
replies: list[Reply]
|
|
page: int
|
|
total_count: int
|
|
last_page: int
|
|
|
|
|
|
class Feedback(BaseModel):
|
|
status: Literal[-1, 0, 1]
|