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

// Auth Guard
import { AuthGuard } from '../auth/guards/auth.guard';

// Components
import { ContentComponent } from './content/content.component';
import { HomeComponent } from './home/home.component';
import { StoreInfoComponent } from './store-info/store-info.component';

const routes: Routes = [
  { path: 'managePurchases', loadChildren: () => import('./manage-purchase/manage-purchase.module').then(m => m.ManagePurchaseModule) },
  { path: 'manageAccount', loadChildren: () => import('./manage-account/manage-account.module').then(m => m.ManageAccountModule) },
  { path: 'paymentsFaqs', loadChildren: () => import('./payments-faqs/payments-faqs.module').then(m => m.PaymentsFaqsModule) },
  { path: 'supplierMinimums', loadChildren: () => import('./supplier-minimums/supplier-minimums.module').then(m => m.SupplierMinimumsModule) },
  { path: 'manageSupplier', loadChildren: () => import('./manage-suppliers/manage-suppliers.module').then(m => m.ManageSuppliersModule) },
  { path: 'favorites', loadChildren: () => import('./favorites/favorites.module').then(m => m.FavoritesModule) },
  { path: 'reshopUnaccepted', loadChildren: () => import('./reshop-unaccepted/reshop-unaccepted.module').then(m => m.ReshopUnacceptedModule) },
  { path: 'search', loadChildren: () => import('./search/search.module').then(m => m.SearchModule) },
  { path: 'cart', loadChildren: () => import('./cart/cart.module').then(m => m.CartModule) },
  { path: 'deals', loadChildren: () => import('./deals/deals.module').then(m => m.DealsModule) },
  { path: 'opportunityBuys', loadChildren: () => import('./opportunity-buys/opportunity-buys.module').then(m => m.OpportunityBuysModule) },
  { path: 'shopShortDates', loadChildren: () => import('./shop-short-dates/shop-short-dates.module').then(m => m.ShopShortDatesModule) },
  { path: 'brands', loadChildren: () => import('./brands/brands.module').then(m => m.BrandsModule) },
  { path: 'gpoDeals', loadChildren: () => import('./gpo-deals/gpo-deals.module').then(m => m.GpoDealsModule) },
  { path: 'drugShortages', loadChildren: () => import('./drug-shortages/drug-shortages.module').then(m => m.DrugShortagesModule) },
  { path: 'controls', loadChildren: () => import('./controls/controls.module').then(m => m.ControlsModule) },
  { path: 'otc', loadChildren: () => import('./otc/otc.module').then(m => m.OtcModule) },
  { path: 'flu', loadChildren: () => import('./otc/otc.module').then(m => m.OtcModule) },
  { path: 'tst', loadChildren: () => import('./otc/otc.module').then(m => m.OtcModule) },
  { path: 'supplierCatalog', loadChildren: () => import('./supplier-catalog/supplier-catalog.module').then(m => m.SupplierCatalogModule) },
  { path: 'diabeticSupplies', loadChildren: () => import('./diabetic-supplies/diabetic-supplies.module').then(m => m.DiabeticSuppliesModule) },
  { path: 'paymentPortal', loadChildren: () => import('./payment-portal/payment-portal.module').then(m => m.PaymentPortalModule) },
  { path: 'onboardingTour', loadChildren: () => import('./onboarding-tour/onboarding-tour.module').then(m => m.OnboardingTourModule) },
  { path: 'storeInfo', component: StoreInfoComponent, data: {title: 'Buyer Information'} , canActivate : [AuthGuard]},
  { path: 'home', component: HomeComponent, data: {title: 'Home'}, canActivate : [AuthGuard] },
  { path: 'content/:pageHandle', component: ContentComponent },
];

@NgModule({
  imports: [RouterModule.forChild(routes)],
  exports: [RouterModule]
})
export class UserRoutingModule { }
