import { http, Method } from '@/utils/request.js'
import storage from "@/utils/storage.js";
const userInfo = storage.getUserInfo()
/**
 * 创建作业配置
 * 仅作为前端预留，后端实现由服务端负责
 * @param {Object} data JobCreateState
 */
export function createJob(data) {
  data.userId = userInfo.userid
  return http.request({
    url: '/uniapp/deviceTasks/add',
    method: Method.POST,
    needToken: true,
    data
  })
}

/**
 * 获取作业任务列表
 * 接口：GET /uniapp/deviceTasks/list
 * @param {Object} params
 * @param {number} [params.pageNum] 页码
 * @param {number} [params.pageSize] 每页条数
 * @param {string} [params.taskName] 作业名称（模糊）
 * @param {number} [params.taskStatus] 作业状态：0未开始/1进行中/2已完成/3已取消
 * @param {number} [params.areaType] 工作区域类型
 * @param {string} [params.startTime] 创建时间起
 * @param {string} [params.endTime] 创建时间止
 * @param {number|string} [params.deviceId] 设备ID（如果后端支持筛选，可传）
 */
export function deviceTasksList(params = {}) {
  return http.request({
    url: '/uniapp/deviceTasks/list',
    method: Method.GET,
    needToken: true,
    data: params
  })
}
/**
  * 获取车辆作业详细信息
*/
export function getInfo(id){
  return http.request({
    url: `/uniapp/deviceTasks/${id}`,
    method: Method.GET,
    needToken: true
  })
}

/**
  * 删除当前作业 
*/
export function deleteTask(taskId){
  return http.request({
    url: `/uniapp/deviceTasks/delete/${taskId}`,
    method: Method.DELETE,
    needToken: true
  })
}

/**
 * 开始作业
 * 接口：PUT /uniapp/deviceTasks/start/{taskId}
 */
export function startTask(taskId) {
  return http.request({
    url: `/uniapp/deviceTasks/start/${parseInt(taskId)}`,
    method: Method.PUT,
    needToken: true
  })
}

/**
 * 暂停作业
 * 接口：PUT /uniapp/deviceTasks/pause/{taskId}
 */
export function pauseTask(taskId) {
  return http.request({
    url: `/uniapp/deviceTasks/pause/${taskId}`,
    method: Method.PUT,
    needToken: true
  })
}

/**
 * 停止作业
 * 接口：PUT /uniapp/deviceTasks/stop/{taskId}
 */
export function stopTask(taskId) {
  return http.request({
    url: `/uniapp/deviceTasks/stop/${taskId}`,
    method: Method.PUT,
    needToken: true
  })
}

/**
 * 召回设备
 * 接口：PUT /uniapp/deviceTasks/recall/{taskId}
 */
export function recallTask(taskId) {
  return http.request({
    url: `/uniapp/deviceTasks/recall/${taskId}`,
    method: Method.PUT,
    needToken: true
  })
}

/**
 * 获取设备实时数据
 * 接口：GET /uniapp/deviceTasks/realtime/{deviceId}
 * @param {string|number} deviceId 设备编号/id
 */
export function getRealtimeData(deviceId) {
  return http.request({
    url: `/uniapp/deviceTasks/realtime/${deviceId}`,
    method: Method.GET,
    needToken: true
  })
}