import { get, post, put, del } from '../utils/request'

// 获取课程列表
export function getCourses(params) {
  return get('/bs/courses', params)
}

export function getCoursesMethod(params) {
  console.log(params)
  return get('/bs/courses', params)
}


// 获取课程详情
export function getCourseDetail(id) {
  return get(`/courses/${id}`)
}

// 创建新课程
export function createCourse(data) {
  return post('/courses', data)
}

// 更新课程
export function updateCourse(id, data) {
  return put(`/courses/${id}`, data)
}

// 删除课程
export function deleteCourse(id) {
  return del(`/courses/${id}`)
}

// 收藏/取消收藏课程
export function toggleFavoriteCourse(id) {
  return post(`/courses/${id}/favorite`)
}

/**
 * 高级课程搜索
 * @param {Object} params - 搜索参数
 * @param {number} params.page - 页码
 * @param {number} params.limit - 每页数量
 * @param {string} params.keyword - 搜索关键词
 * @param {string} params.category - 课程分类
 * @param {string} params.difficulty - 难度级别
 * @param {string} params.sortBy - 排序字段
 * @param {string} params.sortOrder - 排序方向 (asc/desc)
 * @param {string} params.startDate - 开始日期
 * @param {string} params.endDate - 结束日期
 * @param {Array} params.tags - 标签数组
 * @param {boolean} params.isFree - 是否免费
 * @returns {Promise}
 */
export function searchCourses(params) {
  // 处理数组参数
  let queryParams = { ...params }

  // 如果有标签数组，转换为逗号分隔的字符串
  if (params.tags && Array.isArray(params.tags) && params.tags.length > 0) {
    queryParams.tags = params.tags.join(',')
  }

  return get('/courses/search', queryParams)
}
