"""Pydantic schemas for comments. This module defines Pydantic models for comment request/response validation in the API layer. """ from datetime import datetime from uuid import UUID from pydantic import BaseModel, Field class CommentCreateSchema(BaseModel): """Schema for creating a comment. Attributes: content: Comment text content (Markdown supported). parent_id: Optional parent comment ID for replies. """ content: str = Field(..., min_length=1, max_length=5000, description="Comment content") parent_id: UUID | None = Field(default=None, description="Parent comment ID for replies") class CommentResponseSchema(BaseModel): """Schema for comment response. Attributes: id: Unique comment identifier. post_id: UUID of the parent post. author_id: Comment author identifier. content: Comment content text. parent_id: Optional parent comment ID. like_count: Number of likes on this comment. created_at: Creation timestamp. updated_at: Last update timestamp. """ id: UUID post_id: UUID author_id: str content: str parent_id: UUID | None = None like_count: int = 0 created_at: datetime | None = None updated_at: datetime | None = None class CommentLikeResponseSchema(BaseModel): """Schema for comment like response. Attributes: id: Comment identifier. like_count: Updated like count. """ id: UUID like_count: int