// 导入封装的 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: '/flashSession/list', // 接口URL：获取限时购场次列表
    method: 'get',             // 请求方法：GET
    params: params             // 查询参数，通过 URL 传递
  })
}

/**
 * fetchSelectList - 获取可选择的限时购场次列表
 *
 * 通过 GET 请求获取简化版的限时购场次数据，用于下拉选择框等场景。
 *
 * @param {Object} params - 查询参数，例如过滤条件等。
 *                          示例：{ flashId: 1 }
 * @returns {Promise} - 返回一个 Promise 对象，包含接口返回的数据。
 *
 * 用法示例：
 * fetchSelectList({ flashId: 1 }).then(response => {
 *   console.log(response);
 * });
 */
export function fetchSelectList(params) {
  return request({
    url: '/flashSession/selectList', // 接口URL：获取可选的场次列表
    method: 'get',                   // 请求方法：GET
    params: params                   // 查询参数
  })
}

/**
 * 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: '/flashSession/update/status/' + id, // 接口URL：更新场次状态
    method: 'post',                           // 请求方法：POST
    params: params                            // 状态参数，通过 URL 查询字符串传递
  })
}

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

/**
 * createSession - 创建新的限时购场次
 *
 * 通过 POST 请求提交新的场次数据，创建限时购场次。
 *
 * @param {Object} data - 场次的详细数据，例如 { name: '上午场', startTime: '08:00', endTime: '12:00' }。
 * @returns {Promise} - 返回一个 Promise 对象，包含操作结果。
 *
 * 用法示例：
 * createSession({ name: '上午场', startTime: '08:00', endTime: '12:00' }).then(response => {
 *   console.log(response);
 * });
 */
export function createSession(data) {
  return request({
    url: '/flashSession/create', // 接口URL：创建场次
    method: 'post',              // 请求方法：POST
    data: data                   // 请求体，包含场次数据
  })
}

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