refactor(bp): flatten BattlePassLevelEntry — drop misnamed RewardData jsonb

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
gamer147
2026-05-26 21:57:47 -04:00
parent 141f34f817
commit 95b8f39ea5
9 changed files with 3134 additions and 541 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,26 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace SVSim.Database.Migrations
{
/// <inheritdoc />
public partial class RefactorBattlePassLevels : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(name: "RewardData", table: "BattlePassLevels");
migrationBuilder.AddColumn<int>(
name: "RequiredPoint", table: "BattlePassLevels",
type: "integer", nullable: false, defaultValue: 0);
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(name: "RequiredPoint", table: "BattlePassLevels");
migrationBuilder.AddColumn<string>(
name: "RewardData", table: "BattlePassLevels",
type: "jsonb", nullable: false, defaultValue: "{}");
}
}
}

View File

@@ -508,9 +508,8 @@ namespace SVSim.Database.Migrations
b.Property<int>("Level")
.HasColumnType("integer");
b.Property<string>("RewardData")
.IsRequired()
.HasColumnType("jsonb");
b.Property<int>("RequiredPoint")
.HasColumnType("integer");
b.HasKey("Id");

View File

@@ -1,16 +1,13 @@
using System.ComponentModel.DataAnnotations.Schema;
using SVSim.Database.Common;
namespace SVSim.Database.Models;
/// <summary>
/// One battle pass level (1-100). RewardData jsonb holds the per-level reward blob from
/// /load/index data.battle_pass_level_info[level]. Shape varies per level so we preserve verbatim.
/// One battle pass level (1..100). Mirrors a single entry in /load/index.battle_pass_level_info.
/// Curve is global, immutable per deploy; cached by IBattlePassService.
/// </summary>
public class BattlePassLevelEntry : BaseEntity<int>
{
public int Level { get => Id; set => Id = value; }
[Column(TypeName = "jsonb")]
public string RewardData { get; set; } = "{}";
public int RequiredPoint { get; set; }
}