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]