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

import initUiStore from './ui/ui';
import initAuthStore from './auth/auth';
import initReleasesStore from './releases/releases';
import initEntitiesStore from './entities/entities';
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('entities', initEntitiesStore(store, router));
	store.registerModule('actors', initActorsStore(store, router));
	store.registerModule('tags', initTagsStore(store, router));

	return store;
}

export default initStore;