import { Routes } from '@angular/router'; import { profilConfigureGuard } from './core/guards/profil-configure.guard'; import { BaremeComponent } from './features/bareme/bareme.component'; import { CarnetAdressesComponent } from './features/carnet-adresses/carnet-adresses.component'; import { ConsultationJourComponent } from './features/consultation-jour/consultation-jour.component'; import { MontantsReglesComponent } from './features/montants-regles/montants-regles.component'; import { OnboardingComponent } from './features/onboarding/onboarding.component'; import { ProfilComponent } from './features/profil/profil.component'; import { ResumeAnnuelComponent } from './features/resume-annuel/resume-annuel.component'; import { ResumeMensuelComponent } from './features/resume-mensuel/resume-mensuel.component'; import { VehiculesComponent } from './features/vehicules/vehicules.component'; /** * Routes de l'application (équivalent standalone de `app-routing.module.ts`). * * Placeholders pour le socle : * - `/consultation` : vue principale de consultation des trajets (tâche 16.4). * - `/onboarding` : parcours de première utilisation (tâche 21.1), accessible sans garde. * * La garde `profilConfigureGuard` (tâche 21.2) protège l'accès à la saisie / * consultation des trajets et aux résumés tant que le profil n'est pas configuré. * * Décision de routage : * - Routes protégées par la garde (bloquées si `estConfigure = false`, redirection * vers `/onboarding`) : `consultation`, `carnet-adresses`, `resume-mensuel`, * `resume-annuel`, `bareme`, `montants-regles`. * - Routes laissées accessibles SANS garde pour permettre à l'utilisateur de terminer * sa configuration : `onboarding` (toujours atteignable), `profil` et `vehicules`. * Appliquer la garde à `/profil` / `/vehicules` risquerait de piéger un utilisateur * partiellement configuré ; la garde ne vise que la saisie/consultation des trajets * et les rapports (voir design « ProfilConfigureGuard »). */ export const routes: Routes = [ { path: '', redirectTo: 'consultation', pathMatch: 'full' }, { path: 'consultation', component: ConsultationJourComponent, canActivate: [profilConfigureGuard] }, { path: 'carnet-adresses', component: CarnetAdressesComponent, canActivate: [profilConfigureGuard] }, { path: 'profil', component: ProfilComponent }, { path: 'vehicules', component: VehiculesComponent }, { path: 'resume-mensuel', component: ResumeMensuelComponent, canActivate: [profilConfigureGuard] }, { path: 'resume-annuel', component: ResumeAnnuelComponent, canActivate: [profilConfigureGuard] }, { path: 'bareme', component: BaremeComponent, canActivate: [profilConfigureGuard] }, { path: 'montants-regles', component: MontantsReglesComponent, canActivate: [profilConfigureGuard] }, { path: 'onboarding', component: OnboardingComponent }, { path: '**', redirectTo: 'consultation' } ];