using Domain.Entities.Stocks; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata.Builders; namespace Infrastructure.Persistence.Configurations.Stocks; public sealed class MarketHolidayConfiguration : IEntityTypeConfiguration { public void Configure(EntityTypeBuilder builder) { builder.ToTable(nameof(MarketHoliday), t => t.HasComment("KRX 휴장일 (주말 제외, Admin 수동 관리)")); builder.HasKey(x => x.Date); builder.Property(x => x.Name).HasMaxLength(100).IsRequired().HasComment("휴장 사유"); // 2026년 KRX 휴장일 시드 — 이후 연도는 Admin 에서 수동 등록 (대체공휴일 포함, 주말 중복 항목은 제외) builder.HasData( new { Date = new DateOnly(2026, 1, 1), Name = "신정" }, new { Date = new DateOnly(2026, 2, 16), Name = "설날 연휴" }, new { Date = new DateOnly(2026, 2, 17), Name = "설날" }, new { Date = new DateOnly(2026, 2, 18), Name = "설날 연휴" }, new { Date = new DateOnly(2026, 3, 2), Name = "삼일절 대체공휴일" }, new { Date = new DateOnly(2026, 5, 5), Name = "어린이날" }, new { Date = new DateOnly(2026, 5, 25), Name = "부처님오신날 대체공휴일" }, new { Date = new DateOnly(2026, 6, 3), Name = "전국동시지방선거" }, new { Date = new DateOnly(2026, 8, 17), Name = "광복절 대체공휴일" }, new { Date = new DateOnly(2026, 9, 24), Name = "추석 연휴" }, new { Date = new DateOnly(2026, 9, 25), Name = "추석" }, new { Date = new DateOnly(2026, 9, 28), Name = "추석 대체공휴일" }, new { Date = new DateOnly(2026, 10, 5), Name = "개천절 대체공휴일" }, new { Date = new DateOnly(2026, 10, 9), Name = "한글날" }, new { Date = new DateOnly(2026, 12, 25), Name = "성탄절" }, new { Date = new DateOnly(2026, 12, 31), Name = "연말 휴장일" } ); } }