using System; using Microsoft.EntityFrameworkCore.Migrations; #nullable disable namespace Infrastructure.Migrations.AppDb { /// public partial class AddNavMenuItem : Migration { /// protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.CreateTable( name: "NavMenuItem", columns: table => new { ID = table.Column(type: "int", nullable: false, comment: "PK") .Annotation("SqlServer:Identity", "1, 1"), Label = table.Column(type: "nvarchar(50)", maxLength: 50, nullable: false, comment: "메뉴 명"), Href = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false, comment: "링크 주소"), SortOrder = table.Column(type: "int", nullable: false, comment: "정렬 순서"), IsVisible = table.Column(type: "bit", nullable: false, comment: "노출 여부"), UpdatedAt = table.Column(type: "datetime2", nullable: false, comment: "수정 일시"), CreatedAt = table.Column(type: "datetime2", nullable: false, comment: "등록 일시") }, constraints: table => { table.PrimaryKey("PK_NavMenuItem", x => x.ID); }, comment: "상단 내비게이션 메뉴"); migrationBuilder.CreateIndex( name: "IX_NavMenuItem_SortOrder", table: "NavMenuItem", column: "SortOrder"); // 기존 하드코딩 상단 메뉴 10개 시드 (InsertData 로 파라미터화 → 한글 nvarchar 안전) DateTime seededAt = new DateTime(2026, 7, 10, 0, 0, 0, DateTimeKind.Utc); migrationBuilder.InsertData( table: "NavMenuItem", columns: new[] { "Label", "Href", "SortOrder", "IsVisible", "CreatedAt", "UpdatedAt" }, values: new object[,] { { "시장", "/market", 1, true, seededAt, seededAt }, { "종목", "/stock", 2, true, seededAt, seededAt }, { "모의투자", "/paper", 3, true, seededAt, seededAt }, { "게임", "/games", 4, true, seededAt, seededAt }, { "장전 시황", "/board/briefing", 5, true, seededAt, seededAt }, { "수익인증", "/board/proof", 6, true, seededAt, seededAt }, { "피드", "/feed/all", 7, true, seededAt, seededAt }, { "상점", "/store", 8, true, seededAt, seededAt }, { "출석부", "/attendance", 9, true, seededAt, seededAt }, { "고객지원", "/board/notice", 10, true, seededAt, seededAt } }); } /// protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.DropTable( name: "NavMenuItem"); } } }