import { NgModule }             from '@angular/core'
import { RouterModule, Routes } from '@angular/router'

import { AppHelper }            from '@k-settings/app-helper'
import { store } from '@k-settings/app-setup.js'
// Application loaders
import { Lazy } from './lazy.app'
import { Eager } from './eager.app'
import { SuccessPageView } from '@k-core/views/layout/success-page/view.success-page'
import { UserGuard } from '@k-core/guards/guard.User'

const routes: Routes = [
  ...Eager,
  ...Lazy
]

const core_modules = '@k-core/modules/'



const scopedRoutes: Routes = [
  {
    path: AppHelper.basket,
    loadChildren: core_modules + 'basket/mod.basket#BasketModule',
    canActivate: [UserGuard]
  },
  {
    path: AppHelper["success-page"],
    component: SuccessPageView,
    canActivate: [UserGuard],
    data: {
        state: 'success-page'
    }
  },
  {
    path: '',
    redirectTo: AppHelper.basket,
    pathMatch: 'full'
  },
  {
    path: AppHelper.login,
    redirectTo: AppHelper.basket
  },
  {
      path: AppHelper.categories,
      redirectTo: AppHelper.basket
  },
  {
      path: AppHelper.configurator,
      redirectTo: AppHelper.basket
  },
  {
      path: AppHelper.customProduct,
      redirectTo: AppHelper.basket
  },
  { 
      path: AppHelper.orderSearch,
      redirectTo: AppHelper.basket
  },
  {
      path: AppHelper.search,
      redirectTo: AppHelper.basket
  },
  {
      path: AppHelper.user,
      redirectTo: AppHelper.basket
  },
  {
      path: AppHelper.sendCart,
      redirectTo: AppHelper.basket
  },
  {
    path: ':page',
    loadChildren: core_modules + 'page/mod.page#PageModule',
    canActivate: [UserGuard],
    data: {
        breadcrumb: ''
    }
  }
]

@NgModule({
  imports: [ RouterModule.forRoot(store == 'butik' ? scopedRoutes : routes) ],
  exports: [ RouterModule ]
})
export class AppRoutingModule {}