using Microsoft.EntityFrameworkCore; using RadicadeServer.RecNet.Avatar; namespace RadicadeServer.RecNet.Progression.Challenges; [PrimaryKey(nameof(PlayerId), nameof(ChallengeMapId))] public class WeeklyChallengeState { public long PlayerId { get; set; } public int ChallengeMapId { get; set; } public string MapJson { get; set; } = ""; public long? RewardGiftDropId { get; set; } } public class WeeklyChallengeMap { public bool Enabled { get; set; } = true; public string Revision { get; set; } = ""; public int FallbackTokens { get; set; } = 300; public int ChallengeMapId { get; set; } public string ChallengeThemeString { get; set; } = "Weekly Challenges"; public List Challenges { get; set; } = []; public Gift Gift { get; set; } = new(); public string FallbackGiftName { get; set; } = "300 Tokens"; public DateTime StartAt { get; set; } public DateTime EndAt { get; set; } public DateTime ServerTime { get; set; } public bool CompletedRequired { get; set; } } public class WeeklyChallenge { public int ChallengeId { get; set; } public string Name { get; set; } = ""; public string Description { get; set; } = ""; public string Tooltip { get; set; } = ""; public string Config { get; set; } = ""; public bool Complete { get; set; } }