import { Routes } from '@angular/router'; import { DashboardComponent } from './portals/user-portal/pages/dashboard/dashboard.component'; import { LoginPage } from './features/login-page/login-page'; import { UserPortalComponent } from './portals/user-portal/user-portal.component'; import { AuthGuard } from './core/guards/auth.guard'; import { RoleGuard } from './core/guards/role.guard'; import { MembersPageComponent } from './features/members/pages/members-page/members-page.component'; import { UsersPageComponent } from './features/users/pages/users-page/users-page.component'; import { GivingCategoriesPageComponent } from './features/giving/pages/giving-categories-page/giving-categories-page.component'; import { GivingsPageComponent } from './features/giving/pages/givings-page/givings-page.component'; import { OfferingSessionPageComponent } from './features/giving/pages/offering-session-page/offering-session-page.component'; import { ExpenseCategoriesPageComponent } from './features/expense/pages/expense-categories-page/expense-categories-page.component'; import { ExpensesPageComponent } from './features/expense/pages/expenses-page/expenses-page.component'; import { MyReimbursementsPageComponent } from './features/expense/pages/my-reimbursements-page/my-reimbursements-page.component'; import { MonthlyStatementPageComponent } from './features/expense/pages/monthly-statement-page/monthly-statement-page.component'; import { FinanceDashboardPageComponent } from './features/finance-dashboard/pages/finance-dashboard-page/finance-dashboard-page.component'; import { DisbursementPageComponent } from './features/disbursement/pages/disbursement-page/disbursement-page.component'; import { CheckRegisterPageComponent } from './features/disbursement/pages/check-register-page/check-register-page.component'; import { ChurchProfilePageComponent } from './features/disbursement/pages/church-profile-page/church-profile-page.component'; import { AttendanceCounterPageComponent } from './features/meal-attendance/pages/attendance-counter-page/attendance-counter-page.component'; import { OfferingEntryMobilePageComponent } from './features/giving/pages/offering-entry-mobile-page/offering-entry-mobile-page.component'; export const routes: Routes = [ // Public routes { path: 'login', component: LoginPage }, // Public Sunday meal attendance counter — no login required (volunteers on phones). { path: 'attendance', component: AttendanceCounterPageComponent }, // Public mobile Sunday offering entry — no login required (co-workers on phones). { path: 'offering-entry', component: OfferingEntryMobilePageComponent }, // Keep the startup surface intentionally small: login + guarded mock dashboard. { path: 'user-portal', component: UserPortalComponent, canActivate: [AuthGuard], children: [ { path: '', redirectTo: 'dashboard', pathMatch: 'full' }, { path: 'dashboard', component: DashboardComponent }, { path: 'admin/members', component: MembersPageComponent }, { path: 'admin/users', component: UsersPageComponent, canActivate: [RoleGuard], data: { roles: ['super_admin'] }, }, { path: 'finance/dashboard', component: FinanceDashboardPageComponent, canActivate: [RoleGuard], data: { roles: ['finance', 'super_admin'] }, }, { path: 'finance/giving-categories', component: GivingCategoriesPageComponent, canActivate: [RoleGuard], data: { roles: ['finance', 'super_admin'] }, }, { path: 'finance/givings', component: GivingsPageComponent, canActivate: [RoleGuard], data: { roles: ['finance', 'super_admin'] }, }, { path: 'finance/offering-session', component: OfferingSessionPageComponent, canActivate: [RoleGuard], data: { roles: ['finance', 'super_admin'] }, }, { path: 'reimbursements', component: MyReimbursementsPageComponent }, { path: 'finance/expenses', component: ExpensesPageComponent, canActivate: [RoleGuard], data: { roles: ['finance', 'super_admin'] }, }, { path: 'finance/expense-categories', component: ExpenseCategoriesPageComponent, canActivate: [RoleGuard], data: { roles: ['finance', 'super_admin'] }, }, { path: 'finance/monthly-statement', component: MonthlyStatementPageComponent, canActivate: [RoleGuard], data: { roles: ['finance', 'super_admin'] }, }, { path: 'finance/disbursements', component: DisbursementPageComponent, canActivate: [RoleGuard], data: { roles: ['finance', 'super_admin'] }, }, { path: 'finance/check-register', component: CheckRegisterPageComponent, canActivate: [RoleGuard], data: { roles: ['finance', 'super_admin'] }, }, { path: 'finance/church-profile', component: ChurchProfilePageComponent, canActivate: [RoleGuard], data: { roles: ['finance', 'super_admin'] }, }, ] }, { path: '', redirectTo: 'login', pathMatch: 'full' }, { path: 'dashboard', redirectTo: 'user-portal/dashboard' }, // Catch all route - redirect to login { path: '**', redirectTo: 'login' } ];