import dayjs from 'dayjs';
import utc from 'dayjs/plugin/utc.js';
import timezone from 'dayjs/plugin/timezone.js';

dayjs.extend(utc);
dayjs.extend(timezone);

const KST = 'Asia/Seoul';

/**
 * UTC Date를 KST dayjs 객체로 변환
 */
export function toKST(date) {
  return dayjs(date).tz(KST);
}

/**
 * 날짜를 YYYY-MM-DD 형식으로 포맷 (KST)
 */
export function formatDate(date) {
  return dayjs(date).tz(KST).format('YYYY-MM-DD');
}

/**
 * 시간을 HH:mm:ss 형식으로 포맷 (KST)
 */
export function formatTime(date) {
  return dayjs(date).tz(KST).format('HH:mm:ss');
}

/**
 * 현재 KST 시간을 ISO 형식으로 반환
 * 예: "2025-01-23T13:05:00+09:00"
 */
export function nowKST() {
  return dayjs().tz(KST).format();
}

/**
 * 현재 KST 기준 월 반환 (1~12)
 */
export function monthKST() {
  return dayjs().tz(KST).month() + 1;
}

/**
 * Nitter 날짜 문자열 파싱
 * 예: "Jan 15, 2026 · 10:30 PM UTC"
 */
export function parseNitterDateTime(timeStr) {
  if (!timeStr) return null;
  const cleaned = timeStr.replace(' · ', ' ').replace(' UTC', '');
  const date = new Date(cleaned + ' UTC');
  return isNaN(date.getTime()) ? null : date;
}
