using MessagePack; using System.Text.Json.Serialization; namespace SVSim.EmulatedEntrypoint.Models.Dtos; /// /// Master Points season window. Client only reads end_time at /mypage/index /// (MyPageTask.cs:113-114) when _masterResetNextTime hasn't been set yet, but /// prod also emits id / period_num / necessary_score / begin_time — we mirror /// them so the wire shape matches. /// [MessagePackObject] public class MasterPointRankingPeriod { [JsonPropertyName("id")] [Key("id")] public int Id { get; set; } [JsonPropertyName("period_num")] [Key("period_num")] public int PeriodNum { get; set; } /// Stored as long to mirror MasterPointRankingPeriodEntry.NecessaryScore (rank-point thresholds can grow large). [JsonPropertyName("necessary_score")] [Key("necessary_score")] public long NecessaryScore { get; set; } /// ISO datetime. [JsonPropertyName("begin_time")] [Key("begin_time")] public string BeginTime { get; set; } = string.Empty; /// ISO datetime. Required — client calls DateTime.Parse on it. [JsonPropertyName("end_time")] [Key("end_time")] public string EndTime { get; set; } = string.Empty; }