// 导入封装的 HTTP 请求工具，用于发送 HTTP 请求
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: '/flash/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: '/flash/update/status/' + id, // 接口URL：更新指定活动状态
    method: 'post',                    // 请求方法：POST
    params: params                     // 状态参数，通过 URL 查询字符串传递
  })
}

/**
 * deleteFlash - 删除指定的限时购活动
 *
 * 该函数通过 POST 请求删除指定ID的限时购活动。
 *
 * @param {number|string} id - 限时购活动的唯一标识ID
 * @returns {Promise} - 返回一个 Promise 对象，包含操作结果
 *
 * 用法示例：
 * deleteFlash(1).then(response => {
 *   console.log(response);
 * });
 */
export function deleteFlash(id) {
  return request({
    url: '/flash/delete/' + id, // 接口URL：删除指定活动
    method: 'post'              // 请求方法：POST
  })
}

/**
 * createFlash - 创建新的限时购活动
 *
 * 该函数通过 POST 请求向后端提交新的限时购活动数据。
 *
 * @param {Object} data - 活动的详细数据，例如 { name: 'Flash Sale', startTime: '2024-06-01' }
 * @returns {Promise} - 返回一个 Promise 对象，包含创建结果
 *
 * 用法示例：
 * createFlash({ name: 'Summer Flash Sale', startTime: '2024-06-01' }).then(response => {
 *   console.log(response);
 * });
 */
export function createFlash(data) {
  return request({
    url: '/flash/create', // 接口URL：创建限时购活动
    method: 'post',       // 请求方法：POST
    data: data            // 请求体，包含活动的详细数据
  })
}

/**
 * updateFlash - 更新指定的限时购活动
 *
 * 该函数通过 POST 请求提交更新后的活动数据，更新指定ID的限时购活动。
 *
 * @param {number|string} id - 限时购活动的唯一标识ID
 * @param {Object} data - 更新后的活动数据
 * @returns {Promise} - 返回一个 Promise 对象，包含操作结果
 *
 * 用法示例：
 * updateFlash(1, { name: 'Updated Flash Sale', startTime: '2024-06-15' }).then(response => {
 *   console.log(response);
 * });
 */
export function updateFlash(id, data) {
  return request({
    url: '/flash/update/' + id, // 接口URL：更新指定ID的活动
    method: 'post',             // 请求方法：POST
    data: data                  // 请求体，包含更新后的活动数据
  })
}
