import Vuex from 'vuex';

import initUiStore from './ui/ui';
import initAuthStore from './auth/auth';
import initUsersStore from './users/users';
import initReleasesStore from './releases/releases';
import initEntitiesStore from './entities/entities';
import initActorsStore from './actors/actors';
import initTagsStore from './tags/tags';
import initStashesStore from './stashes/stashes';

function initStore(router) {
	const store = new Vuex.Store();

	store.registerModule('ui', initUiStore(store, router));
	store.registerModule('auth', initAuthStore(store, router));
	store.registerModule('users', initUsersStore(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));
	store.registerModule('stashes', initStashesStore(store, router));

	return store;
}

export default initStore;