import { Routes } from '@angular/router'; import { languageGuard } from './guards/language.guard'; // Core routes (same across all brands) const coreRoutes: Routes = [ { path: '', loadComponent: () => import('./pages/home/home.component').then(m => m.HomeComponent) }, { path: 'catalog', loadComponent: () => import('./features/website/catalog/containers/catalog-container.component').then(m => m.CatalogContainerComponent) }, { path: 'catalog/:id', loadComponent: () => import('./features/website/catalog/containers/catalog-container.component').then(m => m.CatalogContainerComponent) }, { path: 'category/:id', redirectTo: 'catalog/:id', pathMatch: 'full' }, { path: 'category/:id/items', redirectTo: 'catalog/:id', pathMatch: 'full' }, { path: 'product/:id', loadComponent: () => import('./features/website/product/containers/product-details-container.component').then(m => m.ProductDetailsContainerComponent) }, { path: 'item/:id', redirectTo: 'product/:id', pathMatch: 'full' }, { path: 'search', loadComponent: () => import('./pages/search/search.component').then(m => m.SearchComponent) }, { path: 'cart', loadComponent: () => import('./pages/cart/cart.component').then(m => m.CartComponent) } ]; // TODO(CMS): Resolve informational/legal pages from backend content configuration here. // Disabled hardcoded pages: about, contacts, faq, delivery, guarantee, // company-details, payment-terms, return-policy, public-offer, privacy-policy. const cmsContentRoutes: Routes = []; // All routes sit under a :lang prefix (e.g. /ru/cart, /en/product/5) export const routes: Routes = [ { path: ':lang', canActivate: [languageGuard], children: [ ...coreRoutes, ...cmsContentRoutes, { path: '**', redirectTo: '' } ] }, // URLs without a language prefix → redirect to default language { path: '**', redirectTo: 'ru' } ];