import request from '@/utils/request'

/**
 * 查询事件列表（分页）
 * @param {Object} params 查询参数
 */
export function listEvents(params) {
  return request({
    url: '/api/events',
    method: 'get',
    params
  })
}

/**
 * 根据ID查询事件
 * @param {number|string} id 事件ID
 */
export function getEvent(id) {
  return request({
    url: `/api/events/${id}`,
    method: 'get'
  })
}

/**
 * 根据事件编号查询事件
 * @param {string} eventNo 事件编号
 */
export function getEventByNo(eventNo) {
  return request({
    url: `/api/events/no/${eventNo}`,
    method: 'get'
  })
}

/**
 * 新增事件
 * @param {Object} data 事件数据
 */
export function addEvent(data) {
  return request({
    url: '/api/events',
    method: 'post',
    data
  })
}

/**
 * 更新事件
 * @param {number|string} id 事件ID
 * @param {Object} data 事件数据
 */
export function updateEvent(id, data) {
  return request({
    url: `/api/events/${id}`,
    method: 'put',
    data
  })
}

/**
 * 删除事件（支持批量，仅限草稿）
 * @param {Array<number|string>} ids 事件ID数组
 */
export function removeEvents(ids) {
  return request({
    url: `/api/events/${ids}`,
    method: 'delete'
  })
}

/**
 * 开始处理事件（pending→processing）
 * @param {number|string} id 事件ID
 */
export function startProcessing(id) {
  return request({
    url: `/api/events/${id}/start-processing`,
    method: 'post'
  })
}

/**
 * 完成事件处理（processing→completed）
 * @param {number|string} id 事件ID
 */
export function completeEvent(id) {
  return request({
    url: `/api/events/${id}/complete`,
    method: 'post'
  })
}

/**
 * 归档事件（completed→archived）
 * @param {number|string} id 事件ID
 */
export function archiveEvent(id) {
  return request({
    url: `/api/events/${id}/archive`,
    method: 'post'
  })
}

/**
 * 查询事件操作日志
 * @param {number|string} id 事件ID
 * @param {Object} params 查询参数（action）
 */
export function listEventLogs(id, params) {
  return request({
    url: `/api/events/${id}/logs`,
    method: 'get',
    params
  })
}

/**
 * 上报事件
 * @param {number|string} id 事件ID
 * @param {Object} data 请求体 { reportContent }
 */
export function reportEvent(id, data) {
  return request({
    url: `/api/events/${id}/report`,
    method: 'post',
    data
  })
}

/**
 * 续报事件
 * @param {number|string} id 事件ID
 * @param {Object} data 请求体 { reportContent }
 */
export function followUpReport(id, data) {
  return request({
    url: `/api/events/${id}/follow-up-report`,
    method: 'post',
    data
  })
}

/**
 * 标记事件为重点
 * @param {number|string} id 事件ID
 */
export function pinEvent(id) {
  return request({
    url: `/api/events/${id}/pin`,
    method: 'post'
  })
}

/**
 * 取消事件重点标记
 * @param {number|string} id 事件ID
 */
export function unpinEvent(id) {
  return request({
    url: `/api/events/${id}/unpin`,
    method: 'post'
  })
}