import request from '@/config/axios'

// 设备基本信息 VO
export interface InfoVO {
  id: number // 设备ID
  deviceNumber: string // 设备编号
  deviceName: string // 设备名称
  deviceCover: string // 设备主图
  deviceImg: string // 设备图片
  assetNumber: string // 资产编号
  serialNumber: string // 序列号
  deviceCategoryId: string // 类别
  deviceStatus: string // 设备状态
  deviceSpecial: boolean // 是否特种设备
  usageStatus: string // 使用状态
  brand: string // 品牌
  model: string // 型号
  deviceLevel: string // 设备等级
  deviceDept: string // 所属部门
  usageLocation: string // 功能位置
  supplierCode: string // 供应商编码
  supplierName: string // 供应商名称
  productionNumber: string // 生产编号
  deviceType: string // 设备类型
  deviceSource: string // 设备来源
  purchaseDate: Date // 购置日期
  purchaseAmount: number // 采购金额
  commissioningDate: Date // 启用日期
  warrantyPeriod: Date // 保修期至
  scrapDate: Date // 预计报废日期
  technicalParameters: string // 技术参数
  unit: string // 单位
  power: string // 功率
  weight: string // 重量
  volume: string // 体积
  temperature: string // 温度
  humidity: string // 湿度
  specificationModel: string // 规格型号
  accountingMethod: string // 入账方式
  electronicTagCode: string // 电子标签码
  remark: string // 备注
  responsible?: string // 设备负责人
  mainDeviceNumber?: string // 主设备编码
  tips?: string // 标签
  stockLocation?: string // 存放地点
  deviceCompany?: number // 所属公司
  usageCompany?: number // 使用公司
  usageDept?: number // 使用部门
  usageUser?: string // 使用人
  usageMonthNum?: number // 使用期限
  stockInOrderNum?: string // 入库 / 收货单号
  maintainSupplierName?: string // 维保供应商
  maintainSupplierPhone?: string // 维保联系电话
  maintainSupplierResponsible?: string // 维保负责人
  maintainExpireTime?: Date // 维保到期时间
  maintainRemark?: string // 维保说明
}

// 设备基本信息 API
export const InfoApi = {
  // 查询设备基本信息分页
  getInfoPage: async (params: any) => {
    return await request.get({ url: `/device/info/page`, params })
  },

  // 查询设备基本信息详情
  getInfo: async (id: number) => {
    return await request.get({ url: `/device/info/get?id=` + id })
  },

  // 新增设备基本信息
  createInfo: async (data: InfoVO) => {
    return await request.post({ url: `/device/info/create`, data })
  },

  // 修改设备基本信息
  updateInfo: async (data: InfoVO) => {
    return await request.put({ url: `/device/info/update`, data })
  },

  // 删除设备基本信息
  deleteInfo: async (id: number) => {
    return await request.delete({ url: `/device/info/delete?id=` + id })
  },

  // 导出设备基本信息 Excel
  exportInfo: async (params) => {
    return await request.download({ url: `/device/info/export-excel`, params })
  },
  getDeviceInfoQr: async (params: any) => {
    return await request.get({ url: `/device/info/qr`, params })
  }
}
