- Fixed main.py to include all route routers (posts, users, comments, feed) - Renamed app/models.py to app/schemas.py and split into proper schema modules - Fixed schema imports in routes - Updated app/models/__init__.py to properly export SQLAlchemy models - Fixed database imports in route files - App imports and runs correctly
49 lines
1.1 KiB
Python
49 lines
1.1 KiB
Python
"""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)
|