"""Post schemas for SocialPhoto API.""" from datetime import datetime from typing import Optional from pydantic import BaseModel, ConfigDict, Field class PostCreate(BaseModel): """Request model for creating a post.""" caption: Optional[str] = "" class PostResponse(BaseModel): """Response model for post data.""" id: int user_id: int username: str image_url: str caption: str likes_count: int dislikes_count: int comments_count: int created_at: datetime model_config = ConfigDict(from_attributes=True) class PostDetail(PostResponse): """Detailed post response with user info.""" user: "UserResponse" # noqa: F821 class CommentCreate(BaseModel): """Request model for creating a comment.""" content: str = Field(..., min_length=1, max_length=500) class CommentResponse(BaseModel): """Response model for comment data.""" id: int post_id: int user_id: int username: str content: str likes_count: int created_at: datetime model_config = ConfigDict(from_attributes=True)