affection.py 770 B

1234567891011121314151617181920212223242526272829303132333435
  1. """
  2. 好感度相关Schema
  3. """
  4. from pydantic import BaseModel
  5. from typing import Optional, List
  6. from datetime import datetime
  7. class AffectionScoreResponse(BaseModel):
  8. """好感度响应Schema"""
  9. character_id: int
  10. current_score: int
  11. level: str
  12. next_level_score: Optional[int]
  13. total_interactions: int
  14. last_interaction: Optional[datetime]
  15. class Config:
  16. from_attributes = True
  17. class AffectionLogResponse(BaseModel):
  18. """好感度变化记录Schema"""
  19. id: int
  20. score_change: int
  21. reason: Optional[str]
  22. created_at: datetime
  23. class Config:
  24. from_attributes = True
  25. class AffectionDetailResponse(AffectionScoreResponse):
  26. """好感度详情Schema"""
  27. recent_changes: List[AffectionLogResponse] = []