diff --git a/backend/src/v1/friendships/schemas.py b/backend/src/v1/friendships/schemas.py index f1355f7..b9b8ee2 100644 --- a/backend/src/v1/friendships/schemas.py +++ b/backend/src/v1/friendships/schemas.py @@ -1,38 +1,42 @@ from __future__ import annotations from datetime import datetime -from typing import Optional +from typing import ClassVar, Literal from uuid import UUID -from pydantic import BaseModel, Field +from pydantic import BaseModel, ConfigDict, Field class UserBasicInfo(BaseModel): id: str username: str - avatar_url: Optional[str] = None + avatar_url: str | None = None class FriendRequestCreate(BaseModel): + model_config: ClassVar[ConfigDict] = ConfigDict(extra="forbid") + target_user_id: UUID - content: Optional[str] = Field(None, max_length=200) + content: str | None = Field(None, max_length=200) class FriendRequestResponse(BaseModel): id: UUID sender: UserBasicInfo recipient: UserBasicInfo - content: Optional[str] - status: str + content: str | None + status: Literal["pending", "accepted", "rejected"] created_at: datetime class FriendResponse(BaseModel): id: UUID friend: UserBasicInfo - status: str + status: Literal["active"] created_at: datetime - accepted_at: Optional[datetime] + accepted_at: datetime | None class FriendRequestAction(BaseModel): + model_config: ClassVar[ConfigDict] = ConfigDict(extra="forbid") + pass