feat(packs): add PackDraw seed DTOs and IsEnabled on PackSeed

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 <noreply@anthropic.com>
This commit is contained in:
gamer147
2026-05-30 21:43:27 -04:00
parent 8e98180951
commit f9f5b0dfa4
4 changed files with 38 additions and 0 deletions

View File

@@ -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; }
}

View File

@@ -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; }
}

View File

@@ -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; }
}

View File

@@ -24,6 +24,7 @@ public sealed class PackSeed
[JsonPropertyName("gacha_point")] public PackGachaPointSeed? GachaPoint { get; set; }
[JsonPropertyName("child_gachas")] public List<PackChildGachaSeed> ChildGachas { get; set; } = new();
[JsonPropertyName("banners")] public List<PackBannerSeed> Banners { get; set; } = new();
[JsonPropertyName("is_enabled")] public bool IsEnabled { get; set; } = true;
}
public sealed class PackGachaPointSeed