// HTML 엔티티 디코딩 함수
export const decodeHtmlEntities = (text) => {
  if (!text) return "";
  const textarea = document.createElement("textarea");
  textarea.innerHTML = text;
  return textarea.value;
};

// 날짜 포맷팅
export const formatFullDate = (dateStr) => {
  if (!dateStr) return "";
  const date = new Date(dateStr);
  const dayNames = ["일", "월", "화", "수", "목", "금", "토"];
  return `${date.getFullYear()}. ${date.getMonth() + 1}. ${date.getDate()}. (${
    dayNames[date.getDay()]
  })`;
};

// 시간 포맷팅
export const formatTime = (timeStr) => {
  if (!timeStr) return null;
  return timeStr.slice(0, 5);
};

// X용 날짜/시간 포맷팅 (오후 2:30 · 2026년 1월 15일)
export const formatXDateTime = (dateStr, timeStr) => {
  if (!dateStr) return "";
  const date = new Date(dateStr);
  const year = date.getFullYear();
  const month = date.getMonth() + 1;
  const day = date.getDate();

  let result = `${year}년 ${month}월 ${day}일`;

  if (timeStr) {
    const [hours, minutes] = timeStr.split(":").map(Number);
    const period = hours < 12 ? "오전" : "오후";
    const hour12 = hours === 0 ? 12 : hours > 12 ? hours - 12 : hours;
    result = `${period} ${hour12}:${String(minutes).padStart(
      2,
      "0"
    )} · ${result}`;
  }

  return result;
};

// 카테고리 ID 상수
export const CATEGORY_ID = {
  YOUTUBE: 2,
  X: 3,
  ALBUM: 4,
  FANSIGN: 5,
  CONCERT: 6,
  TICKET: 7,
};
