import Vue from 'vue';
import Vuex from 'vuex';

import initUiStore from './ui/ui';
import initAuthStore from './auth/auth';
import initReleasesStore from './releases/releases';
import initSitesStore from './sites/sites';
import initNetworksStore from './networks/networks';
import initActorsStore from './actors/actors';
import initTagsStore from './tags/tags';

function initStore(router) {
    Vue.use(Vuex);

    const store = new Vuex.Store();

    store.registerModule('ui', initUiStore(store, router));
    store.registerModule('auth', initAuthStore(store, router));
    store.registerModule('releases', initReleasesStore(store, router));
    store.registerModule('actors', initActorsStore(store, router));
    store.registerModule('sites', initSitesStore(store, router));
    store.registerModule('networks', initNetworksStore(store, router));
    store.registerModule('tags', initTagsStore(store, router));

    return store;
}

export default initStore;