UserData.cs 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296
  1. using System;
  2. [Serializable]
  3. public class UserData
  4. {
  5. public int userId;
  6. public string username;
  7. public string email;
  8. public int studyAbility;
  9. public int currentLevel;
  10. public int experience;
  11. public string token;
  12. }
  13. [Serializable]
  14. public class LoginRequest
  15. {
  16. public string username;
  17. public string password;
  18. }
  19. [Serializable]
  20. public class LoginResponse
  21. {
  22. public bool success;
  23. public string message;
  24. public UserData data;
  25. }
  26. [Serializable]
  27. public class UserProfileResponse
  28. {
  29. public bool success;
  30. public string message;
  31. public UserData data;
  32. }
  33. [Serializable]
  34. public class RegisterRequest
  35. {
  36. public string username;
  37. public string password;
  38. public string email;
  39. }
  40. [Serializable]
  41. public class RegisterResponse
  42. {
  43. public bool success;
  44. public string message;
  45. public UserData data;
  46. }
  47. [Serializable]
  48. public class ApiResponse<T>
  49. {
  50. public bool success;
  51. public string message;
  52. public T data;
  53. }
  54. [Serializable]
  55. public class GameSessionData
  56. {
  57. public int userId;
  58. public float playTime;
  59. public int progress;
  60. public int difficulty;
  61. public string sessionDate;
  62. }
  63. [Serializable]
  64. public class GameSessionRequest
  65. {
  66. public float playTime;
  67. public int progress;
  68. public int difficulty;
  69. }
  70. [Serializable]
  71. public class GameSessionResponse
  72. {
  73. public bool success;
  74. public string message;
  75. public GameSessionData data;
  76. }
  77. [Serializable]
  78. public class DifficultyConfig
  79. {
  80. public int difficultyLevel;
  81. public int studyAbilityMin;
  82. public int studyAbilityMax;
  83. public string description;
  84. }
  85. [Serializable]
  86. public class DifficultyConfigResponse
  87. {
  88. public bool success;
  89. public string message;
  90. public DifficultyConfig[] data;
  91. }
  92. [Serializable]
  93. public class QuestionData
  94. {
  95. public int questionId;
  96. public string questionText;
  97. public int correctAnswer;
  98. public int[] wrongAnswers;
  99. public int difficulty;
  100. }
  101. [Serializable]
  102. public class QuestionListResponse
  103. {
  104. public bool success;
  105. public string message;
  106. public QuestionData[] data;
  107. }
  108. [Serializable]
  109. public class GameResultRequest
  110. {
  111. public float playTime;
  112. public int roomsCompleted;
  113. public int correctAnswers;
  114. public int wrongAnswers;
  115. public int difficulty;
  116. public bool isCompleted;
  117. public int goldCollected;
  118. }
  119. [Serializable]
  120. public class GameResultResponse
  121. {
  122. public bool success;
  123. public string message;
  124. public GameResultData data;
  125. }
  126. [Serializable]
  127. public class GameResultData
  128. {
  129. public int userId;
  130. public float playTime;
  131. public int roomsCompleted;
  132. public int correctAnswers;
  133. public int wrongAnswers;
  134. public int difficulty;
  135. public bool isCompleted;
  136. public int goldCollected;
  137. public string createdAt;
  138. public int previousStudyAbility;
  139. public int nextStudyAbility;
  140. public int studyAbilityDelta;
  141. public int rawStudyAbilityDelta;
  142. public int targetDifficulty;
  143. public int nextDifficulty;
  144. public float performanceScore;
  145. }
  146. [Serializable]
  147. public class StudyAbilityRequest
  148. {
  149. public int studyAbility;
  150. }
  151. [Serializable]
  152. public class StudyAbilityResponse
  153. {
  154. public bool success;
  155. public string message;
  156. public StudyAbilityData data;
  157. }
  158. [Serializable]
  159. public class StudyAbilityData
  160. {
  161. public int userId;
  162. public int studyAbility;
  163. public int currentLevel;
  164. public int experience;
  165. }
  166. [Serializable]
  167. public class AchievementSyncRequest
  168. {
  169. public AchievementSyncItem[] achievements;
  170. }
  171. [Serializable]
  172. public class AchievementSyncItem
  173. {
  174. public string achievementId;
  175. public int currentValue;
  176. public bool isUnlocked;
  177. }
  178. [Serializable]
  179. public class AchievementSyncResponse
  180. {
  181. public bool success;
  182. public string message;
  183. public AchievementSyncData[] data;
  184. }
  185. [Serializable]
  186. public class AchievementSyncData
  187. {
  188. public string achievementId;
  189. public int currentValue;
  190. public bool isUnlocked;
  191. public string unlockedAt;
  192. }
  193. [Serializable]
  194. public class GetAchievementsResponse
  195. {
  196. public bool success;
  197. public string message;
  198. public AchievementSyncData[] data;
  199. }
  200. [Serializable]
  201. public class QuestionStatsRequest
  202. {
  203. public int questionId;
  204. public bool isCorrect;
  205. public int difficulty;
  206. }
  207. [Serializable]
  208. public class QuestionAttemptRequest
  209. {
  210. public int questionId;
  211. public bool isCorrect;
  212. public int difficulty;
  213. public string sourceType;
  214. }
  215. [Serializable]
  216. public class QuestionStatsResponse
  217. {
  218. public bool success;
  219. public string message;
  220. public QuestionStatsData data;
  221. }
  222. [Serializable]
  223. public class QuestionStatsData
  224. {
  225. public int questionId;
  226. public int totalAttempts;
  227. public int correctAttempts;
  228. public float correctRate;
  229. }
  230. [Serializable]
  231. public class BaseResponse
  232. {
  233. public bool success;
  234. public string message;
  235. }
  236. [Serializable]
  237. public class AddReviewQuestionRequest
  238. {
  239. public int questionId;
  240. }
  241. [Serializable]
  242. public class LevelUpRequest
  243. {
  244. public int currentLevel;
  245. public int experience;
  246. }
  247. [Serializable]
  248. public class LevelUpResponse
  249. {
  250. public bool success;
  251. public string message;
  252. public LevelUpData data;
  253. }
  254. [Serializable]
  255. public class LevelUpData
  256. {
  257. public int userId;
  258. public int currentLevel;
  259. public int experience;
  260. public int maxHealth;
  261. public int attackPower;
  262. }