namespace Application.Features.Api.Stocks.GetMarketMovers; public sealed class Response { /// 기준 거래일 (yyyy-MM-dd) — 데이터 없으면 빈 문자열 public required string TradeDate { get; init; } /// 상승 (등락률 > 0, 상한 제외) 상위 public required Group Advances { get; init; } /// 하락 (등락률 < 0, 하한 제외) 상위 public required Group Declines { get; init; } /// 상한 (등락률 ≥ +29.5% 근사) 상위 public required Group LimitUp { get; init; } /// 하한 (등락률 ≤ -29.5% 근사) 상위 public required Group LimitDown { get; init; } public sealed class Group { /// 그룹 전체 종목 수 — 상승/하락은 상한·하한을 포함한 전체 방향 카운트, 상한/하한은 해당 카운트 public required int Total { get; init; } public required IReadOnlyList Items { get; init; } } public sealed class Item { public required string Code { get; init; } public required string Name { get; init; } /// 시장 (1 KOSPI / 2 KOSDAQ / 3 KONEX) public required int Market { get; init; } public required int Close { get; init; } /// 전일 대비 (원) public required int ChangeVal { get; init; } /// 등락률 basis point (%×100) public required int FlucRateBp { get; init; } /// 최근 종가 스파크라인 (과거→최신). 데이터 없으면 빈 배열. public required IReadOnlyList Spark { get; init; } } }