using System; [Serializable] public class UserData { public int userId; public string username; public string email; public int studyAbility; public int currentLevel; public int experience; public string token; } [Serializable] public class LoginRequest { public string username; public string password; } [Serializable] public class LoginResponse { public bool success; public string message; public UserData data; } [Serializable] public class UserProfileResponse { public bool success; public string message; public UserData data; } [Serializable] public class RegisterRequest { public string username; public string password; public string email; } [Serializable] public class RegisterResponse { public bool success; public string message; public UserData data; } [Serializable] public class ApiResponse { public bool success; public string message; public T data; } [Serializable] public class GameSessionData { public int userId; public float playTime; public int progress; public int difficulty; public string sessionDate; } [Serializable] public class GameSessionRequest { public float playTime; public int progress; public int difficulty; } [Serializable] public class GameSessionResponse { public bool success; public string message; public GameSessionData data; } [Serializable] public class DifficultyConfig { public int difficultyLevel; public int studyAbilityMin; public int studyAbilityMax; public string description; } [Serializable] public class DifficultyConfigResponse { public bool success; public string message; public DifficultyConfig[] data; } [Serializable] public class QuestionData { public int questionId; public string questionText; public int correctAnswer; public int[] wrongAnswers; public int difficulty; } [Serializable] public class QuestionListResponse { public bool success; public string message; public QuestionData[] data; } [Serializable] public class GameResultRequest { public float playTime; public int roomsCompleted; public int correctAnswers; public int wrongAnswers; public int difficulty; public bool isCompleted; public int goldCollected; } [Serializable] public class GameResultResponse { public bool success; public string message; public GameResultData data; } [Serializable] public class GameResultData { public int userId; public float playTime; public int roomsCompleted; public int correctAnswers; public int wrongAnswers; public int difficulty; public bool isCompleted; public int goldCollected; public string createdAt; public int previousStudyAbility; public int nextStudyAbility; public int studyAbilityDelta; public int rawStudyAbilityDelta; public int targetDifficulty; public int nextDifficulty; public float performanceScore; } [Serializable] public class StudyAbilityRequest { public int studyAbility; } [Serializable] public class StudyAbilityResponse { public bool success; public string message; public StudyAbilityData data; } [Serializable] public class StudyAbilityData { public int userId; public int studyAbility; public int currentLevel; public int experience; } [Serializable] public class AchievementSyncRequest { public AchievementSyncItem[] achievements; } [Serializable] public class AchievementSyncItem { public string achievementId; public int currentValue; public bool isUnlocked; } [Serializable] public class AchievementSyncResponse { public bool success; public string message; public AchievementSyncData[] data; } [Serializable] public class AchievementSyncData { public string achievementId; public int currentValue; public bool isUnlocked; public string unlockedAt; } [Serializable] public class GetAchievementsResponse { public bool success; public string message; public AchievementSyncData[] data; } [Serializable] public class QuestionStatsRequest { public int questionId; public bool isCorrect; public int difficulty; } [Serializable] public class QuestionAttemptRequest { public int questionId; public bool isCorrect; public int difficulty; public string sourceType; } [Serializable] public class QuestionStatsResponse { public bool success; public string message; public QuestionStatsData data; } [Serializable] public class QuestionStatsData { public int questionId; public int totalAttempts; public int correctAttempts; public float correctRate; } [Serializable] public class BaseResponse { public bool success; public string message; } [Serializable] public class AddReviewQuestionRequest { public int questionId; } [Serializable] public class LevelUpRequest { public int currentLevel; public int experience; } [Serializable] public class LevelUpResponse { public bool success; public string message; public LevelUpData data; } [Serializable] public class LevelUpData { public int userId; public int currentLevel; public int experience; public int maxHealth; public int attackPower; }