import moment from 'moment'

const validateImei = (imei) => {
  if (!imei || imei && !imei.trim()) return 'IMEI не может быть пустым'
  // const isImei = imei.trim().match(/^[0-9]{15}$/g)
  const ifNumbers = imei.trim().match(/^[0-9]+$/g)
  if (!ifNumbers) {
    return 'IMEI может содержать только цифры'
  }
  if (imei.trim().length !== 15) {
    return 'Длина IMEI должна быть 15 символов'
  }
  return false
}

const validatePackNumber = (pack) => {
  if (!pack || pack && !pack.trim()) return 'Номер пакета не может быть пустым'
  // const isImei = imei.trim().match(/^[0-9]{15}$/g)
  const ifNumbers = pack.trim().match(/^[0-9]+$/g)
  if (!ifNumbers) {
    return 'Номер пакета может содержать только цифры'
  }
  return false
}

const validateDate = (date, key) => {
  const fieldName = key === 'dtStart'? 'Дата начала' : 'Дата окончания'
  if (!date || date && !date.trim()) {
    return {
      [key]:`${fieldName} не может быть пустым`
    }
  }
  
  return false
}

const formatDateStart = (date) => {
  if (!date || date && !date.trim()) {
    date = moment().subtract(1, "months").add(1, 'days')
  } else {
    date
  }
  const parsingDateStart = new Date(Date.parse(date))
  return moment(parsingDateStart).startOf('day').startOf('minute').format("YYYY-MM-DDTHH:mm:ss")
}

const formatDateFinish = (date) => {
  if (!date || date && !date.trim()) {
    date = moment()
  } else {
    date
  }
  const parsingDateFinish = new Date(Date.parse(date))
  return moment(parsingDateFinish).endOf('day').startOf('minute').format("YYYY-MM-DDTHH:mm:ss")
}

const splitePacks = (packs) => {
  const packsArr = packs.split(',')
  const packsArrClean = packsArr.map(pack => Number(pack.trim()))
  return packsArrClean
}

export {validateImei, validatePackNumber, validateDate, formatDateStart, formatDateFinish, splitePacks}