import type { Plan } from './interface'
import http from '@/api'
import type { ErrorSystem } from '../device/interface/error'
import type { Device } from '../device/interface/device'

/**
 * @name 检测计划管理模块
 */
// 获取检测计划列表
export const getPlanList = (params: Plan.ReqPlanParams) => {
    return http.post(`/adPlan/list`, params)
}

// 新增检测计划
export const addPlan = (params:any) => {
  return http.post(`/adPlan/add`, params)
}

// 编辑检测计划
export const updatePlan = (params: any) => {
  return http.post(`/adPlan/update`, params)
}

// 删除检测计划
export const deletePlan = (params: { id: string[] }) => {
  return http.post(`/adPlan/delete`, params)
}

// 获取指定模式下所有检测源 
export const getTestSourceList = (params: Plan.ReqPlan) => {
  return http.get(`/pqSource/getAll?patternId=${params.pattern}`)
}

// 获取指定模式下所有检测脚本
export const getPqScriptList = (params: Plan.ReqPlan) => {
  return http.get(`/pqScript/getAll?patternId=${params.pattern}`)
}

//获取所有误差体系
export const getPqErrSysList = () => {
  return http.get<ErrorSystem.ErrorSystemList>(`/pqErrSys/getAll`)
}

//获取指定模式下所有未绑定的设备
export const getUnboundPqDevList = (params: Plan.ReqPlan) => {
  return http.get(`/pqDev/listUnbound?pattern=${params.pattern}`)
}

//根据检测计划id查询出所有已绑定的设备
export const getBoundPqDevList = (params: any) => {
  return http.post(`/pqDev/listByPlanId`,params)
}

//检测计划绑定设备
// export const BindPqDevList = (params: any) => {
//   return http.post(`/pqDev/bindDev`,params)
// }

// 按照模式查询检测计划（用于首页展示）
export const getPlanListByPattern = (params:Plan.ReqPlan) => {
  return http.get(`/adPlan/listByPattern?pattern=${params.pattern}`)
}

// 导出检测计划
export const exportPlan=(params: Device.ReqPqDevParams)=>{
  return http.download(`/adPlan/export`, params)
}

// 下载模板
export const downloadTemplate = () => {
  return http.download(`/adPlan/downloadTemplate`)
}
// 导入检测计划
export const importPlan=(params: Device.ReqPqDevParams)=>{
  return http.upload(`/adPlan/import`, params)
}

//导出被检设备
export const downloadDevData=(params: Device.ReqPqDevParams)=>{
  return http.download(`/report/generateReport`, params)
}