import { DeviceProfileModel } from '../../device/model/deviceModel';
import { HistoryData } from './model';
import { defHttp } from '/@/utils/http/axios';
import { isString } from '/@/utils/is';

// 获取设备配置
export const getDeviceProfile = (deviceType?: string) => {
  return defHttp.get<DeviceProfileModel[]>({
    url: '/device_profile/me/list',
    params: { deviceType: isString(deviceType) ? deviceType : undefined },
  });
};

// 获取历史数据
export const getDeviceHistoryInfo = (params: Recordable) => {
  return defHttp.get<HistoryData>(
    {
      url: `/plugins/telemetry/DEVICE/${params.entityId}/values/timeseries`,
      params: { ...params, entityId: null, orderBy: 'ASC' },
    },
    {
      joinPrefix: false,
    }
  );
};

// 获取设备数据的keys
export const getDeviceDataKeys = (id: string) => {
  return defHttp.get<string[]>(
    {
      url: `/plugins/telemetry/DEVICE/${id}/keys/timeseries`,
    },
    {
      joinPrefix: false,
    }
  );
};
// 获取设备状态，在线 or 离线时间
export const getDeviceActiveTime = (entityId: string) => {
  return defHttp.get(
    {
      url: `/plugins/telemetry/DEVICE/${entityId}/values/attributes?keys=active`,
    },
    {
      joinPrefix: false,
    }
  );
};

// 获取设备属性
export const getDeviceAttribute = (entityId: string) => {
  return defHttp.get(
    {
      url: `/plugins/telemetry/DEVICE/${entityId}/values/attributes?keys`,
    },
    {
      joinPrefix: false,
    }
  );
};
