| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- using Microsoft.EntityFrameworkCore.Migrations;
- #nullable disable
- namespace Infrastructure.Migrations.AppDb
- {
- /// <summary>
- /// KRX 휴장일 2023~2025 백필 시드 — 기존 시드(AddStockDomain)가 2026년만 포함해 3년 백필 창의 과거 휴장일이
- /// 영구 미적재 → 수집 배치가 휴장일을 매 실행 재호출하는 문제(API 감사 P2-4) 해소.
- /// 주말(토·일)에 해당하는 공휴일은 제외(KrxBackfill 이 주말은 자동 스킵). 전 날짜 KRX 휴장 공시·복수 소스 교차 검증(2026-07-07):
- /// - 임시공휴일: 2023-10-02, 2024-10-01(국군의날), 2025-01-27
- /// - 선거일: 2024-04-10(제22대 총선), 2025-06-03(제21대 대선)
- /// - 연말 휴장일: 2023-12-29(12/31 일·12/30 토 → 직전 평일), 2024-12-31, 2025-12-31
- /// </summary>
- public partial class SeedMarketHolidays2023To2025 : Migration
- {
- // 2023~2025 KRX 휴장일 (주말 제외 평일만) — Down 에서 동일 목록으로 삭제
- private static readonly object[,] Holidays = new object[,]
- {
- // 2023 (15일)
- { new DateOnly(2023, 1, 23), "설날 연휴" },
- { new DateOnly(2023, 1, 24), "설날 대체공휴일" },
- { new DateOnly(2023, 3, 1), "삼일절" },
- { new DateOnly(2023, 5, 1), "근로자의날" },
- { new DateOnly(2023, 5, 5), "어린이날" },
- { new DateOnly(2023, 5, 29), "부처님오신날 대체공휴일" },
- { new DateOnly(2023, 6, 6), "현충일" },
- { new DateOnly(2023, 8, 15), "광복절" },
- { new DateOnly(2023, 9, 28), "추석 연휴" },
- { new DateOnly(2023, 9, 29), "추석" },
- { new DateOnly(2023, 10, 2), "임시공휴일" },
- { new DateOnly(2023, 10, 3), "개천절" },
- { new DateOnly(2023, 10, 9), "한글날" },
- { new DateOnly(2023, 12, 25), "성탄절" },
- { new DateOnly(2023, 12, 29), "연말 휴장일" },
- // 2024 (18일)
- { new DateOnly(2024, 1, 1), "신정" },
- { new DateOnly(2024, 2, 9), "설날 연휴" },
- { new DateOnly(2024, 2, 12), "설날 대체공휴일" },
- { new DateOnly(2024, 3, 1), "삼일절" },
- { new DateOnly(2024, 4, 10), "제22대 국회의원선거" },
- { new DateOnly(2024, 5, 1), "근로자의날" },
- { new DateOnly(2024, 5, 6), "어린이날 대체공휴일" },
- { new DateOnly(2024, 5, 15), "부처님오신날" },
- { new DateOnly(2024, 6, 6), "현충일" },
- { new DateOnly(2024, 8, 15), "광복절" },
- { new DateOnly(2024, 9, 16), "추석 연휴" },
- { new DateOnly(2024, 9, 17), "추석" },
- { new DateOnly(2024, 9, 18), "추석 연휴" },
- { new DateOnly(2024, 10, 1), "임시공휴일(국군의날)" },
- { new DateOnly(2024, 10, 3), "개천절" },
- { new DateOnly(2024, 10, 9), "한글날" },
- { new DateOnly(2024, 12, 25), "성탄절" },
- { new DateOnly(2024, 12, 31), "연말 휴장일" },
- // 2025 (19일)
- { new DateOnly(2025, 1, 1), "신정" },
- { new DateOnly(2025, 1, 27), "임시공휴일" },
- { new DateOnly(2025, 1, 28), "설날 연휴" },
- { new DateOnly(2025, 1, 29), "설날" },
- { new DateOnly(2025, 1, 30), "설날 연휴" },
- { new DateOnly(2025, 3, 3), "삼일절 대체공휴일" },
- { new DateOnly(2025, 5, 1), "근로자의날" },
- { new DateOnly(2025, 5, 5), "어린이날·부처님오신날" },
- { new DateOnly(2025, 5, 6), "대체공휴일" },
- { new DateOnly(2025, 6, 3), "제21대 대통령선거" },
- { new DateOnly(2025, 6, 6), "현충일" },
- { new DateOnly(2025, 8, 15), "광복절" },
- { new DateOnly(2025, 10, 3), "개천절" },
- { new DateOnly(2025, 10, 6), "추석" },
- { new DateOnly(2025, 10, 7), "추석 연휴" },
- { new DateOnly(2025, 10, 8), "추석 대체공휴일" },
- { new DateOnly(2025, 10, 9), "한글날" },
- { new DateOnly(2025, 12, 25), "성탄절" },
- { new DateOnly(2025, 12, 31), "연말 휴장일" }
- };
- /// <inheritdoc />
- protected override void Up(MigrationBuilder migrationBuilder)
- {
- migrationBuilder.InsertData(
- table: "MarketHoliday",
- columns: new[] { "Date", "Name" },
- values: Holidays);
- }
- /// <inheritdoc />
- protected override void Down(MigrationBuilder migrationBuilder)
- {
- for (var i = 0; i < Holidays.GetLength(0); i++)
- {
- migrationBuilder.DeleteData(
- table: "MarketHoliday",
- keyColumn: "Date",
- keyValue: Holidays[i, 0]);
- }
- }
- }
- }
|