import React, { Suspense } from 'react';
import { Routes, Route, Navigate } from 'react-router-dom';
import { ProtectedRoute } from './ProtectedRoute';
import { LoadingSpinner } from '../components/ui';
import { AppShell } from '../components/layout';
// Lazy load the pages we actually have
const LandingPage = React.lazy(() => import('../pages/public/LandingPage'));
const FeaturesPage = React.lazy(() => import('../pages/public/FeaturesPage'));
const LoginPage = React.lazy(() => import('../pages/public/LoginPage'));
const RegisterPage = React.lazy(() => import('../pages/public/RegisterPage'));
const DemoPage = React.lazy(() => import('../pages/public/DemoPage'));
const PrivacyPolicyPage = React.lazy(() => import('../pages/public/PrivacyPolicyPage'));
const TermsOfServicePage = React.lazy(() => import('../pages/public/TermsOfServicePage'));
const CookiePolicyPage = React.lazy(() => import('../pages/public/CookiePolicyPage'));
const CookiePreferencesPage = React.lazy(() => import('../pages/public/CookiePreferencesPage'));
const BlogPage = React.lazy(() => import('../pages/public/BlogPage'));
const BlogPostPage = React.lazy(() => import('../pages/public/BlogPostPage'));
const AboutPage = React.lazy(() => import('../pages/public/AboutPage'));
const CareersPage = React.lazy(() => import('../pages/public/CareersPage'));
const HelpCenterPage = React.lazy(() => import('../pages/public/HelpCenterPage'));
const DocumentationPage = React.lazy(() => import('../pages/public/DocumentationPage'));
const ContactPage = React.lazy(() => import('../pages/public/ContactPage'));
const FeedbackPage = React.lazy(() => import('../pages/public/FeedbackPage'));
const UnauthorizedPage = React.lazy(() => import('../pages/public/UnauthorizedPage'));
const DashboardPage = React.lazy(() => import('../pages/app/DashboardPage'));
// Operations pages
const InventoryPage = React.lazy(() => import('../pages/app/operations/inventory/InventoryPage'));
const ProductionPage = React.lazy(() => import('../pages/app/operations/production/ProductionPage'));
const RecipesPage = React.lazy(() => import('../pages/app/operations/recipes/RecipesPage'));
const ProcurementPage = React.lazy(() => import('../pages/app/operations/procurement/ProcurementPage'));
const SuppliersPage = React.lazy(() => import('../pages/app/operations/suppliers/SuppliersPage'));
const OrdersPage = React.lazy(() => import('../pages/app/operations/orders/OrdersPage'));
const POSPage = React.lazy(() => import('../pages/app/operations/pos/POSPage'));
const MaquinariaPage = React.lazy(() => import('../pages/app/operations/maquinaria/MaquinariaPage'));
const DistributionPage = React.lazy(() => import('../pages/app/operations/distribution/DistributionPage'));
// Analytics pages
const ProductionAnalyticsPage = React.lazy(() => import('../pages/app/analytics/ProductionAnalyticsPage'));
const ProcurementAnalyticsPage = React.lazy(() => import('../pages/app/analytics/ProcurementAnalyticsPage'));
const ForecastingPage = React.lazy(() => import('../pages/app/analytics/forecasting/ForecastingPage'));
const SalesAnalyticsPage = React.lazy(() => import('../pages/app/analytics/sales-analytics/SalesAnalyticsPage'));
const ScenarioSimulationPage = React.lazy(() => import('../pages/app/analytics/scenario-simulation/ScenarioSimulationPage'));
const AIInsightsPage = React.lazy(() => import('../pages/app/analytics/ai-insights/AIInsightsPage'));
const PerformanceAnalyticsPage = React.lazy(() => import('../pages/app/analytics/performance/PerformanceAnalyticsPage'));
const EventRegistryPage = React.lazy(() => import('../pages/app/analytics/events/EventRegistryPage'));
// Enterprise Dashboard Page
const EnterpriseDashboardPage = React.lazy(() => import('../pages/app/EnterpriseDashboardPage'));
// Settings pages - Unified
const BakerySettingsPage = React.lazy(() => import('../pages/app/settings/bakery/BakerySettingsPage'));
const NewProfileSettingsPage = React.lazy(() => import('../pages/app/settings/profile/NewProfileSettingsPage'));
const SubscriptionPage = React.lazy(() => import('../pages/app/settings/subscription/SubscriptionPage'));
const TeamPage = React.lazy(() => import('../pages/app/settings/team/TeamPage'));
const OrganizationsPage = React.lazy(() => import('../pages/app/settings/organizations/OrganizationsPage'));
// Database pages
const DatabasePage = React.lazy(() => import('../pages/app/database/DatabasePage'));
const ModelsConfigPage = React.lazy(() => import('../pages/app/database/models/ModelsConfigPage'));
const QualityTemplatesPage = React.lazy(() => import('../pages/app/database/quality-templates/QualityTemplatesPage'));
const SustainabilityPage = React.lazy(() => import('../pages/app/database/sustainability/SustainabilityPage'));
// Onboarding page (Setup is now integrated into UnifiedOnboardingWizard)
const OnboardingPage = React.lazy(() => import('../pages/onboarding/OnboardingPage'));
export const AppRouter: React.FC = () => {
return (
}>
{/* Public Routes */}
} />
} />
} />
} />
} />
{/* Company Routes - Public */}
} />
} />
} />
} />
{/* Help & Support Routes - Public */}
} />
} />
} />
} />
{/* Legal & Privacy Routes - Public */}
} />
} />
} />
} />
} />
} />
{/* Protected Routes with AppShell Layout */}
}
/>
}
/>
{/* Operations Routes - Business Operations Only */}
}
/>
}
/>
}
/>
}
/>
{/* Database Routes - Current Bakery Status */}
}
/>
}
/>
}
/>
}
/>
}
/>
{/* NEW: Unified Bakery Settings Route */}
}
/>
{/* Legacy routes redirect to new unified page */}
} />
} />
}
/>
}
/>
}
/>
}
/>
}
/>
{/* Analytics Routes */}
}
/>
}
/>
}
/>
}
/>
}
/>
}
/>
}
/>
}
/>
{/* Enterprise Dashboard Route - Only for enterprise tier */}
}
/>
{/* Settings Routes */}
{/* NEW: Unified Profile Settings Route */}
}
/>
{/* Legacy routes redirect to new unified profile page */}
} />
} />
} />
}
/>
}
/>
{/* Onboarding Route - Protected but without AppShell */}
}
/>
{/* Setup is now integrated into UnifiedOnboardingWizard */}
{/* Default redirects */}
} />
} />
);
};
export default AppRouter;