import { addEventTrace, getEventAll, getEventList, getEventTrace } from '@/api/iot/event'
import { message } from 'ant-design-vue'

export class EventController {
  static eventTypeMap = new Map([
    ['TRANSPORT_TO_PLATFORM', { name: '设备到平台', key: 'TRANSPORT_TO_PLATFORM' }],
    ['PLATFORM_TO_TRANSPORT', { name: '平台到设备', key: 'PLATFORM_TO_TRANSPORT' }],
    ['PLATFORM_PROCESS', { name: '平台处理', key: 'PLATFORM_PROCESS' }],
    ['PLATFORM_TO_RULE', { name: '平台到规则', key: 'PLATFORM_TO_RULE' }]
  ])

  static async page (params: IOT.API.EVENT.QueryParams) {
    return await getEventList(params)
  }

  static async list (params: {deviceId: string, lastId?: string, startTime?: number}) {
    return await getEventAll(params)
  }

  /**
  * 该函数检索指定设备 ID 的事件跟踪数据。
  * @param params - `params` 参数是一个包含单个属性 `deviceId` 的对象，它是一个表示设备 ID 的字符串。此参数用于检索指定设备的事件跟踪数据。
  * @returns `listTrace` 函数返回以 `params` 对象作为参数调用 `getEventTrace` 函数结果的 `data` 属性。 `data`
  * 属性可能是一个数组或对象，其中包含有关指定 `deviceId` 的事件跟踪信息。
  */
  static async listTrace (params: {deviceId: string}) {
    const { data } = await getEventTrace(params)
    return data
  }

  /**
   * 此函数为设备添加事件跟踪并显示成功消息。
   * @param params - 参数“params”是一个包含单个属性“deviceId”的对象，它是一个字符串。
   */
  static async addTrace (params: {deviceId: string}) {
    await addEventTrace(params)
    message.success('新增时间跟踪成功')
  }
}
