// 가격 포맷 (천 단위 콤마)
export function formatPrice(n: number): string {
  if (n === 0) return '0'
  return Math.abs(n).toLocaleString('ko-KR')
}

// 등락률 포맷 (+/-% 포함)
export function formatRate(rate: number): string {
  const sign = rate >= 0 ? '+' : ''
  return `${sign}${rate.toFixed(2)}%`
}

// 등락에 따른 CSS 색상 클래스 (한국 관행: 상승=빨강, 하락=파랑)
export function priceClass(value: number): string {
  if (value > 0) return 'text-red-400'
  if (value < 0) return 'text-blue-400'
  return 'text-gray-400'
}

// 체결강도 CSS 클래스 (100 기준)
export function cntrClass(cntr: number): string {
  if (cntr > 100) return 'text-red-400'
  if (cntr < 100 && cntr > 0) return 'text-blue-400'
  return 'text-gray-400'
}

// 거래량 포맷 (만 단위 축약)
export function formatVolume(n: number): string {
  if (n >= 100_000_000) return (n / 100_000_000).toFixed(1) + '억'
  if (n >= 10_000) return (n / 10_000).toFixed(0) + '만'
  return n.toLocaleString('ko-KR')
}

// 날짜 포맷 (ISO → YYYY-MM-DD HH:mm)
export function formatDate(iso: string): string {
  if (!iso) return ''
  const d = new Date(iso)
  const pad = (n: number) => String(n).padStart(2, '0')
  return `${d.getFullYear()}-${pad(d.getMonth() + 1)}-${pad(d.getDate())} ${pad(d.getHours())}:${pad(d.getMinutes())}`
}

// 전일대비 부호 문자 (2=상승, 3=보합, 5=하락)
export function sigToArrow(sig: string): string {
  if (sig === '2') return '▲'
  if (sig === '5') return '▼'
  return '-'
}

// 전일대비 부호에 따른 클래스
export function sigClass(sig: string): string {
  if (sig === '2') return 'text-red-400'
  if (sig === '5') return 'text-blue-400'
  return 'text-gray-400'
}
