import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';

import { DefaultComponent } from './dashboards/default/default.component';
import { ProductsComponent } from './plans/products/products.component';
import { ProfileComponent } from './profile/profile.component';
import { CompanyComponent } from './company/company.component';
import { DevicelistComponent } from './device/devicelist.component';
import { RolelistComponent } from './rolelist/rolelist.component';
import { UserlistComponent } from './userlist/userlist.component';
import { AddUserComponent } from './userlist/add-user/add-user.component';
import { TenantlistComponent } from './tenant/tenantlist.component';
import { DevicesListComponent } from './devicesnew/devices-list/devices-list.component';
import { CustomerlistComponent } from './customer/customerlist.component';
import { RbacManagementComponent } from './rbac-management/rbac-management.component';
import { BookStockComponent } from './book-stock/book-stock.component';
import { StudentManagementComponent } from './student-management/student-management.component';
import { RulesComponent } from './rules/rules.component';
import { AuthGuard } from '../core/guards/auth.guard';



const routes: Routes = [

  // 🔓 PUBLIC ROUTE
  { path: 'books-public', component: BookStockComponent },

  // 🔐 PROTECTED ROUTES
  { path: '', component: DefaultComponent, canActivate: [AuthGuard] },
  { path: 'profile', component: ProfileComponent, canActivate: [AuthGuard] },  
  { path: 'company', component: CompanyComponent, canActivate: [AuthGuard] }, 
  { path: 'device', component: DevicelistComponent, canActivate: [AuthGuard] }, 
  { path: 'rolelist', component: RolelistComponent, canActivate: [AuthGuard] }, 
  { path: 'userlist', component: UserlistComponent, canActivate: [AuthGuard] },
  { path: 'adduser', component: AddUserComponent, canActivate: [AuthGuard] }, 
  { path: 'tenant', component: TenantlistComponent, canActivate: [AuthGuard] }, 
  { path: 'customer', component: CustomerlistComponent, canActivate: [AuthGuard] }, 
  { path: 'rbac', component: RbacManagementComponent, canActivate: [AuthGuard] }, 

  // 🔐 private books
  { path: 'books', component: BookStockComponent, canActivate: [AuthGuard] }, 

  { path: 'students', component: StudentManagementComponent, canActivate: [AuthGuard] }, 
  { path: 'rules', component: RulesComponent, canActivate: [AuthGuard] }, 

  { path: 'plans', loadChildren: () => import('./plans/plans.module').then(m => m.PlansModule), canActivate: [AuthGuard] }

];

@NgModule({
  imports: [RouterModule.forChild(routes)],
  exports: [RouterModule]
})
export class PagesRoutingModule { }
