const chartsSetup = {
  main: [
    {id: 'commun_pie', type: 'pie', maxHeight: '400px', order: 1},
    {id: 'commun_pie_cdim', type: 'pie', maxHeight: '400px', order: 2},
    {id: 'commun_pie_cdrp', type: 'pie', maxHeight: '400px', order: 3},
    {id: 'commun_pie_mpt_types', type: 'pie', maxHeight: '400px', order: 4},
    {id: 'commun_pie_gdsm_types', type: 'pie', maxHeight: '400px', order: 5},
    {id: 'commun_pie_sm_pss_types', type: 'pie', maxHeight: '400px', order: 6},
    {id: 'routes_pie', type: 'pie', maxHeight: '400px', order: 7},
    {id: 'rors_pie', type: 'pie', maxHeight: '400px', order: 8},
    {id: 'routes_bar', type: 'mainMl', maxHeight: '400px', order: 9},
    {id: 'mount_client_type_bar', type: 'mount', height: '350', maxHeight: '400px', order: 10},
    {id: 'mount_mounter_type_bar', type: 'mount', height: '500', maxHeight: '600px', order: 11},
  ],
  types: [
    {id: 'commun_types_bar', type: 'default', maxHeight: '400px', order: 1},
    {id: 'commun_types_bar_cdim', type: 'without_first_layout', maxHeight: '400px', order: 2},
    {id: 'commun_types_bar_cdrp', type: 'without_first_layout', maxHeight: '400px', order: 3},
    {id: 'commun_types_bar_mpt_types', type: 'types', maxHeight: '400px', order: 4},
    {id: 'commun_types_bar_gdsm_types', type: 'types', maxHeight: '400px', order: 5},
    {id: 'commun_types_bar_sm_pss_types', type: 'types', maxHeight: '400px', order: 6},
    {id: 'routes_types_bar', type: 'default', maxHeight: '400px', order: 7},
    {id: 'rors_types_bar', type: 'default', maxHeight: '400px', order: 8},
    {id: 'routes_types_bar_ml', type: 'ml', maxHeight: '380px', order: 9},
  ]
}

const colorList = (name) => {
  switch(name) {
  case 'На связи': return 'rgb(134, 212, 131, 1)'
  case 'Есть МЛ, выходил на связь': return 'rgb(134, 212, 131, 1)'
  case 'РОРС': return 'rgb(134, 212, 131, 1)'
  case 'Не на связи': return 'rgb(255, 114, 114, 1)'
  case 'Нет МЛ, нет связи': return 'rgb(165, 165, 165, 1)'
  case 'Не РОРС': return 'rgb(255, 114, 114, 1)'
  case 'Нет данных': return 'rgb(165, 165, 165, 1)'
  case 'Есть МЛ, нет связи': return 'rgb(255, 114, 114, 1)'
  case 'Нет МЛ, выходил на связь': return 'rgb(243, 161, 30, 1)'
  }
}

const colorListBar = (type, name) => {
  if(type === typesCharts.mainMl || typesCharts.typesMl) {
    switch(name) {
    case 'Обычные': return 'rgb(134, 212, 131, 1)'
    case 'Аварийные': return 'rgb(255, 114, 114, 1)'
    case 'Прочие': return 'rgb(196, 161, 201, 1)'
    case 'Ремонтные': return 'rgb(228, 202, 163, 1)'
    case 'Без выезда': return 'rgb(243, 161, 30, 1)'
    case 'СПС без МЛ': return 'rgb(165, 165, 165, 1)'
    }
  }
}

const orderCharts = (name) => {
  switch(name) {
  case 'На связи': return 1
  case 'Есть МЛ, выходил на связь': return 1
  case 'РОРС': return 1
  case 'Не на связи': return 2
  case 'Не РОРС': return 2
  case 'Есть МЛ, нет связи': return 2
  case 'Нет МЛ, выходил на связь': return 3
  case 'Нет МЛ, нет связи': return 5
  case 'Нет данных': return 5
  }
}

const title = (id) => {
  switch(id) {
  case 'commun_pie': return `Связь с СПС`
  case 'commun_pie_cdim': return `Связь с СПС, ЦДИМ`
  case 'commun_pie_cdrp': return `Связь с СПС, ЦДРП`
  case 'commun_types_bar': return `Связь с СПС`
  case 'commun_types_bar_cdim': return `Связь с СПС, ЦДИМ`
  case 'commun_types_bar_cdrp': return `Связь с СПС, ЦДРП`
  case 'commun_pie_mpt_types': return `Наличие связи с МРТ`
  case 'commun_pie_gdsm_types': return `Наличие связи с ЖДСМ`
  case 'commun_pie_sm_pss_types': return `Наличие связи с СМ`
  case 'commun_types_bar_mpt_types': return `Наличие связи с МРТ`
  case 'commun_types_bar_gdsm_types': return `Наличие связи с ЖДСМ`
  case 'commun_types_bar_sm_pss_types': return `Наличие связи с СМ`
  case 'rors_pie': return `РОРС`
  case 'rors_types_bar': return `РОРС`
  case 'routes_pie': return `Связь с СПС, МЛ`
  case 'routes_types_bar': return `Связь с СПС, МЛ`
  case 'routes_bar': return `Выданные МЛ`
  case 'routes_types_bar_ml': return `Выданные МЛ`
  case 'mount_client_type_bar': return `Кол-во монтажей по заказчикам и КР`
  case 'mount_mounter_type_bar': return `Кол-во монтажей по исполнителям и КР`
  default: return ''
  }
}

const openMachine = (data) => {
  const currentArr = data?.linkData?.filter((el) => el?.machine_type === data?.groupByData[data?.groupByKey])
  if (currentArr?.length > 0) {
    const currentEl = currentArr[0]
    window.open(`/html/askr_devices/analyze_device/${currentEl.device_number}`, '_blank')
  }
}

const groupByKeys = {
  firstLayout: 'org_type_name',
  secondLayout: 'railway_name',
  thirdLayout: 'org_name',
  fourthLayout: 'type',
  fiveLayout: 'machine_type',
}

const typesCharts = {
  default: 'default',
  without_first_layout: 'without_first_layout',
  mpt: 'mpt_types',
  gdsm: 'gdsm_types',
  sm: 'sm_pss_types',
  mainMl: 'mainMl',
  typesMl: 'ml',
}

export {colorList, colorListBar, orderCharts, title, openMachine, groupByKeys, typesCharts, chartsSetup}