From f9f5b0dfa4c55f28cbc876c5706a591507f92c83 Mon Sep 17 00:00:00 2001 From: gamer147 Date: Sat, 30 May 2026 21:43:27 -0400 Subject: [PATCH] feat(packs): add PackDraw seed DTOs and IsEnabled on PackSeed MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Three new seed DTOs (PackDrawConfigSeed, PackDrawSlotRateSeed, PackDrawCardWeightSeed) — slot and tier carried as strings, importer translates to enum. PackSeed gains is_enabled (defaults true so existing seeds remain enabled). Co-Authored-By: Claude Opus 4.7 --- .../Models/Seed/PackDrawCardWeightSeed.cs | 14 ++++++++++++++ SVSim.Bootstrap/Models/Seed/PackDrawConfigSeed.cs | 12 ++++++++++++ .../Models/Seed/PackDrawSlotRateSeed.cs | 11 +++++++++++ SVSim.Bootstrap/Models/Seed/PackSeed.cs | 1 + 4 files changed, 38 insertions(+) create mode 100644 SVSim.Bootstrap/Models/Seed/PackDrawCardWeightSeed.cs create mode 100644 SVSim.Bootstrap/Models/Seed/PackDrawConfigSeed.cs create mode 100644 SVSim.Bootstrap/Models/Seed/PackDrawSlotRateSeed.cs diff --git a/SVSim.Bootstrap/Models/Seed/PackDrawCardWeightSeed.cs b/SVSim.Bootstrap/Models/Seed/PackDrawCardWeightSeed.cs new file mode 100644 index 0000000..9384930 --- /dev/null +++ b/SVSim.Bootstrap/Models/Seed/PackDrawCardWeightSeed.cs @@ -0,0 +1,14 @@ +using System.Text.Json.Serialization; + +namespace SVSim.Bootstrap.Models.Seed; + +public sealed class PackDrawCardWeightSeed +{ + [JsonPropertyName("pack_id")] public int PackId { get; set; } + [JsonPropertyName("slot")] public string Slot { get; set; } = "general"; + [JsonPropertyName("tier")] public string Tier { get; set; } = "bronze"; + [JsonPropertyName("card_id")] public long CardId { get; set; } + [JsonPropertyName("rate_pct")] public double? RatePct { get; set; } + [JsonPropertyName("is_leader")] public bool IsLeader { get; set; } + [JsonPropertyName("is_alt_art")] public bool IsAltArt { get; set; } +} diff --git a/SVSim.Bootstrap/Models/Seed/PackDrawConfigSeed.cs b/SVSim.Bootstrap/Models/Seed/PackDrawConfigSeed.cs new file mode 100644 index 0000000..fe8442a --- /dev/null +++ b/SVSim.Bootstrap/Models/Seed/PackDrawConfigSeed.cs @@ -0,0 +1,12 @@ +using System.Text.Json.Serialization; + +namespace SVSim.Bootstrap.Models.Seed; + +public sealed class PackDrawConfigSeed +{ + [JsonPropertyName("pack_id")] public int PackId { get; set; } + [JsonPropertyName("short_code")] public string? ShortCode { get; set; } + [JsonPropertyName("animation_rate_pct")] public double AnimationRatePct { get; set; } + [JsonPropertyName("has_bonus_slot")] public bool HasBonusSlot { get; set; } + [JsonPropertyName("special_kind")] public string? SpecialKind { get; set; } +} diff --git a/SVSim.Bootstrap/Models/Seed/PackDrawSlotRateSeed.cs b/SVSim.Bootstrap/Models/Seed/PackDrawSlotRateSeed.cs new file mode 100644 index 0000000..f9739bd --- /dev/null +++ b/SVSim.Bootstrap/Models/Seed/PackDrawSlotRateSeed.cs @@ -0,0 +1,11 @@ +using System.Text.Json.Serialization; + +namespace SVSim.Bootstrap.Models.Seed; + +public sealed class PackDrawSlotRateSeed +{ + [JsonPropertyName("pack_id")] public int PackId { get; set; } + [JsonPropertyName("slot")] public string Slot { get; set; } = "general"; + [JsonPropertyName("tier")] public string Tier { get; set; } = "bronze"; + [JsonPropertyName("rate_pct")] public double RatePct { get; set; } +} diff --git a/SVSim.Bootstrap/Models/Seed/PackSeed.cs b/SVSim.Bootstrap/Models/Seed/PackSeed.cs index 14c4ac4..97d6997 100644 --- a/SVSim.Bootstrap/Models/Seed/PackSeed.cs +++ b/SVSim.Bootstrap/Models/Seed/PackSeed.cs @@ -24,6 +24,7 @@ public sealed class PackSeed [JsonPropertyName("gacha_point")] public PackGachaPointSeed? GachaPoint { get; set; } [JsonPropertyName("child_gachas")] public List ChildGachas { get; set; } = new(); [JsonPropertyName("banners")] public List Banners { get; set; } = new(); + [JsonPropertyName("is_enabled")] public bool IsEnabled { get; set; } = true; } public sealed class PackGachaPointSeed