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

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

/**
 * updateRecommendStatus - 批量更新品牌推荐状态
 *
 * 通过 POST 请求批量更新品牌的推荐状态（如是否推荐）。
 *
 * @param {Array<Object>} data - 推荐状态数据，包含品牌ID数组和推荐状态。
 *                               示例：{ ids: [1, 2, 3], recommendStatus: 1 }
 * @returns {Promise} - 返回一个 Promise 对象，包含操作结果。
 *
 * 用法示例：
 * updateRecommendStatus({ ids: [1, 2], recommendStatus: 1 }).then(response => {
 *   console.log(response);
 * });
 */
export function updateRecommendStatus(data) {
  return request({
    url: '/home/brand/update/recommendStatus', // 接口URL：更新推荐状态
    method: 'post',                            // 请求方法：POST
    data: data                                 // 请求体，包含品牌ID和状态
  })
}

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

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

/**
 * updateHomeBrandSort - 更新品牌的排序值
 *
 * 通过 POST 请求更新指定品牌的排序值。
 *
 * @param {Object} params - 排序参数，包含品牌ID和新的排序值。
 *                          示例：{ id: 1, sort: 10 }
 * @returns {Promise} - 返回一个 Promise 对象，包含操作结果。
 *
 * 用法示例：
 * updateHomeBrandSort({ id: 1, sort: 10 }).then(response => {
 *   console.log(response);
 * });
 */
export function updateHomeBrandSort(params) {
  return request({
    url: '/home/brand/update/sort/' + params.id, // 接口URL：更新品牌排序
    method: 'post',                             // 请求方法：POST
    params: params                              // 排序参数，通过 URL 查询字符串传递
  })
}
