deviceModel.ts 1.98 KB
import { StructJSON } from './modelOfMatterModel';
import { BasicPageParams } from '/@/api/model/baseModel';
import { AlarmStatus } from '/@/views/alarm/log/config/detail.config';
export enum DeviceState {
  INACTIVE = 'INACTIVE',
  ONLINE = 'ONLINE',
  OFFLINE = 'OFFLINE',
}
export enum DeviceTypeEnum {
  GATEWAY = 'GATEWAY',
  DIRECT_CONNECTION = 'DIRECT_CONNECTION',
  SENSOR = 'SENSOR',
}
export type DeviceProfileQueryParam = BasicPageParams & DeviceProfileParam & DeviceId;
export type DeviceQueryParam = BasicPageParams & DeviceParam;
export type DeviceParam = {
  name?: string;
  deviceProfileId?: string;
};
export type DeviceProfileParam = {
  name?: string;
  status?: AlarmStatus;
};
export type DeviceId = {
  id?: string;
};

export interface DeviceModel {
  id: string;
  name: string;
  deviceInfo: any;
  activeTime: string;
  deviceState: DeviceState;
  alarmStatus: number;
  profileId: string;
  label: string;
  lastConnectTime: string;
  deviceType: DeviceTypeEnum;
}

export interface DeviceProfileModel {
  id: string;
  name: string;
  transportType: string;
  createTime: string;
  description: string;
}

export type ChildDeviceParams = BasicPageParams & {
  formId: string;
};

export interface Configuration {
  type: string;
}

export interface TransportConfiguration {
  type: string;
}

export interface ProvisionConfiguration {
  type: string;
  provisionDeviceSecret?: any;
}

export interface ProfileData {
  configuration: Configuration;
  transportConfiguration: TransportConfiguration;
  provisionConfiguration: ProvisionConfiguration;
  alarms?: any;
}

export interface DeviceRecord {
  id: string;
  creator: string;
  createTime: string;
  name: string;
  tenantId: string;
  transportType: string;
  provisionType: string;
  deviceType: string;
  tbProfileId: string;
  profileData: ProfileData;
  defaultQueueName: string;
  image: string;
  type: string;
  default: boolean;
}

export interface DeviceModelOfMatterAttrs {
  name: string;
  identifier: string;
  detail: StructJSON;
}