import AdmVue from '@assets/js/adm-vue.js';
import axiosApi from '@assets/js/axios-api';

const vm = new AdmVue({
  data() {
    return {
      searchbar_form: null,
      product: {},
      configurations: {
        wg24_quick: 'disable',
        wg24_l_sale_icon_style: 'default',
        wg24_home_redir_carrinho: 1,
        wg24_futura_prod_exibe_selo: 0,
        wg24_productbox_border: 1,
        wg24_productbox_size: 2,
        wg24_prod_efec_img: 0,
        wg24_futura_prod_qtd_dias_novo: 30
      },
      selectedVisual: {},
      visual: [
        {
          group: 'Barra de pesquisa',
          fields: [
            { label: 'Forma', name: 'searchbar_form', type: 'select', options: 'Type_SearchBarForm' },
            { label: 'Fundo do botão', name: 'searchbar_button_background', type: 'select', options: 'Type_SearchBarButtonBackground' },
          ],
        },
        {
          group: 'Box de produtos',
          fields: [
            { label: 'Visualização Rápida', name: 'wg24_quick', type: 'select', options: 'Type_StatusEn',
              description: 'Ao passar o mouse em cima do produto, aparece um botão para visualizar mais detalhes do produto sem sair da página'},
            { label: 'Estilo para produtos em promoção', name: 'wg24_l_sale_icon_style',
              type: 'select', options: 'Type_ProductBoxPromotionStyle' },
            { label: 'Redirecionar ao carrinho no botão comprar', name: 'wg24_home_redir_carrinho',
              description: 'Define se ao clicar no botão de adicionar produto ao carrinho, irá sair da página atual e ir para a página de carrinho de compras',
              type: 'select', options: 'Type_DsimDnao' },
            { label: 'Selo de novos produtos', name: 'wg24_futura_prod_exibe_selo',
              type: 'select', options: 'Type_Status' },
            { label: 'Quantidade de dias que um produto é considerado novo', name: 'wg24_futura_prod_qtd_dias_novo',
              description: 'Define quando dias desde a criação do produto, para que seja considerado novo para exibir o selo de Novo Produto',
              type: 'text', mask: 'integer' },
            { label: 'Exibir produto em card', name: 'wg24_productbox_border',
              type: 'select', options: 'Type_DsimDnao' },
            { label: 'Tamanho do box de produtos', name: 'wg24_productbox_size',
              type: 'select', options: 'Type_Tamanho', customOptions: true },
            { label: 'Efeito aplicado as imagens de exibição dos produtos', name: 'wg24_prod_efec_img',
              description: 'Define se ao passar o mouse em cima do produto irá aplicar algum efeito',
              type: 'select', options: 'Type_EfeitoImagem' },
          ],
        },
        {
          group: 'Icones',
          fields: [
            { label: 'Carrinho', name: 'icon_cart', type: 'select', options: 'Type_CartIcon' },
          ],
        },
        {
          group: 'Listas de produtos',
          fields: [
            { label: 'Estilo do Título', name: 'product_list_title_style', type: 'select', options: 'Type_ProductListTitleStyle' },
          ],
        },
        {
          group: 'Cabeçalho',
          fields: [
            { label: 'Posição do Logo', name: 'header_logo_position', type: 'select', options: 'Type_HeaderLogoPosition' },
          ],
        },
        {
          group: 'Carrinho de compras',
          fields: [
            {label: 'Exibir botão continuar comprando', name: 'cart_continue_button', type: 'select', options: 'Type_Status'},
          ],
        },
      ],
    };
  },
  methods: {
    getTypeEnumList(nome, tipo, customOptions){
      if (customOptions === 'true'){
        return this.getTypeEnumListCustomOptions(nome, tipo);
      } else {
        return this[tipo].getEnumList();
      }
    },
    getTypeEnumListCustomOptions(nome, tipo){
      switch (nome) {
        case 'wg24_productbox_size': {
          return this[tipo].getRemoveArray([this[tipo].Tp_MuitoPequeno, this[tipo].Tp_Medio, this[tipo].Tp_MuitoGrande, this[tipo].Tp_SemEspaco]);
        }
        default: {
          return this[tipo].getEnumList();
        }
      }
    }
  },
});

AdmVue.init(vm);