import { service } from '../utils/request';

/**
 * 获取交通预警事件列表
 * @param {Object} data - 查询参数
 * @param {number} data.eventCategory - 事件分类：1-路面事件，2-违章事件
 * @param {number} data.page - 当前页号
 * @param {number} data.pageSize - 每页大小
 */
export function getTrafficEventList(data) {
  return service({
    url: '/traffic/eventTask/page',
    method: 'post',
    data
  });
}

/**
 * 获取交通预警事件详情
 * @param {string|number} taskId - 任务ID
 */
export function getTrafficEventDetail(taskId) {
  return service({
    url: `/traffic/eventTask/detail/${taskId}`,
    // url: `/traffic/event/info/2/${taskId}`,
    method: 'get',
  });
}

/**
 * 定位打卡
 * @param {Object} data - 打卡参数
 * @param {string|number} data.taskId - 任务ID
 * @param {string} data.address - 地址
 * @param {string} data.clickLatLong - 经纬度
 */
export function clockIn(data) {
  return service({
    url: '/traffic/eventTask/click',
    method: 'post',
    data
  });
}

/**
 * 任务反馈
 * @param {Object} data - 反馈参数
 * @param {string|number} data.taskId - 任务ID
 * @param {string} data.feedback - 反馈内容
 * @param {string} data.images - 图片URL（逗号拼接）
 * @param {string} data.video - 视频URL
 * @param {string} data.filesUrl - 附件URL
 * @param {string} data.singUrl - 签名URL
 */
export function feedback(data) {
  return service({
    url: '/traffic/eventTask/feedback',
    method: 'post',
    data
  });
}

/**
 * 文件上传（图片/视频）
 * @param {File|Blob} file - 文件对象
 * @returns {Promise<string>} 上传后的URL
 */
export function uploadFile(file) {
  const formData = new FormData();
  formData.append('file', file);
  return service({
    url: '/common/upload',
    method: 'post',
    data: formData,
    headers: { 'Content-Type': 'multipart/form-data' }
  });
}

/**
 * 未拦截成功
 * @param {string|number} taskId - 任务ID
 */
export function interceptNotSuccess(taskId) {
  return service({
    url: `/traffic/eventTask/intercept/${taskId}`,
    method: 'get'
  });
}

/**
 * 获取卡口预警列表
 * @param {Object} data - 查询参数
 * @param {string|number} data.taskId - 关联任务ID
 * @param {number} data.page - 当前页号
 * @param {number} data.pageSize - 每页大小
 */
export function getBayonetAlertList(data) {
  return service({
    url: '/traffic/bayonetAlert/page',
    method: 'post',
    data
  });
}

/**
 * 按任务状态统计数量
 * @param {Object} data - 查询参数
 * @param {number} data.userId - 用户ID
 * @param {string} data.startTime - 开始时间
 * @param {string} data.endTime - 结束时间
 */
export function countByTaskStatus(data) {
  return service({
    url: '/traffic/eventTask/countByTaskStatus',
    method: 'post',
    data
  });
}

/**
 * 获取拦截预警列表
 * @param {Object} data - 查询参数
 * @param {number} data.userId - 用户ID
 * @param {number} data.status - 状态：0-未执行
 * @param {number} data.pageSize - 每页大小
 * @param {number} data.page - 页号，从1开始
 */
export function getInterceptWarnList(data) {
  return service({
    url: '/traffic/eventTask/interceptWarn/page',
    method: 'post',
    data
  });
}

/**
 * 获取未完成预警事件（地图用）
 * @param {Object} params - 查询参数
 * @param {number} params.eventCategory - 事件分类：1-路况预警，2-违章预警
 * @param {string} params.areaCode - 区域编码
 */
export function getEventUnfinished(params) {
  return service({
    url: '/traffic/event/eventUnfinished',
    method: 'get',
    params
  });
}

/**
 * 新增随时拍
 * @param {Object} data - 随时拍数据
 * @param {string} data.hphm - 号牌号码（必填）
 * @param {string} data.sbbh - 设备编号
 * @param {string} data.zqmj - 执勤民警
 * @param {string} data.clfl - 车辆分类
 * @param {string} data.hpzl - 号牌种类
 * @param {string} data.xzqh - 违法地行政区划
 * @param {string} data.wfdd - 违法地点
 * @param {string} data.lddm - 路段代码
 * @param {number} data.kms - 公里数
 * @param {string} data.ddms - 地点米数
 * @param {string} data.wfdz - 违法地址
 * @param {string} data.wfsj - 违法时间
 * @param {string} data.wfsj1 - 违法时间1
 * @param {string} data.wfxw - 违法行为
 * @param {string} data.scz - 实测值
 * @param {string} data.bzz - 标准值
 * @param {string} data.zpsl - 照片数量
 * @param {string} data.zpxm - 图片文件名
 * @param {string} data.zpstr1 - 照片1 (base64)
 * @param {string} data.zpstr2 - 照片2 (base64)
 * @param {string} data.zpstr3 - 照片3 (base64)
 * @param {string} data.wfspdz - 违法视频地址
 * @param {string} data.fxjg - 违法发现机关
 * @param {string} data.tpfs - 图片方式
 * @param {string} data.zpur11 - 照片链接1
 * @param {string} data.zpur12 - 照片链接2
 * @param {string} data.zpur13 - 照片链接3
 * @param {string} data.tzsh - 通知书号
 * @param {string} data.tzrq - 通知日期
 */
export function addSsPai(data) {
  return service({
    url: '/api/traffic/sspai',
    method: 'post',
    data
  });
}
