import request from '@/config/axios'

/**
 * 设备分类属性 模型
 */
export interface DeviceAttrModelData {
  id?: number // 设备属性id
  code?: string // 设备属性编码
  name?: string // 设备属性名称
  defaultValue?: string // 默认值
  description?: string // 属性描述
  deviceCategoryId?: number // 设备分类id
  deviceId?: number // 设备id
  templateId?: number // 设备分类模板id
  requiredFlag?: number // 是否必填
  dataType: string // 数据类型，与 dataSpecs 的 dataType 保持一致
  type: string // 属性字段类型
  selectOptions: DeviceTemplateAttrs // 设备属性
}

/**
 * 设备 模拟属性
 */
export interface SimulatorData extends DeviceAttrModelData {
  simulateValue?: string | number // 用于存储模拟值
}

/**
 * DeviceTemplateAttrs 类型
 */
export interface DeviceTemplateAttrs {
  [key: string]: any
}

// 设备(分类)属性 模型 API
export const DeviceAttrModelApi = {
  // 查询 设备属性 分页
  getDeviceAttrModelPage: async (params: any) => {
    return await request.get({ url: `/pms/iot-device-category-template-attrs/page`, params })
  },

  // 获得设备属性列表
  getDeviceAttrModelList: async (params: any) => {
    return await request.get({ url: `/pms/iot-device-category-template-attrs/list`, params })
  },

  // 获得设备属性
  getDeviceAttrModelListByDeviceCategoryId: async (params: any) => {
    return await request.get({
      url: `/pms/iot-device-category-template-attrs/list-by-device-category-id?deviceCategoryId=`+params
    })
  },

  // 查询设备属性详情
  getDeviceAttrModel: async (id: number) => {
    return await request.get({ url: `/pms/iot-device-category-template-attrs/get?id=` + id })
  },

  // 新增设备属性
  createDeviceAttrModel: async (data: DeviceAttrModelData) => {
    return await request.post({ url: `/pms/iot-device-category-template-attrs/create`, data })
  },

  // 修改设备属性
  updateDeviceAttrModel: async (data: DeviceAttrModelData) => {
    return await request.put({ url: `/pms/iot-device-category-template-attrs/update`, data })
  },

  // 删除设备属性
  deleteDeviceAttrModel: async (id: number) => {
    return await request.delete({ url: `/pms/iot-device-category-template-attrs/delete?id=` + id })
  }
}
