178 lines
4.4 KiB
TypeScript
178 lines
4.4 KiB
TypeScript
import { NgModule } from '@angular/core';
|
|
import { RouterModule, Routes } from '@angular/router';
|
|
import { authGuard } from '@core/guards/auth.guard';
|
|
import { roleGuard } from '@core/guards/role.guard';
|
|
import { HubUsersManagement } from '@modules/hub-users-management/hub-users';
|
|
import { MerchantUsersManagement } from '@modules/hub-users-management/merchant-users';
|
|
|
|
// Composants principaux
|
|
import { DcbReportingDashboard } from '@modules/dcb-dashboard/dcb-reporting-dashboard';
|
|
|
|
import { Transactions } from '@modules/transactions/transactions';
|
|
|
|
import { MyProfile } from '@modules/profile/profile';
|
|
import { Documentation } from '@modules/documentation/documentation';
|
|
import { Help } from '@modules/help/help';
|
|
import { About } from '@modules/about/about';
|
|
import { Subscriptions } from './subscriptions/subscriptions';
|
|
import { SubscriptionDetails } from './subscriptions/subscription-details/subscription-details';
|
|
import { MerchantConfigManagement } from './merchant-config/merchant-config';
|
|
|
|
const routes: Routes = [
|
|
// ---------------------------
|
|
// Dashboard
|
|
// ---------------------------
|
|
{
|
|
path: 'dcb-dashboard',
|
|
canActivate: [authGuard, roleGuard],
|
|
component: DcbReportingDashboard,
|
|
data: {
|
|
title: 'Dashboard DCB',
|
|
module: 'dcb-dashboard'
|
|
}
|
|
},
|
|
|
|
|
|
// ---------------------------
|
|
// Transactions
|
|
// ---------------------------
|
|
{
|
|
path: 'transactions',
|
|
component: Transactions,
|
|
canActivate: [authGuard, roleGuard],
|
|
data: {
|
|
title: 'Transactions DCB',
|
|
module: 'transactions'
|
|
}
|
|
},
|
|
{
|
|
path: 'transactions/:id',
|
|
component: Transactions,
|
|
canActivate: [authGuard, roleGuard],
|
|
data: {
|
|
title: 'Détails Transaction',
|
|
module: 'transactions'
|
|
}
|
|
},
|
|
|
|
// ---------------------------
|
|
// Users (Admin seulement)
|
|
// ---------------------------
|
|
{
|
|
path: 'hub-users-management',
|
|
canActivate: [authGuard, roleGuard],
|
|
component: HubUsersManagement,
|
|
data: {
|
|
title: 'Gestion des Utilisateurs',
|
|
module: 'hub-users-management',
|
|
context: 'HUB',
|
|
}
|
|
},
|
|
|
|
// ---------------------------
|
|
// Subscriptions
|
|
// ---------------------------
|
|
{
|
|
path: 'subscriptions',
|
|
component: Subscriptions,
|
|
canActivate: [authGuard, roleGuard],
|
|
data: {
|
|
title: 'Gestion des Abonnements',
|
|
module: 'subscriptions',
|
|
requiredRoles: [
|
|
'dcb-admin',
|
|
'dcb-support',
|
|
'dcb-partner',
|
|
'dcb-partner-admin',
|
|
'dcb-partner-manager',
|
|
'dcb-partner-support',
|
|
]
|
|
}
|
|
},
|
|
|
|
// ---------------------------
|
|
// Partners
|
|
// ---------------------------
|
|
{
|
|
path: 'merchant-users-management',
|
|
component: MerchantUsersManagement,
|
|
canActivate: [authGuard, roleGuard],
|
|
data: {
|
|
title: 'Gestion Partners/Marchants',
|
|
module: 'merchant-users-management',
|
|
context: 'MERCHANT',
|
|
requiredRoles: [
|
|
'dcb-admin',
|
|
'dcb-support',
|
|
'dcb-partner',
|
|
'dcb-partner-admin',
|
|
'dcb-partner-manager',
|
|
'dcb-partner-support',
|
|
]
|
|
}
|
|
},
|
|
|
|
// ---------------------------
|
|
// Merchant Config
|
|
// ---------------------------
|
|
{
|
|
path: 'merchant-config',
|
|
component: MerchantConfigManagement,
|
|
canActivate: [authGuard, roleGuard],
|
|
data: {
|
|
title: 'Merchant Config',
|
|
module: 'merchant-config'
|
|
}
|
|
},
|
|
|
|
|
|
// ---------------------------
|
|
// Profile (Tous les utilisateurs authentifiés)
|
|
// ---------------------------
|
|
{
|
|
path: 'profile',
|
|
component: MyProfile,
|
|
canActivate: [authGuard, roleGuard],
|
|
data: {
|
|
title: 'Mon Profil',
|
|
module: 'profile'
|
|
}
|
|
},
|
|
|
|
// ---------------------------
|
|
// Documentation & Help (Tous les utilisateurs authentifiés)
|
|
// ---------------------------
|
|
{
|
|
path: 'documentation',
|
|
component: Documentation,
|
|
canActivate: [authGuard, roleGuard],
|
|
data: {
|
|
title: 'Documentation',
|
|
module: 'documentation'
|
|
}
|
|
},
|
|
{
|
|
path: 'help',
|
|
component: Help,
|
|
canActivate: [authGuard, roleGuard],
|
|
data: {
|
|
title: 'Aide',
|
|
module: 'help'
|
|
}
|
|
},
|
|
{
|
|
path: 'about',
|
|
component: About,
|
|
canActivate: [authGuard, roleGuard],
|
|
data: {
|
|
title: 'À propos',
|
|
module: 'about'
|
|
}
|
|
},
|
|
];
|
|
|
|
@NgModule({
|
|
imports: [RouterModule.forChild(routes)],
|
|
exports: [RouterModule],
|
|
})
|
|
export class ModulesRoutes {} |