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