import Decimal from 'decimal.js';

/**
 * 将查询结果的表头信息格式化
 * */
export const formatColumns=(props)=>{
  let columns = [];
  if (props && props.length>0){
    columns = props.map(item=> (
      {
        title: item.name||item.nameEn,
        dataIndex: item.nameEn,
        key: item.nameEn,
        width: 100,
      }
    ))
  }
  return columns
}

/**
 * 查询结果的维度信息格式化
 * */
export const formatDimensions=(props)=>{
  let dimensions = [];
  if (props && props.length>0){
    dimensions = props.map(item=> (
      {
        title: item.name,
        value: item.nameEn,
      }
    ))
  }
  return dimensions
}

/**
 * 查询结果的维度信息格式化
 * */
export const formatMetrics=(props)=>{
  let metrics = [];
  if (props && props.length>0){
    metrics = props.map(item=> (
      {
        title: item.name,
        value: item.nameEn,
        dataType: item.dataFormatType
      }
    ))
  }
  return metrics
}


/**
 * 格式化索引
 * */
export const formatIndex=(props)=> ( props && props.length>0 && props.map(item=> item.nameEn) ) || []


/**
 * 数据格式化
 * */
export const formatData=(data, dim, mtc, cat)=>(
  data && data.length>0 &&
  data.map(item=> {
    const mtcType = mtc.dataType;
    const mtcData = item[mtc?.value]
    const metric = mtcType==="PERCENT"
      ? new Decimal(parseFloat(mtcData.replace('%', '')) / 100).toDP(4).toNumber()
      : new Decimal(mtcData).toNumber()
    return {
      dimension:item[dim?.value],
      category:item[cat?.value],
      metric,
    }
  })
) || []
