import { Module } from 'vuex';
import userStore, { UserStateInterface } from './store/user';
import sessionsStore, { SessionInterface } from './store/session';
import routes from './routes';
import { StateInterface } from 'src/store';
import { FG_Plugin } from 'src/plugins';

const plugin: FG_Plugin.Plugin = {
  name: 'User',
  mainRoutes: routes,
  requiredModules: [],
  requiredBackendModules: ['auth'],
  version: '0.0.1',
  store: new Map<
    string,
    Module<UserStateInterface, StateInterface> | Module<SessionInterface, StateInterface>
  >([
    ['user', userStore],
    ['session', sessionsStore]
  ]),
  widgets: [
    {
      priority: 1,
      name: 'greeting',
      permissions: [],
      widget: () => import('./components/Widget.vue')
    }
  ]
};

export default plugin;