Files
SVSimServer/SVSim.Bootstrap/Models/Seed/PuzzleMissionSeed.cs
gamer147 0da8ebe1c1 refactor(bootstrap): migrate basic puzzles to seed files
Replaces GlobalsImporter's ImportPuzzleGroups/Puzzles/Missions methods (plus the
DeriveTargetPuzzleGroupId regex helper) with a dedicated PuzzleImporter that
reads three flat seed JSONs (puzzle-groups, puzzles, puzzle-missions) produced
by the Python extractor. Groups run before puzzles to satisfy the FK; missions
upsert by sequential id. Wired into Program.cs and SVSimTestFactory after
PaymentItemImporter so existing GlobalsImporterPuzzleTests continue to pass
unchanged via SeedGlobalsAsync. The original prod-capture JSONs are deleted now
that the seeds are authoritative.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-26 14:16:32 -04:00

18 lines
931 B
C#

using System.Text.Json.Serialization;
namespace SVSim.Bootstrap.Models.Seed;
public sealed class PuzzleMissionSeed
{
[JsonPropertyName("id")] public int Id { get; set; }
[JsonPropertyName("mission_name")] public string MissionName { get; set; } = "";
[JsonPropertyName("achieved_message")] public string AchievedMessage { get; set; } = "";
[JsonPropertyName("require_number")] public int RequireNumber { get; set; }
[JsonPropertyName("campaign_commence_time")] public long CampaignCommenceTime { get; set; }
[JsonPropertyName("order_id")] public int OrderId { get; set; }
[JsonPropertyName("reward_type")] public int RewardType { get; set; }
[JsonPropertyName("reward_detail_id")] public long RewardDetailId { get; set; }
[JsonPropertyName("reward_number")] public int RewardNumber { get; set; }
[JsonPropertyName("target_puzzle_group_id")] public int? TargetPuzzleGroupId { get; set; }
}