import request from '@/axios';

// ==================== 武术赛事直播更新管理接口 ====================

/**
 * 直播更新分页查询
 * @param {Number} current - 当前页,默认1
 * @param {Number} size - 每页条数,默认10
 * @param {Object} params - 查询参数
 * @param {Number} params.competitionId - 赛事ID
 * @param {Number} params.projectId - 项目ID（可选）
 * @param {Number} params.venueId - 场地ID（可选）
 * @param {Number} params.updateType - 更新类型（可选）
 */
export const getLiveUpdateList = (current, size, params) => {
  return request({
    url: '/api/blade-martial/liveUpdate/list',
    method: 'get',
    params: {
      current,
      size,
      ...params
    }
  })
}

/**
 * 获取直播更新详情
 * @param {Number} id - 更新ID
 */
export const getLiveUpdateDetail = (id) => {
  return request({
    url: '/api/blade-martial/liveUpdate/detail',
    method: 'get',
    params: { id }
  })
}

/**
 * 发布直播更新
 * @param {Object} data - 更新数据
 * @param {Number} data.competitionId - 赛事ID
 * @param {Number} data.projectId - 项目ID（可选）
 * @param {Number} data.venueId - 场地ID（可选）
 * @param {Number} data.updateType - 更新类型（1赛况2成绩3通知4其他）
 * @param {String} data.title - 标题
 * @param {String} data.content - 内容
 * @param {Array} data.images - 图片URL数组（可选）
 * @param {String} data.videoUrl - 视频URL（可选）
 * @param {Number} data.isTop - 是否置顶（0否1是）
 */
export const publishLiveUpdate = (data) => {
  return request({
    url: '/api/blade-martial/liveUpdate/publish',
    method: 'post',
    data
  })
}

/**
 * 修改直播更新
 * @param {Object} data - 更新数据
 */
export const updateLiveUpdate = (data) => {
  return request({
    url: '/api/blade-martial/liveUpdate/update',
    method: 'post',
    data
  })
}

/**
 * 删除直播更新
 * @param {String} ids - 更新ID,多个用逗号分隔
 */
export const removeLiveUpdate = (ids) => {
  return request({
    url: '/api/blade-martial/liveUpdate/remove',
    method: 'post',
    params: { ids }
  })
}

/**
 * 批量发布直播更新
 * @param {Array} data - 更新数据数组
 */
export const batchPublishLiveUpdates = (data) => {
  return request({
    url: '/api/blade-martial/liveUpdate/batch-publish',
    method: 'post',
    data
  })
}

/**
 * 置顶/取消置顶直播更新
 * @param {Number} id - 更新ID
 * @param {Number} isTop - 是否置顶（0否1是）
 */
export const toggleTop = (id, isTop) => {
  return request({
    url: '/api/blade-martial/liveUpdate/toggle-top',
    method: 'post',
    params: { id, isTop }
  })
}

/**
 * 获取最新直播更新列表（不分页）
 * @param {Number} competitionId - 赛事ID
 * @param {Number} limit - 获取数量（默认10）
 */
export const getLatestUpdates = (competitionId, limit = 10) => {
  return request({
    url: '/api/blade-martial/liveUpdate/latest',
    method: 'get',
    params: { competitionId, limit }
  })
}

/**
 * 获取置顶直播更新列表
 * @param {Number} competitionId - 赛事ID
 */
export const getTopUpdates = (competitionId) => {
  return request({
    url: '/api/blade-martial/liveUpdate/top-updates',
    method: 'get',
    params: { competitionId }
  })
}

/**
 * 获取项目的直播更新
 * @param {Number} projectId - 项目ID
 * @param {Number} limit - 获取数量（默认20）
 */
export const getProjectUpdates = (projectId, limit = 20) => {
  return request({
    url: '/api/blade-martial/liveUpdate/project-updates',
    method: 'get',
    params: { projectId, limit }
  })
}

/**
 * 获取场地的直播更新
 * @param {Number} venueId - 场地ID
 * @param {Number} limit - 获取数量（默认20）
 */
export const getVenueUpdates = (venueId, limit = 20) => {
  return request({
    url: '/api/blade-martial/liveUpdate/venue-updates',
    method: 'get',
    params: { venueId, limit }
  })
}

/**
 * 搜索直播更新
 * @param {Object} params - 搜索参数
 * @param {Number} params.competitionId - 赛事ID
 * @param {String} params.keyword - 关键词
 * @param {Number} params.updateType - 更新类型（可选）
 * @param {String} params.startTime - 开始时间（可选）
 * @param {String} params.endTime - 结束时间（可选）
 */
export const searchLiveUpdates = (params) => {
  return request({
    url: '/api/blade-martial/liveUpdate/search',
    method: 'get',
    params
  })
}

/**
 * 上传直播图片
 * @param {File} file - 图片文件
 */
export const uploadLiveImage = (file) => {
  const formData = new FormData()
  formData.append('file', file)
  return request({
    url: '/api/blade-martial/liveUpdate/upload-image',
    method: 'post',
    data: formData,
    headers: {
      'Content-Type': 'multipart/form-data'
    }
  })
}

/**
 * 上传直播视频
 * @param {File} file - 视频文件
 */
export const uploadLiveVideo = (file) => {
  const formData = new FormData()
  formData.append('file', file)
  return request({
    url: '/api/blade-martial/liveUpdate/upload-video',
    method: 'post',
    data: formData,
    headers: {
      'Content-Type': 'multipart/form-data'
    }
  })
}

/**
 * 获取直播统计
 * @param {Number} competitionId - 赛事ID
 */
export const getLiveStatistics = (competitionId) => {
  return request({
    url: '/api/blade-martial/liveUpdate/statistics',
    method: 'get',
    params: { competitionId }
  })
}
