package model type PlayerProfile struct { ID int `json:"id"` Level int `json:"level"` XP int `json:"xp"` XPToNext int `json:"xp_to_next"` } type XPEvent struct { ID int `json:"id"` EventType string `json:"event_type"` XPEarned int `json:"xp_earned"` Description string `json:"description"` CreatedAt string `json:"created_at"` } type Quest struct { ID int `json:"id"` Title string `json:"title"` Description string `json:"description"` QuestType string `json:"quest_type"` TargetCount *int `json:"target_count"` TargetPct *float64 `json:"target_pct"` XPReward int `json:"xp_reward"` } type PlayerQuest struct { ID int `json:"id"` QuestID int `json:"quest_id"` Title string `json:"title"` QuestType string `json:"quest_type"` TargetCount *int `json:"target_count"` TargetPct *float64 `json:"target_pct"` XPReward int `json:"xp_reward"` Period string `json:"period"` CurrentCount int `json:"current_count"` CurrentPct float64 `json:"current_pct"` Completed bool `json:"completed"` Claimed bool `json:"claimed"` } type Achievement struct { ID int `json:"id"` Title string `json:"title"` Description string `json:"description"` Icon string `json:"icon"` XPReward int `json:"xp_reward"` UnlockCondition string `json:"unlock_condition"` Earned bool `json:"earned"` EarnedAt string `json:"earned_at,omitempty"` } type Cosmetic struct { ID int `json:"id"` Name string `json:"name"` Type string `json:"type"` UnlockLevel int `json:"unlock_level"` CSSData string `json:"css_data"` Unlocked bool `json:"unlocked"` Equipped bool `json:"equipped"` } type GameSummary struct { Profile PlayerProfile `json:"profile"` ActiveQuests []PlayerQuest `json:"active_quests"` RecentAchievements []Achievement `json:"recent_achievements"` EquippedCosmetics []Cosmetic `json:"equipped_cosmetics"` }