models.py 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. from pydantic import BaseModel
  2. from typing import List, Optional, Dict, Any
  3. class RegisterRequest(BaseModel):
  4. nickname: str
  5. password: str
  6. class RegisterResponse(BaseModel):
  7. success: bool = True
  8. exception: Optional[Dict[str, str]] = None
  9. nickname: str
  10. accessToken: str
  11. class GameRequest(BaseModel):
  12. accessToken: str
  13. class EnterGameRequest(GameRequest):
  14. gameId: int
  15. class PickRequest(GameRequest):
  16. cards: List[int]
  17. class CardResponse(BaseModel):
  18. id: int
  19. color: int
  20. shape: int
  21. fill: int
  22. count: int
  23. class FieldResponse(BaseModel):
  24. cards: List[CardResponse]
  25. status: str
  26. score: int
  27. class PickResponse(BaseModel):
  28. isSet: bool
  29. score: int
  30. class UserScore(BaseModel):
  31. name: str
  32. score: int
  33. class ScoresResponse(BaseModel):
  34. success: bool = True
  35. exception: Optional[Dict[str, str]] = None
  36. users: List[UserScore]
  37. class GameListResponse(BaseModel):
  38. success: bool = True
  39. exception: Optional[Dict[str, str]] = None
  40. games: List[Dict[str, int]]
  41. class CreateGameResponse(BaseModel):
  42. success: bool = True
  43. exception: Optional[Dict[str, str]] = None
  44. gameId: int
  45. class BaseResponseModel(BaseModel):
  46. success: bool = True
  47. exception: Optional[Dict[str, str]] = None
  48. class WebSocketMessage(BaseModel):
  49. type: str
  50. data: Optional[Dict[str, Any]] = None
  51. accessToken: Optional[str] = None