// @ts-nocheck
// ===================================================================
//  TMDB (The Movie Database) API 统一模块
//  所有 TMDB API 域名、端点、图片 URL 集中管理
//  换 API 版本或切换到镜像只需改这个文件
// ===================================================================

// ==================== 域名 ====================
export const TMDB_API_HOST   = 'https://api.themoviedb.org';
export const TMDB_IMAGE_HOST = 'https://image.tmdb.org';
export const TMDB_WEB_HOST   = 'https://www.themoviedb.org';

// ==================== API 版本前缀 ====================
const V3 = '/3';

// ==================== API 端点路径 ====================
export const EP = {
  // ── 搜索 ──
  SEARCH_MOVIE:     V3 + '/search/movie',       // GET  ?query=&language=zh-CN&page=
  SEARCH_TV:        V3 + '/search/tv',          // GET  ?query=&language=zh-CN&page=

  // ── 详情 ──
  MOVIE_DETAIL:     V3 + '/movie',              // GET  /{id}?language=zh-CN&append_to_response=credits
  TV_DETAIL:        V3 + '/tv',                 // GET  /{id}?language=zh-CN&append_to_response=credits

  // ── 发现 ──
  DISCOVER_MOVIE:   V3 + '/discover/movie',     // GET  ?sort_by=&vote_count=
  DISCOVER_TV:      V3 + '/discover/tv',        // GET  ?sort_by=&vote_count=

  // ── 配置 ──
  CONFIGURATION:    V3 + '/configuration',      // GET  获取图片配置

  // ── 图片 ──
  POSTER_W500:      '/t/p/w500',                // 海报 500px 宽度
} as const;

// ==================== 工具函数 ====================
/** 构建图片完整 URL */
export function buildImageUrl(path: string | null, size: string = EP.POSTER_W500): string {
  if (!path) return '';
  return TMDB_IMAGE_HOST + size + path;
}

/** 构建 TMDB 网页 URL */
export function buildWebUrl(mediaType: 'movie' | 'tv', tmdbId: number): string {
  return TMDB_WEB_HOST + '/' + mediaType + '/' + tmdbId;
}

/** 构建 API 搜索 URL */
export function buildSearchUrl(type: 'movie' | 'tv', keyword: string, page = 1): string {
  const ep = type === 'movie' ? EP.SEARCH_MOVIE : EP.SEARCH_TV;
  return TMDB_API_HOST + ep + '?query=' + encodeURIComponent(keyword) + '&language=zh-CN&page=' + page;
}

/** 构建 API 详情 URL */
export function buildDetailUrl(mediaType: 'movie' | 'tv', tmdbId: number): string {
  const base = mediaType === 'movie' ? EP.MOVIE_DETAIL : EP.TV_DETAIL;
  return TMDB_API_HOST + base + '/' + tmdbId + '?language=zh-CN&append_to_response=credits';
}