import request from '@/config/axios'

// 计算公式 VO
export interface FormulaVO {
  id: number // ID
  name: string // 公式名称
  formulaCode: string // 公式编号
  formula: string // 公式
  resultType: string // 结果类型（产量，电耗，浆耗，水耗，气耗，参数）
  machineId: number // 机台ID
  remark: string // 备注
  isEnable: boolean // 是否启用
}

// 计算公式 API
export const FormulaApi = {
  // 查询计算公式分页
  getFormulaPage: async (params: any) => {
    return await request.get({ url: `/iot/formula/page`, params })
  },

  // 查询计算公式详情
  getFormula: async (id: number) => {
    return await request.get({ url: `/iot/formula/get?id=` + id })
  },

  // 新增计算公式
  createFormula: async (data: FormulaVO) => {
    return await request.post({ url: `/iot/formula/create`, data })
  },

  // 修改计算公式
  updateFormula: async (data: FormulaVO) => {
    return await request.put({ url: `/iot/formula/update`, data })
  },

  // 删除计算公式
  deleteFormula: async (id: number) => {
    return await request.delete({ url: `/iot/formula/delete?id=` + id })
  },

  // 导出计算公式 Excel
  exportFormula: async (params) => {
    return await request.download({ url: `/iot/formula/export-excel`, params })
  },

// ==================== 子表（计算公式明细） ====================

  // 获得计算公式明细分页
  getFormulaDetailPage: async (params) => {
    return await request.get({ url: `/iot/formula/formula-detail/page`, params })
  },
  // 新增计算公式明细
  createFormulaDetail: async (data) => {
    return await request.post({ url: `/iot/formula/formula-detail/create`, data })
  },

  // 修改计算公式明细
  updateFormulaDetail: async (data) => {
    return await request.put({ url: `/iot/formula/formula-detail/update`, data })
  },

  // 删除计算公式明细
  deleteFormulaDetail: async (id: number) => {
    return await request.delete({ url: `/iot/formula/formula-detail/delete?id=` + id })
  },

  // 获得计算公式明细
  getFormulaDetail: async (id: number) => {
    return await request.get({ url: `/iot/formula/formula-detail/get?id=` + id })
  },
}

// 变量记录 VO
export interface FormulaRecordVO {
  id: number // ID
  machineId: number // 机台ID
  machineName: string // 机台
  workerId: number // 用户id
  workerName: string // 用户
  resultType: string // 类型
  formulaId: number // 公式ID
  formulaCode: string // 公式编号
  dataValue: number // 值
  dataUnit: string // 单位
}

// 变量记录 API
export const FormulaRecordApi = {
  // 查询变量记录分页
  getFormulaRecordPage: async (params: any) => {
    return await request.get({ url: `/iot/formula-record/page`, params })
  },

  // 查询变量记录详情
  getFormulaRecord: async (id: number) => {
    return await request.get({ url: `/iot/formula-record/get?id=` + id })
  },

  // 新增变量记录
  createFormulaRecord: async (data: FormulaRecordVO) => {
    return await request.post({ url: `/iot/formula-record/create`, data })
  },

  // 修改变量记录
  updateFormulaRecord: async (data: FormulaRecordVO) => {
    return await request.put({ url: `/iot/formula-record/update`, data })
  },

  // 删除变量记录
  deleteFormulaRecord: async (id: number) => {
    return await request.delete({ url: `/iot/formula-record/delete?id=` + id })
  },

  // 导出变量记录 Excel
  exportFormulaRecord: async (params) => {
    return await request.download({ url: `/iot/formula-record/export-excel`, params })
  },
}
