TASK-001: Setup FastAPI project structure

- 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
This commit is contained in:
OpenClaw Agent
2026-04-16 13:30:35 +00:00
parent 135d4111bb
commit dc17802d74
11 changed files with 126 additions and 116 deletions

48
app/schemas/post.py Normal file
View File

@@ -0,0 +1,48 @@
"""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)