import request from '@/axios';

// ==================== 武术赛事项目管理接口 ====================

/**
 * 项目分页查询
 * @param {Number} current - 当前页,默认1
 * @param {Number} size - 每页条数,默认10
 * @param {Object} params - 查询参数
 * @param {Number} params.competitionId - 赛事ID
 * @param {String} params.projectName - 项目名称(可选)
 * @param {Number} params.category - 分组类别(可选)
 * @param {Number} params.eventType - 项目类型(可选)
 * @param {Number} params.participantType - 参赛类型(可选,1-单人,2-集体)
 */
export const getProjectList = (current, size, params) => {
  return request({
    url: '/api/martial/project/list',
    method: 'get',
    params: {
      current,
      size,
      ...params
    }
  })
}

/**
 * 获取项目详情
 * @param {Number} id - 项目ID
 */
export const getProjectDetail = (id) => {
  return request({
    url: '/api/martial/project/detail',
    method: 'get',
    params: { id }
  })
}

/**
 * 新增项目
 * @param {Object} data - 项目数据
 */
export const addProject = (data) => {
  return request({
    url: '/api/martial/project/save',
    method: 'post',
    data
  })
}

/**
 * 修改项目
 * @param {Object} data - 项目数据
 */
export const updateProject = (data) => {
  return request({
    url: '/api/martial/project/update',
    method: 'post',
    data
  })
}

/**
 * 新增或修改项目
 * @param {Object} data - 项目数据
 * @param {Number} data.competitionId - 赛事ID
 * @param {String} data.projectName - 项目名称
 * @param {String} data.projectCode - 项目编码
 * @param {Number} data.category - 分组类别(1-男子,2-女子,3-团体,4-混合)
 * @param {Number} data.eventType - 项目类型(1-套路,2-散打,3-器械,4-对练)
 * @param {Number} data.participantType - 参赛类型(1-单人,2-集体)
 * @param {Number} data.registrationFee - 报名费用
 * @param {String} data.registrationStartTime - 报名开始时间
 * @param {String} data.registrationEndTime - 报名结束时间
 * @param {Number} data.maxParticipants - 最大参赛人数
 * @param {Number} data.sortOrder - 排序序号
 * @param {String} data.rules - 比赛规则
 * @param {String} data.remark - 备注
 */
export const submitProject = (data) => {
  return request({
    url: '/api/martial/project/submit',
    method: 'post',
    data
  })
}

/**
 * 删除项目
 * @param {String} ids - 项目ID,多个用逗号分隔
 */
export const removeProject = (ids) => {
  return request({
    url: '/api/martial/project/remove',
    method: 'post',
    params: { ids }
  })
}

/**
 * 导入项目
 * @param {Object} data - 导入数据
 */
export const importProjects = (data) => {
  return request({
    url: '/api/martial/project/import',
    method: 'post',
    data
  })
}

/**
 * 导出项目
 * @param {Object} params - 导出参数
 */
export const exportProjects = (params) => {
  return request({
    url: '/api/martial/project/export',
    method: 'get',
    params,
    responseType: 'blob'
  })
}

/**
 * 获取赛事的项目列表（不分页，用于下拉选择）
 * @param {Number} competitionId - 赛事ID
 */
export const getProjectsByCompetition = (competitionId) => {
  return request({
    url: '/api/martial/project/list',
    method: 'get',
    params: {
      competitionId,
      current: 1,
      size: 1000  // 获取全部项目
    }
  })
}
