refactor: drop unused DailyLoginBonuses table + importer
The captured shape ({"1":[], "3":[], "4":[]}) is the empty-period
wire echo; the client parser (LoadDetail.cs:553) only reads normal/total/
campaign. Table, entity, seed, and importer were never wired to a code path.
Replaced by config-section catalog + service in the follow-up commits.
This commit is contained in:
@@ -1,14 +0,0 @@
|
||||
[
|
||||
{
|
||||
"id": 1,
|
||||
"bonus_data": []
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"bonus_data": []
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"bonus_data": []
|
||||
}
|
||||
]
|
||||
@@ -1,37 +0,0 @@
|
||||
using System.Text.Json;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using SVSim.Bootstrap.Models.Seed;
|
||||
using SVSim.Database;
|
||||
using SVSim.Database.Models;
|
||||
|
||||
namespace SVSim.Bootstrap.Importers;
|
||||
|
||||
/// <summary>
|
||||
/// Idempotent upsert of daily-login-bonus campaign rows from <c>seeds/daily-login-bonus.json</c>.
|
||||
/// <c>bonus_data</c> array preserved verbatim — prod observed empty arrays outside active events.
|
||||
/// </summary>
|
||||
public class DailyLoginBonusImporter
|
||||
{
|
||||
public async Task<int> ImportAsync(SVSimDbContext context, string seedDir)
|
||||
{
|
||||
var seed = SeedLoader.LoadList<DailyLoginBonusSeed>(Path.Combine(seedDir, "daily-login-bonus.json"));
|
||||
if (seed.Count == 0) return 0;
|
||||
|
||||
var existing = await context.DailyLoginBonuses.ToDictionaryAsync(e => e.Id);
|
||||
int created = 0, updated = 0;
|
||||
foreach (var s in seed)
|
||||
{
|
||||
if (s.Id == 0) continue;
|
||||
var entry = existing.TryGetValue(s.Id, out var ex) ? ex : new DailyLoginBonusEntry { Id = s.Id };
|
||||
entry.BonusData = s.BonusData.ValueKind == JsonValueKind.Undefined
|
||||
? "[]"
|
||||
: JsonSerializer.Serialize(s.BonusData);
|
||||
if (ex is null) { context.DailyLoginBonuses.Add(entry); existing[s.Id] = entry; created++; }
|
||||
else updated++;
|
||||
}
|
||||
|
||||
await context.SaveChangesAsync();
|
||||
Console.WriteLine($"[DailyLoginBonusImporter] +{created}/~{updated}");
|
||||
return created + updated;
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
using System.Text.Json;
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace SVSim.Bootstrap.Models.Seed;
|
||||
|
||||
/// <summary>Mirrors <c>seeds/daily-login-bonus.json</c>. <c>bonus_data</c> preserved verbatim.</summary>
|
||||
public sealed class DailyLoginBonusSeed
|
||||
{
|
||||
[JsonPropertyName("id")] public int Id { get; set; }
|
||||
[JsonPropertyName("bonus_data")] public JsonElement BonusData { get; set; }
|
||||
}
|
||||
@@ -94,7 +94,6 @@ public static class Program
|
||||
await new MissionCatalogImporter().ImportAsync(context, opts.SeedDir);
|
||||
await new AchievementCatalogImporter().ImportAsync(context, opts.SeedDir);
|
||||
await new BattlePassMonthlyMissionImporter().ImportAsync(context, opts.SeedDir);
|
||||
await new DailyLoginBonusImporter().ImportAsync(context, opts.SeedDir);
|
||||
await new PreReleaseInfoImporter().ImportAsync(context, opts.SeedDir);
|
||||
await new CardListsImporter().ImportAsync(context, opts.SeedDir);
|
||||
await new RotationFlagUpdater().UpdateAsync(context);
|
||||
|
||||
Reference in New Issue
Block a user