import { uiTypes } from '@/components/project/spreadsheet/helpers/uiTypes'

export default {
  props: {
    sqlUi: [Object, Function],
    column: Object
  },
  computed: {
    uiDatatype() {
      return this.column && this.column.uidt
    },
    uiDatatypeIcon() {
      const ui = this.uiDatatype && uiTypes.find(ui => ui.name === this.uiDatatype)
      return ui && ui.icon
    },
    abstractType() {
      return this.sqlUi && this.sqlUi.getAbstractType(this.column)
    },
    dataTypeLow() {
      return this.column && this.column.dt && this.column.dt.toLowerCase()
    },
    isBoolean() {
      return this.abstractType === 'boolean'
    },
    isString() {
      return this.abstractType === 'string'
    },
    isTextArea() {
      return this.column.uidt === 'LongText'
    },
    isInt() {
      return this.abstractType === 'integer'
    },
    isFloat() {
      return this.abstractType === 'float'
    },
    isDate() {
      return this.abstractType === 'date' || this.column.uidt === 'Date'
    },
    isTime() {
      return this.abstractType === 'time' || this.column.uidt === 'Time'
    },
    isDateTime() {
      return this.abstractType === 'datetime' || this.column.uidt === 'DateTime'
    },
    isJSON() {
      return this.abstractType === 'json' || this.column.uidt === 'JSON'
    },
    isEnum() {
      return this.column.uidt === 'SingleSelect'
    },
    isSet() {
      return this.column.uidt === 'MultiSelect'
    },
    isURL() {
      return this.column.uidt === 'URL'
    },
    isAttachment() {
      return this.column.uidt === 'Attachment'
    },
    isCurrency() {
      return this.column.uidt == 'Currency'
    }

  }
}
/**
 * @copyright Copyright (c) 2021, Xgene Cloud Ltd
 *
 * @author Naveen MR <oof1lab@gmail.com>
 * @author Pranav C Balan <pranavxc@gmail.com>
 *
 * @license GNU AGPL version 3 or any later version
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as
 * published by the Free Software Foundation, either version 3 of the
 * License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with this program. If not, see <http://www.gnu.org/licenses/>.
 *
 */
