MarketHoliday.cs 863 B

1234567891011121314151617181920212223242526272829303132
  1. using System.ComponentModel.DataAnnotations;
  2. namespace Domain.Entities.Stocks;
  3. /// <summary>
  4. /// KRX 휴장일 (주말 제외 — 공휴일/임시휴장/연말휴장).
  5. /// Admin 수동 관리 전제 (연 1회 등록). 수집 배치의 영업일 판정에 사용.
  6. /// </summary>
  7. public class MarketHoliday
  8. {
  9. [Key]
  10. public DateOnly Date { get; private set; }
  11. /// <summary>휴장 사유 (예: "설날", "연말 휴장일")</summary>
  12. public string Name { get; private set; } = default!;
  13. private MarketHoliday() { }
  14. public static MarketHoliday Create(DateOnly date, string name)
  15. {
  16. if (string.IsNullOrWhiteSpace(name))
  17. {
  18. throw new ArgumentException("name required", nameof(name));
  19. }
  20. return new MarketHoliday
  21. {
  22. Date = date,
  23. Name = name.Trim()
  24. };
  25. }
  26. }