initial commit - LeDiscord plateforme des copains

This commit is contained in:
EvanChal
2025-08-21 00:28:21 +02:00
commit b7a84a53aa
93 changed files with 16247 additions and 0 deletions

54
backend/schemas/post.py Normal file
View File

@@ -0,0 +1,54 @@
from pydantic import BaseModel, Field
from typing import Optional, List
from datetime import datetime
class PostBase(BaseModel):
content: str = Field(..., min_length=1, max_length=5000)
class PostCreate(PostBase):
image_url: Optional[str] = None
mentioned_user_ids: List[int] = []
class PostUpdate(BaseModel):
content: Optional[str] = Field(None, min_length=1, max_length=5000)
image_url: Optional[str] = None
class PostCommentCreate(BaseModel):
content: str = Field(..., min_length=1, max_length=500)
class MentionedUser(BaseModel):
id: int
username: str
full_name: str
avatar_url: Optional[str]
class Config:
from_attributes = True
class PostCommentResponse(BaseModel):
id: int
content: str
author_id: int
author_name: str
author_avatar: Optional[str]
created_at: datetime
class Config:
from_attributes = True
class PostResponse(PostBase):
id: int
author_id: int
author_name: str
author_avatar: Optional[str]
image_url: Optional[str]
likes_count: int = 0
comments_count: int = 0
is_liked: Optional[bool] = None
created_at: datetime
updated_at: datetime
mentioned_users: List[MentionedUser] = []
comments: List[PostCommentResponse] = []
class Config:
from_attributes = True