import { NgModule } from '@angular/core';
import { RouterModule } from '@angular/router';
import { DEBUG_INFO_ENABLED } from 'app/app.constants';
import { UserRouteAccessService } from 'app/core/auth/user-route-access-service';
import { pagesRoutes } from 'app/editorialPages/pages.route';
import { Authority } from 'app/shared/constants/authority.constants';
import { DatapolicyComponent } from './layouts/datapolicy/datapolicy.component';
import { errorRoute } from './layouts/error/error.route';
import { navbarRoute } from './layouts/navbar/navbar.route';


const LAYOUT_ROUTES = [navbarRoute, ...errorRoute];

export const gitSearchRoutes = [
  {
    path: 'admin',
    data: {
      authorities: [Authority.ADMIN]
    },
    canActivate: [UserRouteAccessService],
    loadChildren: () => import('./admin/admin-routing.module').then(m => m.AdminRoutingModule)
  },
  {
    path: 'account',
    loadChildren: () => import('./account/account.module').then(m => m.AccountModule)
  },
  {
    path: 'search',
    loadChildren: () => import('app/search/search.module').then(m => m.SearchModule)
  },
  {
    path: 'bookmarks',
    loadChildren: () => import('app/bookmarks/bookmarks.module').then(m => m.BookmarskModule)
  },
  {
    path: 'datapolicy',
    component: DatapolicyComponent
  },
  {
    path: 'import',
    loadChildren: () => import('app/exercise/import/exercise-import.module').then(m => m.ExerciseImportModule)
  },
  pagesRoutes,
  ...LAYOUT_ROUTES
];

@NgModule({
  imports: [RouterModule.forRoot(gitSearchRoutes, { enableTracing: DEBUG_INFO_ENABLED })],
  exports: [RouterModule]
})
export class GitSearchV2AppRoutingModule {}