MarketHolidayConfiguration.cs 2.0 KB

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