// 导入封装的 HTTP 请求工具，用于与后端 API 进行通信
import request from '@/utils/request'

/**
 * fetchList - 获取首页广告列表
 *
 * 通过 GET 请求获取首页广告列表，支持查询参数进行筛选或分页。
 *
 * @param {Object} params - 查询参数，例如分页和过滤条件。
 *                          示例：{ pageNum: 1, pageSize: 10 }
 * @returns {Promise} - 返回一个 Promise 对象，包含接口返回的数据。
 *
 * 用法示例：
 * fetchList({ pageNum: 1, pageSize: 10 }).then(response => {
 *   console.log(response);
 * });
 */
export function fetchList(params) {
  return request({
    url: '/home/advertise/list', // 接口URL：获取首页广告列表
    method: 'get',               // 请求方法：GET
    params: params               // 查询参数，通过 URL 传递
  })
}

/**
 * updateStatus - 更新指定广告的状态
 *
 * 通过 POST 请求更新首页广告的状态（启用/禁用）。
 *
 * @param {number|string} id - 广告的唯一标识ID。
 * @param {Object} params - 状态参数，例如 { status: 1 }。
 * @returns {Promise} - 返回一个 Promise 对象，包含操作结果。
 *
 * 用法示例：
 * updateStatus(1, { status: 1 }).then(response => {
 *   console.log(response);
 * });
 */
export function updateStatus(id, params) {
  return request({
    url: '/home/advertise/update/status/' + id, // 接口URL：更新广告状态
    method: 'post',                             // 请求方法：POST
    params: params                              // 状态参数，通过 URL 查询字符串传递
  })
}

/**
 * deleteHomeAdvertise - 批量删除首页广告
 *
 * 通过 POST 请求删除多个广告记录。
 *
 * @param {Array<number|string>} data - 广告ID数组，例如 [1, 2, 3]。
 * @returns {Promise} - 返回一个 Promise 对象，包含操作结果。
 *
 * 用法示例：
 * deleteHomeAdvertise([1, 2, 3]).then(response => {
 *   console.log(response);
 * });
 */
export function deleteHomeAdvertise(data) {
  return request({
    url: '/home/advertise/delete', // 接口URL：批量删除广告
    method: 'post',                // 请求方法：POST
    data: data                     // 请求体，包含广告ID数组
  })
}

/**
 * createHomeAdvertise - 创建新的首页广告
 *
 * 通过 POST 请求提交新的广告数据，创建首页广告。
 *
 * @param {Object} data - 广告的详细数据，例如 { name: '新广告', type: 1, pic: 'url' }。
 * @returns {Promise} - 返回一个 Promise 对象，包含操作结果。
 *
 * 用法示例：
 * createHomeAdvertise({ name: '新广告', type: 1 }).then(response => {
 *   console.log(response);
 * });
 */
export function createHomeAdvertise(data) {
  return request({
    url: '/home/advertise/create', // 接口URL：创建广告
    method: 'post',                // 请求方法：POST
    data: data                     // 请求体，包含广告数据
  })
}

/**
 * getHomeAdvertise - 获取指定广告详情
 *
 * 通过 GET 请求获取单个广告的详细信息。
 *
 * @param {number|string} id - 广告的唯一标识ID。
 * @returns {Promise} - 返回一个 Promise 对象，包含广告详情数据。
 *
 * 用法示例：
 * getHomeAdvertise(1).then(response => {
 *   console.log(response);
 * });
 */
export function getHomeAdvertise(id) {
  return request({
    url: '/home/advertise/' + id, // 接口URL：获取广告详情
    method: 'get'                 // 请求方法：GET
  })
}

/**
 * updateHomeAdvertise - 更新指定广告的信息
 *
 * 通过 POST 请求提交更新后的广告数据，更新指定广告的信息。
 *
 * @param {number|string} id - 广告的唯一标识ID。
 * @param {Object} data - 更新后的广告数据，例如 { name: '更新广告', type: 2 }。
 * @returns {Promise} - 返回一个 Promise 对象，包含操作结果。
 *
 * 用法示例：
 * updateHomeAdvertise(1, { name: '更新广告', type: 2 }).then(response => {
 *   console.log(response);
 * });
 */
export function updateHomeAdvertise(id, data) {
  return request({
    url: '/home/advertise/update/' + id, // 接口URL：更新广告信息
    method: 'post',                      // 请求方法：POST
    data: data                           // 请求体，包含更新后的广告数据
  })
}
