/**
 * 봇 활성 월(active_months) 파싱/직렬화 유틸
 * - 저장 형식: JSON 정수 배열 (예: [4,5,8,9]) 또는 NULL(전체 월 = 항상 실행)
 */

/**
 * DB 값(JSON 문자열/배열) → 정수 배열 또는 null
 */
export function parseActiveMonths(raw) {
  if (!raw) return null;
  try {
    const arr = typeof raw === 'string' ? JSON.parse(raw) : raw;
    if (!Array.isArray(arr) || arr.length === 0) return null;
    const months = arr.map(Number).filter((m) => m >= 1 && m <= 12);
    return months.length > 0 ? months : null;
  } catch {
    return null;
  }
}

/**
 * 입력 배열 → DB 저장용 JSON 문자열 또는 null
 * - 빈 배열 / 12개 전체 선택은 NULL(제한 없음)로 정규화
 */
export function serializeActiveMonths(input) {
  if (!Array.isArray(input)) return null;
  const months = [...new Set(input.map(Number).filter((m) => m >= 1 && m <= 12))].sort(
    (a, b) => a - b
  );
  if (months.length === 0 || months.length >= 12) return null;
  return JSON.stringify(months);
}
