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");
}
}
}