/**
 * 60s API 列表展示：与后端 /api/site/60s-disabled 同步，隐藏的 item.id 不在列表与详情中展示。
 */
import { ENV_CONFIG } from '../config/env';

/**
 * @returns {Promise<Set<string>>} 被隐藏的 feature id；请求失败时返回空 Set（全部展示，fail-open）
 */
export async function fetch60sDisabledSet() {
  try {
    const res = await fetch(`${ENV_CONFIG.API_URL}/api/site/60s-disabled`, {
      credentials: 'omit',
    });
    if (!res.ok) throw new Error(`http ${res.status}`);
    const data = await res.json();
    const arr = Array.isArray(data.disabled) ? data.disabled : [];
    return new Set(arr.map(String));
  } catch {
    return new Set();
  }
}

/** @param {Set<string>} disabledSet */
export function filterApi60sCategories(categories, disabledSet) {
  if (!disabledSet || disabledSet.size === 0) {
    return categories;
  }
  return categories
    .map((cat) => ({
      ...cat,
      items: cat.items.filter((item) => !disabledSet.has(item.id)),
    }))
    .filter((cat) => cat.items.length > 0);
}
