marketMover.ts 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. // 등락 상위 종목 도메인 타입 — Backend Application/Features/Api/Stocks/GetMarketMovers/Response.cs 대응
  2. // 필드명 camelCase. flucRateBp = %×100. 상승/하락은 상한·하한 제외(4그룹 비중복).
  3. export interface MarketMoverItem {
  4. code: string;
  5. name: string;
  6. market: number; // 1 KOSPI / 2 KOSDAQ / 3 KONEX
  7. close: number;
  8. changeVal: number;
  9. flucRateBp: number;
  10. spark: number[]; // 최근 종가 (과거→최신), 없으면 빈 배열
  11. }
  12. export interface MarketMoverGroup {
  13. total: number;
  14. items: MarketMoverItem[];
  15. }
  16. export interface MarketMoversResponse {
  17. tradeDate: string;
  18. advances: MarketMoverGroup;
  19. declines: MarketMoverGroup;
  20. limitUp: MarketMoverGroup;
  21. limitDown: MarketMoverGroup;
  22. }
  23. export const MARKET_LABEL: Record<number, string> = {
  24. 1: 'KOSPI',
  25. 2: 'KOSDAQ',
  26. 3: 'KONEX'
  27. };
  28. // 종가 — 정수 원, 천단위 콤마
  29. export function formatStockPrice(v: number): string {
  30. return v.toLocaleString('ko-KR');
  31. }
  32. // 그룹 전체 종목 수
  33. export function formatMoverCount(v: number): string {
  34. return v.toLocaleString('ko-KR');
  35. }