using System.Text.Json.Serialization; namespace LeagueAPI.Models.Challenges; public record class LolChallengesUIChallenge { [JsonPropertyName("id")] public long Id { get; init; } [JsonPropertyName("name")] public string? Name { get; init; } [JsonPropertyName("description")] public string? Description { get; init; } [JsonPropertyName("descriptionShort")] public string? DescriptionShort { get; init; } [JsonPropertyName("iconPath")] public string? IconPath { get; init; } [JsonPropertyName("category")] public string? Category { get; init; } [JsonPropertyName("nextLevelIconPath")] public string? NextLevelIconPath { get; init; } [JsonPropertyName("currentLevel")] public string? CurrentLevel { get; init; } [JsonPropertyName("nextLevel")] public string? NextLevel { get; init; } [JsonPropertyName("previousLevel")] public string? PreviousLevel { get; init; } [JsonPropertyName("previousValue")] public double PreviousValue { get; init; } [JsonPropertyName("currentValue")] public double CurrentValue { get; init; } [JsonPropertyName("currentThreshold")] public double CurrentThreshold { get; init; } [JsonPropertyName("nextThreshold")] public double NextThreshold { get; init; } [JsonPropertyName("pointsAwarded")] public long PointsAwarded { get; init; } [JsonPropertyName("percentile")] public double Percentile { get; init; } [JsonPropertyName("currentLevelAchievedTime")] public long CurrentLevelAchievedTime { get; init; } [JsonPropertyName("position")] public int Position { get; init; } [JsonPropertyName("playersInLevel")] public int PlayersInLevel { get; init; } [JsonPropertyName("isApex")] public bool IsApex { get; init; } [JsonPropertyName("isCapstone")] public bool IsCapstone { get; init; } [JsonPropertyName("gameModes")] public string[]? GameModes { get; init; } [JsonPropertyName("friendsAtLevels")] public LolChallengesFriendLevelsData[]? FriendsAtLevels { get; init; } [JsonPropertyName("parentId")] public long ParentId { get; init; } [JsonPropertyName("parentName")] public string? ParentName { get; init; } [JsonPropertyName("childrenIds")] public long[]? ChildrenIds { get; init; } [JsonPropertyName("capstoneGroupId")] public long CapstoneGroupId { get; init; } [JsonPropertyName("capstoneGroupName")] public string? CapstoneGroupName { get; init; } [JsonPropertyName("source")] public string? Source { get; init; } [JsonPropertyName("thresholds")] public object? Thresholds { get; init; } [JsonPropertyName("levelToIconPath")] public Dictionary? LevelToIconPath { get; init; } [JsonPropertyName("valueMapping")] public string? ValueMapping { get; init; } [JsonPropertyName("hasLeaderboard")] public bool HasLeaderboard { get; init; } [JsonPropertyName("isReverseDirection")] public bool IsReverseDirection { get; init; } [JsonPropertyName("priority")] public double Priority { get; init; } [JsonPropertyName("idListType")] public string? IdListType { get; init; } [JsonPropertyName("availableIds")] public int[]? AvailableIds { get; init; } [JsonPropertyName("completedIds")] public int[]? CompletedIds { get; init; } [JsonPropertyName("retireTimestamp")] public long RetireTimestamp { get; init; } }