45 lines
1.1 KiB
Python
45 lines
1.1 KiB
Python
from pydantic import BaseModel, ConfigDict
|
|
|
|
|
|
class MatchCandidateItem(BaseModel):
|
|
model_config = ConfigDict(extra="ignore")
|
|
user_id: int
|
|
nickname: str | None = None
|
|
birth_year_range: str | None = None
|
|
city: str | None = None
|
|
personality_tags: list[str] | None = None
|
|
avatar_blur_url: str | None = None
|
|
match_score: float | None = None
|
|
match_reasons: list[str] | None = None
|
|
|
|
|
|
class MatchLikeRequest(BaseModel):
|
|
model_config = ConfigDict(extra="ignore")
|
|
to_user_id: int
|
|
source: str = "manual"
|
|
activity_id: int | None = None
|
|
|
|
|
|
class MatchLikeResponse(BaseModel):
|
|
model_config = ConfigDict(extra="ignore")
|
|
is_mutual: bool
|
|
match_id: int | None = None
|
|
match_info: dict | None = None
|
|
|
|
|
|
class MyMatchItem(BaseModel):
|
|
model_config = ConfigDict(extra="ignore")
|
|
match_id: int | str
|
|
matched_at: str
|
|
match_status: str
|
|
match_status_text: str
|
|
fail_reason: str | None = None
|
|
other_user: dict
|
|
|
|
|
|
class MatchDetailResponse(BaseModel):
|
|
model_config = ConfigDict(extra="ignore")
|
|
match_id: int
|
|
matched_at: str
|
|
other_user: dict
|