import axios from 'axios'
import ogRequest from '@/request'
import { useMonitorStore } from '@/store/monitor'
import moment from "moment"



export async function getInstanceInfo(tabId: string): Promise<void | {
  INSTANCE_DB_SLOWSQL: number[]
  time: string[]
}> {
  const monitorStore = useMonitorStore()
  const { rangeTime, time, instanceId, fixedRangeTime, tab } = monitorStore
  let start = 0
  let end = 0
  let step = 60
  if (Array.isArray(fixedRangeTime) && fixedRangeTime.length === 2) {
    end = Math.floor(moment(fixedRangeTime[1]).valueOf() / 1000);
    start = Math.floor(moment(fixedRangeTime[0]).valueOf() / 1000);
    if (end - start < 2 * 60) {
      end = end - start > 60 ? start + 120 : start + 60
      start -= 60
    }
  } else {
    if (rangeTime > 0) {
      const _time = moment()
      end = Number.parseInt(`${_time.subtract(60 * rangeTime, 'second').toDate().getTime() / 1000}`)
      start = Number.parseInt(`${_time.subtract(24 * 8 * rangeTime, 'hour').toDate().getTime() / 1000}`)
      step = Math.max(14, Number.parseInt(`${Math.round((end - start) / 260)}`))
    } else {
      start = Number.parseInt(`${time![0].getTime() / 1000}`)
      end = Number.parseInt(`${time![1].getTime() / 1000}`)
      step = Number.parseInt(`${(end - start) / 120}`)
    }
  }
  return ogRequest.get('/sqlDiagnosis/api/v1/slowSqls/chart', {
    id: instanceId,
    start: start,
    end: end,
    step: step,
    type: 'LINE',
  })
}