/**
 * EMS记录数据模块类型定义
 */

/**
 * 告警数据VO
 */
export interface RecordAlarmDataVO {
  objId: string | number;
  alarmCode: string;
  alarmName: string;
  monitorId?: string | number;
  monitorName?: string;
  alarmLevel?: number;
  alarmValue?: number;
  alarmTime?: string;
  alarmStatus?: number;
  handleTime?: string;
  handleBy?: string;
  handleRemark?: string;
  createBy?: string;
  createTime?: string;
  updateBy?: string;
  updateTime?: string;
}

export interface RecordAlarmDataForm {
  objId?: string | number;
  alarmCode?: string;
  alarmName?: string;
  monitorId?: string | number;
  alarmLevel?: number;
  alarmValue?: number;
  alarmTime?: string;
  alarmStatus?: number;
  handleRemark?: string;
}

export interface RecordAlarmDataQuery extends PageQuery {
  alarmCode?: string;
  alarmName?: string;
  monitorId?: string | number;
  alarmLevel?: number;
  alarmStatus?: number;
  alarmTime?: string;
}

/**
 * 告警规则VO
 */
export interface RecordAlarmRuleVO {
  objId: string | number;
  ruleCode: string;
  ruleName: string;
  monitorId?: string | number;
  monitorName?: string;
  alarmCondition?: string;
  alarmLevel?: number;
  isEnabled?: number;
  remark?: string;
  createBy?: string;
  createTime?: string;
  updateBy?: string;
  updateTime?: string;
}

export interface RecordAlarmRuleForm {
  objId?: string | number;
  ruleCode?: string;
  ruleName?: string;
  monitorId?: string | number;
  alarmCondition?: string;
  alarmLevel?: number;
  isEnabled?: number;
  remark?: string;
}

export interface RecordAlarmRuleQuery extends PageQuery {
  ruleCode?: string;
  ruleName?: string;
  monitorId?: string | number;
  alarmLevel?: number;
  isEnabled?: number;
}

/**
 * DNB即时数据VO
 */
export interface RecordDnbInstantVO {
  objId: string | number;
  monitorId?: string | number;
  monitorName?: string;
  voltage?: number;
  current?: number;
  power?: number;
  powerFactor?: number;
  frequency?: number;
  recordTime?: string;
  createTime?: string;
}

export interface RecordDnbInstantForm {
  objId?: string | number;
  monitorId?: string | number;
  voltage?: number;
  current?: number;
  power?: number;
  powerFactor?: number;
  frequency?: number;
  recordTime?: string;
}

export interface RecordDnbInstantQuery extends PageQuery {
  monitorId?: string | number;
  recordTime?: string;
  startTime?: string;
  endTime?: string;
}

/**
 * IOT即时数据VO
 */
export interface RecordIOTInstantVO {
  objId: string | number;
  monitorId?: string | number;
  monitorName?: string;
  temperature?: number;
  humidity?: number;
  pressure?: number;
  recordTime?: string;
  createTime?: string;
}

export interface RecordIOTInstantForm {
  objId?: string | number;
  monitorId?: string | number;
  temperature?: number;
  humidity?: number;
  pressure?: number;
  recordTime?: string;
}

export interface RecordIOTInstantQuery extends PageQuery {
  monitorId?: string | number;
  recordTime?: string;
  startTime?: string;
  endTime?: string;
}

/**
 * 蒸汽即时数据VO
 */
export interface RecordSteamInstantVO {
  objId: string | number;
  monitorId?: string | number;
  monitorName?: string;
  steamFlow?: number;
  steamPressure?: number;
  steamTemperature?: number;
  totalFlow?: number;
  recordTime?: string;
  createTime?: string;
}

export interface RecordSteamInstantForm {
  objId?: string | number;
  monitorId?: string | number;
  steamFlow?: number;
  steamPressure?: number;
  steamTemperature?: number;
  recordTime?: string;
}

export interface RecordSteamInstantQuery extends PageQuery {
  monitorId?: string | number;
  recordTime?: string;
  startTime?: string;
  endTime?: string;
}

/**
 * 振动即时数据VO
 */
export interface RecordVibrationInstantVO {
  objId: string | number;
  monitorId?: string | number;
  monitorName?: string;
  vibrationX?: number;
  vibrationY?: number;
  vibrationZ?: number;
  recordTime?: string;
  createTime?: string;
}

export interface RecordVibrationInstantForm {
  objId?: string | number;
  monitorId?: string | number;
  vibrationX?: number;
  vibrationY?: number;
  vibrationZ?: number;
  recordTime?: string;
}

export interface RecordVibrationInstantQuery extends PageQuery {
  monitorId?: string | number;
  recordTime?: string;
  startTime?: string;
  endTime?: string;
}

/**
 * 水即时数据VO
 */
export interface RecordWaterInstantVO {
  objId: string | number;
  monitorId?: string | number;
  monitorName?: string;
  waterFlow?: number;
  waterPressure?: number;
  waterTemperature?: number;
  totalFlow?: number;
  recordTime?: string;
  createTime?: string;
}

export interface RecordWaterInstantForm {
  objId?: string | number;
  monitorId?: string | number;
  waterFlow?: number;
  waterPressure?: number;
  waterTemperature?: number;
  recordTime?: string;
}

export interface RecordWaterInstantQuery extends PageQuery {
  monitorId?: string | number;
  recordTime?: string;
  startTime?: string;
  endTime?: string;
}
