import { NgModule } from '@angular/core';
import { RouterModule } from '@angular/router';
import { errorRoute } from './layouts/error/error.route';
import { navbarRoute } from './layouts/navbar/navbar.route';
import { PagesResolve } from 'app/editorialPages/pages.route';
import { PagesComponent } from 'app/editorialPages/pages.component';

import { DEBUG_INFO_ENABLED } from 'app/app.constants';
import { Authority } from 'app/shared/constants/authority.constants';

import { UserRouteAccessService } from 'app/core/auth/user-route-access-service';

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

@NgModule({
  imports: [
    RouterModule.forRoot(
      [
        {
          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: 'import',
          loadChildren: () => import('app/exercise/import/exercise-import.module').then(m => m.ExerciseImportModule),
        },
        {
          path: 'pages',
          children: [
            {
              path: "**",
              loadChildren: () => import('app/editorialPages/editorialPages.module').then(m => m.PagesModule),
              resolve: {
                      pagePath: PagesResolve,
                    },
              component: PagesComponent,


            }
            ]
        },
        ...LAYOUT_ROUTES,
      ],
      { enableTracing: DEBUG_INFO_ENABLED }
    ),
  ],
  exports: [RouterModule],
})
export class GitSearchV2AppRoutingModule {}