import {NgModule} from '@angular/core';
import {Routes, RouterModule, RouteReuseStrategy} from '@angular/router';
import {NavigationComponent} from './admin/navigation/navigation.component';
import {InitGuardService} from './services/init-guard.service';

const routes: Routes = [
    {path: '', pathMatch: 'full', redirectTo: 'adminLogin'},
    {
        path: 'adminLogin',
        loadChildren: () => import('./admin/login/login.module').then(m => m.LoginModule)
    },
    {
        path: 'admin', component: NavigationComponent,
        children: [
            {
                path: 'index',
                loadChildren: () => import('./admin/index/index.module').then(m => m.IndexModule),
                canActivate: [InitGuardService]
            },
            {
                path: 'user',
                loadChildren: () => import('./admin/user/user.module').then(m => m.UserModule),
                canActivate: [InitGuardService]
            },
            {
                path: 'merchant',
                loadChildren: () => import('./admin/merchant/merchant.module').then(m => m.MerchantModule),
                canActivate: [InitGuardService]
            },
            {
                path: 'merchantAccount',
                loadChildren: () => import('./admin/merchant-account/merchant-account.module').then(m => m.MerchantAccountModule),
                canActivate: [InitGuardService]
            },
            {
                path: 'merchantStore',
                loadChildren: () => import('./admin/merchant-store/merchant-store.module').then(m => m.MerchantStoreModule),
                canActivate: [InitGuardService]
            },
            {
                path: 'coupon',
                loadChildren: () => import('./admin/coupon/coupon.module').then(m => m.CouponModule),
                canActivate: [InitGuardService]
            },
            {
                path: 'company',
                loadChildren: () => import('./admin/company/company.module').then(m => m.CompanyModule),
                canActivate: [InitGuardService]
            },
            {
                path: 'price',
                loadChildren: () => import('./admin/price/price.module').then(m => m.PriceModule),
                canActivate: [InitGuardService]
            },
            {
                path: 'audit',
                loadChildren: () => import('./admin/audit/audit.module').then(m => m.AuditModule),
                canActivate: [InitGuardService]
            },
            {
                path: 'order',
                loadChildren: () => import('./admin/order/order.module').then(m => m.OrderModule),
                canActivate: [InitGuardService]
            },
            {
                path: 'order-manage',
                loadChildren: () => import('./admin/order-manage/order-manage.module').then(m => m.OrderManageModule),
                canActivate: [InitGuardService]
            },
            {
                path: 'discount',
                loadChildren: () => import('./admin/discount/discount.module').then(m => m.DiscountModule),
                canActivate: [InitGuardService]
            },
            {
                path: 'system',
                loadChildren: () => import('./admin/system/system.module').then(m => m.SystemModule),
                canActivate: [InitGuardService]
            },
            {
                path: 'agent',
                loadChildren: () => import('./admin/agent/agent.module').then(m => m.AgentModule),
                canActivate: [InitGuardService]
            },
            {
                path: 'rechargeOrder',
                loadChildren: () => import('./admin/recharge-order/recharge-order.module').then(m => m.RechargeOrderModule),
                canActivate: [InitGuardService]
            },
            {
                path: 'cms',
                loadChildren: () => import('./admin/cms/cms.module').then(m => m.CmsModule),
                canActivate: [InitGuardService]
            },
            {
                path: 'activate',
                loadChildren: () => import('./admin/activate/activate.module').then(m => m.ActivateModule),
                canActivate: [InitGuardService]
            },
            {
                path: 'config-manage',
                loadChildren: () => import('./admin/config-manage/config-manage.module').then(m => m.ConfigManageModule),
                canActivate: [InitGuardService]
            },
            {
                path: 'discount-package',
                loadChildren: () => import('./admin/discount-package/discount-package.module').then(m => m.DiscountPackageModule),
                canActivate: [InitGuardService]
            },
            {
                path: 'tuanyou-agent',
                loadChildren: () => import('./admin/tuanyou-agent/tuanyou-agent.module').then(m => m.TuanyouAgentModule),
                canActivate: [InitGuardService]
            },
            {
                path: 'company-amount',
                loadChildren: () => import('./admin/company-amount/company-amount.module').then(m => m.CompanyAmountModule),
                canActivate: [InitGuardService]
            },
            {
                path: 'oil-card',
                loadChildren: () => import('./admin/oil-card/oil-card.module').then(m => m.OilCardModule),
                canActivate: [InitGuardService]
            },
            {
                path: 'gz-sinopec',
                loadChildren: () => import('./admin/gz-sinopec/gz-sinopec.module').then(m => m.GzSinopecModule),
                canActivate: [InitGuardService]
            },
            {
                path: 'gas-staff',
                loadChildren: () => import('./admin/gas-staff/gas-staff.module').then(m => m.GasStaffModule),
                canActivate: [InitGuardService]
            },
            {
                path: 'gas-oil-price',
                loadChildren: () => import('./admin/gas-oil-price/gas-oil-price.module').then(m => m.GasOilPriceModule),
                canActivate: [InitGuardService]
            },
            {
                path: 'device',
                loadChildren: () => import('./admin/device/device.module').then(m => m.DeviceModule),
                canActivate: [InitGuardService]
            },
            {
                path: 'gas-class-group',
                loadChildren: () => import('./admin/gas-class-group/gas-class-group.module').then(m => m.GasClassGroupModule),
                canActivate: [InitGuardService]
            },
            {
                path: 'api-product',
                loadChildren: () => import('./admin/api-product/api-product.module').then(m => m.ApiProductModule),
                canActivate: [InitGuardService]
            },
            {
                path: 'api-merchants',
                loadChildren: () => import('./admin/api-merchants/api-merchants.module').then(m => m.ApiMerchantsModule),
                canActivate: [InitGuardService]
            },
            {
                path: 'promotion',
                loadChildren: () => import('./admin/promotion/promotion.module').then(m => m.PromotionModule),
                canActivate: [InitGuardService]
            },
        ],
    },
];

@NgModule({
    imports: [RouterModule.forRoot(routes)],
    exports: [RouterModule],
    providers: [
        // { provide: RouteReuseStrategy, useClass: RouteStrategyService }
    ],
})
export class AppRoutingModule {
}
