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>
This commit is contained in:
305
SVSim.Bootstrap/Data/seeds/puzzle-groups.json
Normal file
305
SVSim.Bootstrap/Data/seeds/puzzle-groups.json
Normal file
@@ -0,0 +1,305 @@
|
||||
[
|
||||
{
|
||||
"id": 316,
|
||||
"basic_title_text_id": "Puzzle_QuestSelect_0316",
|
||||
"puzzle_chara_id": 3704,
|
||||
"chara_id": 3704,
|
||||
"sort_type": 1,
|
||||
"difficulty_name_list": {
|
||||
"Expert": "2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 315,
|
||||
"basic_title_text_id": "Puzzle_QuestSelect_0315",
|
||||
"puzzle_chara_id": 3704,
|
||||
"chara_id": 3704,
|
||||
"sort_type": 1,
|
||||
"difficulty_name_list": {
|
||||
"Beginner": "0",
|
||||
"Experienced": "1",
|
||||
"Expert": "2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 314,
|
||||
"basic_title_text_id": "Puzzle_QuestSelect_0314",
|
||||
"puzzle_chara_id": 3704,
|
||||
"chara_id": 3704,
|
||||
"sort_type": 1,
|
||||
"difficulty_name_list": {
|
||||
"Beginner": "0",
|
||||
"Experienced": "1",
|
||||
"Expert": "2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 313,
|
||||
"basic_title_text_id": "Puzzle_QuestSelect_0313",
|
||||
"puzzle_chara_id": 3704,
|
||||
"chara_id": 3704,
|
||||
"sort_type": 1,
|
||||
"difficulty_name_list": {
|
||||
"Beginner": "0",
|
||||
"Experienced": "1",
|
||||
"Expert": "2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 312,
|
||||
"basic_title_text_id": "Puzzle_QuestSelect_0312",
|
||||
"puzzle_chara_id": 3704,
|
||||
"chara_id": 3704,
|
||||
"sort_type": 1,
|
||||
"difficulty_name_list": {
|
||||
"Beginner": "0",
|
||||
"Experienced": "1",
|
||||
"Expert": "2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 311,
|
||||
"basic_title_text_id": "Puzzle_QuestSelect_0311",
|
||||
"puzzle_chara_id": 3704,
|
||||
"chara_id": 3704,
|
||||
"sort_type": 1,
|
||||
"difficulty_name_list": {
|
||||
"Beginner": "0",
|
||||
"Experienced": "1",
|
||||
"Expert": "2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 310,
|
||||
"basic_title_text_id": "Puzzle_QuestSelect_0310",
|
||||
"puzzle_chara_id": 3704,
|
||||
"chara_id": 3704,
|
||||
"sort_type": 1,
|
||||
"difficulty_name_list": {
|
||||
"Beginner": "0",
|
||||
"Experienced": "1",
|
||||
"Expert": "2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 309,
|
||||
"basic_title_text_id": "Puzzle_QuestSelect_0309",
|
||||
"puzzle_chara_id": 3704,
|
||||
"chara_id": 3704,
|
||||
"sort_type": 1,
|
||||
"difficulty_name_list": {
|
||||
"Beginner": "0",
|
||||
"Experienced": "1",
|
||||
"Expert": "2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 308,
|
||||
"basic_title_text_id": "Puzzle_QuestSelect_0308",
|
||||
"puzzle_chara_id": 3704,
|
||||
"chara_id": 3704,
|
||||
"sort_type": 1,
|
||||
"difficulty_name_list": {
|
||||
"Beginner": "0",
|
||||
"Experienced": "1",
|
||||
"Expert": "2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 307,
|
||||
"basic_title_text_id": "Puzzle_QuestSelect_0307",
|
||||
"puzzle_chara_id": 3704,
|
||||
"chara_id": 3704,
|
||||
"sort_type": 1,
|
||||
"difficulty_name_list": {
|
||||
"Beginner": "0",
|
||||
"Experienced": "1",
|
||||
"Expert": "2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 306,
|
||||
"basic_title_text_id": "Puzzle_QuestSelect_0306",
|
||||
"puzzle_chara_id": 3704,
|
||||
"chara_id": 3704,
|
||||
"sort_type": 1,
|
||||
"difficulty_name_list": {
|
||||
"Beginner": "0",
|
||||
"Experienced": "1",
|
||||
"Expert": "2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 305,
|
||||
"basic_title_text_id": "Puzzle_QuestSelect_0305",
|
||||
"puzzle_chara_id": 3704,
|
||||
"chara_id": 3704,
|
||||
"sort_type": 1,
|
||||
"difficulty_name_list": {
|
||||
"Beginner": "0",
|
||||
"Experienced": "1",
|
||||
"Expert": "2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 304,
|
||||
"basic_title_text_id": "Puzzle_QuestSelect_0304",
|
||||
"puzzle_chara_id": 3704,
|
||||
"chara_id": 3704,
|
||||
"sort_type": 1,
|
||||
"difficulty_name_list": {
|
||||
"Beginner": "0",
|
||||
"Experienced": "1",
|
||||
"Expert": "2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 303,
|
||||
"basic_title_text_id": "Puzzle_QuestSelect_0303",
|
||||
"puzzle_chara_id": 3704,
|
||||
"chara_id": 3704,
|
||||
"sort_type": 1,
|
||||
"difficulty_name_list": {
|
||||
"Beginner": "0",
|
||||
"Experienced": "1",
|
||||
"Expert": "2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 302,
|
||||
"basic_title_text_id": "Puzzle_QuestSelect_0302",
|
||||
"puzzle_chara_id": 3704,
|
||||
"chara_id": 3704,
|
||||
"sort_type": 1,
|
||||
"difficulty_name_list": {
|
||||
"Beginner": "0",
|
||||
"Experienced": "1",
|
||||
"Expert": "2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 301,
|
||||
"basic_title_text_id": "Puzzle_QuestSelect_0301",
|
||||
"puzzle_chara_id": 3704,
|
||||
"chara_id": 3704,
|
||||
"sort_type": 1,
|
||||
"difficulty_name_list": {
|
||||
"Beginner": "0",
|
||||
"Experienced": "1",
|
||||
"Expert": "2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 9,
|
||||
"basic_title_text_id": "Puzzle_QuestSelect_0109",
|
||||
"puzzle_chara_id": 600090,
|
||||
"chara_id": 600090,
|
||||
"sort_type": 2,
|
||||
"difficulty_name_list": {
|
||||
"Beginner": "0",
|
||||
"Experienced": "1",
|
||||
"Expert": "2",
|
||||
"": "3"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 8,
|
||||
"basic_title_text_id": "Puzzle_QuestSelect_0108",
|
||||
"puzzle_chara_id": 600080,
|
||||
"chara_id": 600080,
|
||||
"sort_type": 2,
|
||||
"difficulty_name_list": {
|
||||
"Beginner": "0",
|
||||
"Experienced": "1",
|
||||
"Expert": "2",
|
||||
"": "3"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 7,
|
||||
"basic_title_text_id": "Puzzle_QuestSelect_0107",
|
||||
"puzzle_chara_id": 600070,
|
||||
"chara_id": 600070,
|
||||
"sort_type": 2,
|
||||
"difficulty_name_list": {
|
||||
"Beginner": "0",
|
||||
"Experienced": "1",
|
||||
"Expert": "2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"basic_title_text_id": "Puzzle_QuestSelect_0106",
|
||||
"puzzle_chara_id": 600060,
|
||||
"chara_id": 600060,
|
||||
"sort_type": 2,
|
||||
"difficulty_name_list": {
|
||||
"Beginner": "0",
|
||||
"Experienced": "1",
|
||||
"Expert": "2",
|
||||
"": "3"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"basic_title_text_id": "Puzzle_QuestSelect_0105",
|
||||
"puzzle_chara_id": 3801,
|
||||
"chara_id": 3801,
|
||||
"sort_type": 2,
|
||||
"difficulty_name_list": {
|
||||
"Beginner": "0",
|
||||
"Experienced": "1",
|
||||
"Expert": "2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"basic_title_text_id": "Puzzle_QuestSelect_0104",
|
||||
"puzzle_chara_id": 3603,
|
||||
"chara_id": 3603,
|
||||
"sort_type": 2,
|
||||
"difficulty_name_list": {
|
||||
"Beginner": "0",
|
||||
"Experienced": "1",
|
||||
"Expert": "2",
|
||||
"": "3"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"basic_title_text_id": "Puzzle_QuestSelect_0103",
|
||||
"puzzle_chara_id": 3403,
|
||||
"chara_id": 3403,
|
||||
"sort_type": 2,
|
||||
"difficulty_name_list": {
|
||||
"Beginner": "0",
|
||||
"Experienced": "1",
|
||||
"Expert": "2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"basic_title_text_id": "Puzzle_QuestSelect_0102",
|
||||
"puzzle_chara_id": 3208,
|
||||
"chara_id": 2703,
|
||||
"sort_type": 2,
|
||||
"difficulty_name_list": {
|
||||
"Beginner": "0",
|
||||
"Experienced": "1",
|
||||
"Expert": "2",
|
||||
"": "3"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 1,
|
||||
"basic_title_text_id": "Puzzle_QuestSelect_0101",
|
||||
"puzzle_chara_id": 600050,
|
||||
"chara_id": 600050,
|
||||
"sort_type": 2,
|
||||
"difficulty_name_list": {
|
||||
"Beginner": "0",
|
||||
"Experienced": "1",
|
||||
"Expert": "2"
|
||||
}
|
||||
}
|
||||
]
|
||||
Reference in New Issue
Block a user