/**
 * 看板数据类型定义
 */

/**
 * 完整看板数据（原接口返回）
 */
export interface DashboardVO {
  /** 统计概览 */
  overview: StatisticsOverview;
  /** 设备状态列表 */
  deviceStatusList: DeviceStatusVO[];
  /** 成功率趋势数据 */
  successRateTrends: SuccessRateTrend[];
  /** 告警统计列表 */
  alarmStats: AlarmStatVO[];
}

/**
 * 统计概览
 */
export interface StatisticsOverview {
  /** 设备总数 */
  deviceTotal: number;
  /** 在线数量 */
  onlineCount: number;
  /** 离线数量 */
  offlineCount: number;
  /** 告警数量 */
  alarmCount: number;
}

/**
 * 告警统计
 */
export interface AlarmStatVO {
  /** 告警时间 */
  alarmTime: string;
  /** 设备名称 */
  deviceName: string;
  /** 位置 */
  location: string;
  /** 告警级别 */
  alarmLevel: string;
  /** 告警行为 */
  alarmAction: string;
}

/**
 * 实时统计数据（接口1返回）
 * 按秒刷新：顶部统计 + 告警列表
 */
export interface RealtimeStats {
  /** 统计概览 */
  overview: StatisticsOverview;
  /** 告警统计列表 */
  alarmStats: AlarmStatVO[];
}

/**
 * 最新读取记录
 */
export interface LatestReadRecord {
  /** 工位名称 */
  stationName: string;
  /** 条码信息 */
  barcode: string;
  /** 读取时间 */
  recordTime: string;
  /** 读取状态 (1-成功;0-失败) */
  readStatus: string;
}

/**
 * 设备状态（接口2返回）
 * 定时刷新：设备树 + 设备最新读取记录
 */
export interface DeviceStatusVO {
  /** 设备ID */
  deviceId: number;
  /** 设备编号 */
  deviceCode: string;
  /** 设备名称 */
  deviceName: string;
  /** 所属位置ID */
  locationId: number;
  /** 位置别名 */
  locationAlias: string;
  /** 在线状态 (1-在线;0-离线) */
  onlineStatus: string;
  /** 告警状态 (0-正常;1-告警) */
  alarmStatus: string;
  /** 最新读取记录 */
  latestRecord?: LatestReadRecord;
}

/**
 * 成功率趋势（接口3返回）
 * 按小时统计
 */
export interface SuccessRateTrend {
  /** 时间点（小时，如 "09:00"） */
  timePoint: string;
  /** 成功率（百分比，如 98.5） */
  successRate: number | null;
}
