/**
 * 跌倒统计入参
 * @description: 分页查询设备的跌倒统计信息
 * @param devId 设备ID
 * @param tenantId 租户id
 * @param createTimeStart 起始时间 格式yyyy-MM-dd
 * @param createTimeEnd 结束时间 格式yyyy-MM-dd
 * @param pageNo 页码
 * @param pageSize 每页条数
 */
export interface StatsFallQueryParams {
  pageNo: number // 页码
  pageSize: number // 每页条数
  devId?: ID // 设备ID
  tenantId?: ID // 租户id
  createTimeStart: string // 起始时间 格式yyyy-MM-dd
  createTimeEnd: string // 结束时间 格式yyyy-MM-dd
}

/**
 * 跌倒统计出参 rows
 * @description: 分页查询设备的跌倒统计信息
 * @param createId 创建人
 * @param updateId 修改人
 * @param createTime 创建时间
 * @param updateTime 更新时间
 * @param isDeleted 删除标记：0-未删除，1-已删除
 * @param remark 备注
 * @param eventListId 事件主键
 * @param devId 设备Id
 * @param pose 姿态
 * @param targetPoints target数组
 * @param eventType 事件类型
 * @param isHandle 是否处理：0-未处理，1-已处理
 */
export interface StatsFallQueryDataRow {
  createId: ID // 创建人
  updateId: ID // 修改人
  createTime: string // 创建时间
  updateTime: string // 更新时间
  isDeleted: SwitchType // 删除标记：0-未删除，1-已删除
  remark: ID // 备注
  eventListId: ID // 事件主键
  devId: ID // 设备Id
  pose: ID // 姿态
  poseName: string // 姿态名称
  targetPoints: ID // target数组
  eventType: ID // 事件类型
  eventTypeName: string // 事件类型名称
  isHandle: SwitchType // 是否处理：0-未处理，1-已处理
}

/**
 * 跌倒统计出参
 * @description: 分页查询设备的跌倒统计信息
 */
export interface StatsFallQueryData {
  rows: StatsFallQueryDataRow[]
  total: number
  pageNum: number
  pageSize: number
  outTotalPageNum: boolean
  totalPageNum: number
}

/**
 * 告警统计入参
 */
export interface AtatsAlarmQueryParams {
  pageNo: number // 页码
  pageSize: number // 每页条数
  clientId?: ID // 设备ID
  tenantId?: ID // 租户id
  createTimeStart: string // 起始时间 格式yyyy-MM-dd
  createTimeEnd: string // 结束时间 格式yyyy-MM-dd
  eventType?: ID // 事件类型 0:跌倒 1:跌倒恢复 2:跌倒异常 3:跌倒异常恢复 4:跌倒异常恢复
}

/**
 * 告警统计出参 rows
 */
export interface StatsAlarmQueryDataRow {
  id: ID // 主键ID
  clientId: ID // 设备ID
  tenantId: ID // 租户ID
  devName: string // 设备名称
  uuid: string // 告警事件uuid
  planUuid: string // 告警计划uuid
  eventType: string // 事件类型
  eventTypeName: string // 事件类型名称
  info: string //事件内容
  isHandle: SwitchType // 是否处理
  createTime: ID // 事件发生时间
  remark: string // 备注
}

/**
 * 告警统计出参
 */
export interface StatsAlarmQueryData {
  rows: StatsAlarmQueryDataRow[]
  total: number
  pageNum: number
  pageSize: number
  outTotalPageNum: boolean
  totalPageNum: number
}

type AgeList = {
  ageRange: string // 年龄段
  count: number // 数量
}
type GuardList = {
  guardType: string // 监测对象类型
  count: number // 数量
  name?: string // 监测对象类型名称
}
type InstallPositionList = {
  installPosition: string // 	安装位置
  count: number // 	安装数量
  name?: string // 安装位置名称
}
/**
 * 首页大屏统计出参
 */
export interface StatsHomeScreenQueryData {
  deviceCount: number // 设备总数
  onlineCount: number // 在线设备数
  systemGuardDay: number // 系统守护天数
  fallingCount: number // 今日跌倒统计
  alarmCount: number // 今日告警统计
  detectedCount: number // 当天检测到人数
  activeRate: number // 今日活跃度
  ageList: AgeList[] // 年龄统计信息
  guardList: GuardList[] // 守护统计信息
  installPositionList: InstallPositionList[] // 安装位置统计信息
}

/**
 * 首页大屏历史跌倒统计出参
 */

export interface StatsHomeScreenFallHistory {
  monthStatInfo: {
    month: string
    fallingCount: number
  }[]
  dayStatInfo: {
    date: string
    fallingCount: number
  }[]
}

/**
 * 首页大屏历史告警统计出参
 */
export interface StatsHomeScreenAlarmHistory {
  monthStatInfo: {
    month: string
    alarmCount: number
  }[]
  dayStatInfo: {
    date: string
    alarmCount: number
  }[]
}
