fix: improve friendships schemas type safety and consistency

This commit is contained in:
qzl
2026-02-28 11:35:13 +08:00
parent 598c6c2ec5
commit 0dfc52cbf7
+12 -8
View File
@@ -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