dcb-backoffice/src/app/modules/modules.routes.ts
2026-01-17 11:36:05 +00:00

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 {}