import Vuex from 'vuex';
import createPersistedState from 'vuex-persistedstate';
import agr_comercial from './agr_comercial';
import agr_lm from './agr_lm';
import ai_context from './ai_context';
import art_clientes from './art_clientes';
import articulos from './articulos';
import articulos_foco from './articulos_foco';
import asign_ruta_hist from './asign_ruta_hist';
import auth from './auth';
import banco from './banco';
import cache_clientes from './cache_clientes';
import candidato from './candidato';
import captacion from './captacion';
import cierre_cobros from './cierre_cobros';
import cliente from './cliente';
import comisiones from './comisiones';
import competencias from './competencias';
import condiciones_comerciales from './condiciones_comerciales';
import condiciones_pagos from './condiciones_pagos';
import contacto_tag from './contacto_tag';
import contactos from './contactos';
import contactos_clientes from './contactos_clientes';
import contratos from './contratos';
import cuenta_bancaria from './cuenta_bancaria';
import definicion_desc from './definicion_desc';
import del_dist_alm from './del_dist_alm';
import delegacion from './delegacion';
import distribuidores from './distribuidores';
import draggables from './draggables';
import efectos_pendientes from './efectos_pendientes';
import empresas from './empresas';
import entidad_bancaria from './entidad_bancaria';
import entregas from './entregas';
import escenarios from './escenarios';
import estadisticas from './estadisticas';
import familias_mvx from './familias_mvx';
import formas_pagos from './formas_pagos';
import frec_visitas from './frec_visitas';
import gamas from './gamas';
import gastos_instalacion from './gastos_instalacion';
import gerencia from './gerencia';
import grupos_mvx from './grupos_mvx';
import incidencia from './incidencia';
import informes from './informes';
import jitsi_meet from './jitsi_meet';
import landing from './landing';
import lineasDeMercado from './lineas_de_mercado';
import liquidaciones from './liquidaciones';
import metodos_de_pago from './metodos_de_pago';
import motivos_alta from './motivos_alta';
import neveras from './neveras';
import notificaciones from './notificaciones';
import objetivos_per from './objetivos_per';
import paises from './paises';
import paises_zonas from './paises_zonas';
import parametros from './parametros';
import partner from './partner';
import pedidos from './pedidos';
import producto_holders from './producto_holders';
import productos from './productos';
import promociones from './promociones';
import proveedor from './proveedor';
import push_notification from './push_notification';
import r_agr_lm from './r_agr_lm';
import regiones from './regiones';
import rh_ofertas from './rh_ofertas';
import rutas from './rutas';
import segmentos from './segmentos';
import seguimiento from './seguimiento';
import solicitud_neveras from './solicitud_neveras';
import speech from './speech';
import subfam_mvx from './subfam_mvx';
import surtido from './surtido';
import tablas from './tablas';
import ties from './ties';
import tipos_de_distribucion from './tipos_de_distribucion';
import tsc from './tsc';
import usuario from './usuario';
import usuarios from './usuarios';
import usuarios_captacion from './usuarios_captacion';
import usuarios_delegaciones from './usuarios_delegaciones';
import v_articulos from './v_articulos';
import visitas from './visitas';
import visitas_captacion from './visitas_captacion';
import zonas from './zonas';

const Store = new Vuex.Store({
  modules: {
    agr_comercial,
    agr_lm,
    ai_context,
    art_clientes,
    articulos_foco,
    articulos,
    asign_ruta_hist,
    auth,
    banco,
    cache_clientes,
    candidato,
    captacion,
    cierre_cobros,
    cliente,
    comisiones,
    competencias,
    condiciones_comerciales,
    condiciones_pagos,
    contacto_tag,
    contactos_clientes,
    contactos,
    contratos,
    cuenta_bancaria,
    definicion_desc,
    del_dist_alm,
    delegacion,
    delegaciones: delegacion,
    distribuidores,
    draggables,
    efectos_pendientes,
    empresas,
    entidad_bancaria,
    entregas,
    escenarios,
    estadisticas,
    familias_mvx,
    formas_pagos,
    frec_visitas,
    gamas,
    gastos_instalacion,
    gerencia,
    grupos_mvx,
    incidencia,
    informes,
    jitsi_meet,
    landing,
    lineasDeMercado,
    liquidaciones,
    metodos_de_pago,
    motivos_alta,
    neveras,
    notificaciones,
    objetivos_per,
    paises_zonas,
    paises,
    parametros,
    pedidos,
    producto_holders,
    productos,
    producto: productos,
    promociones,
    proveedor,
    push_notification,
    r_agr_lm,
    regiones,
    rh_ofertas,
    rutas,
    segmentos,
    seguimiento,
    solicitud_neveras,
    speech,
    subfam_mvx,
    surtido,
    tablas,
    ties,
    tipos_de_distribucion,
    tsc,
    usuario,
    usuarios_captacion,
    usuarios_delegaciones,
    usuarios,
    v_articulos,
    visitas_captacion,
    visitas,
    zonas,
    partner
  },
  plugins: [
    createPersistedState({
      storage: window.sessionStorage,
      //@ts-ignore
      VuexChromePlugin()
    }),
  ],
});

export default function (/* { ssrContext } */) {
  return Store;
}

export { Store };

