2026-04-17 10:49:14 +08:00
|
|
|
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")
|
2026-04-17 21:28:56 +08:00
|
|
|
match_id: int | str
|
2026-04-17 10:49:14 +08:00
|
|
|
matched_at: str
|
2026-04-17 21:28:56 +08:00
|
|
|
match_status: str
|
|
|
|
|
match_status_text: str
|
|
|
|
|
fail_reason: str | None = None
|
2026-04-17 10:49:14 +08:00
|
|
|
other_user: dict
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class MatchDetailResponse(BaseModel):
|
|
|
|
|
model_config = ConfigDict(extra="ignore")
|
|
|
|
|
match_id: int
|
|
|
|
|
matched_at: str
|
|
|
|
|
other_user: dict
|