basaHoushanApi/src/schemas/comment.py

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]