import { BrowserRouter, Route, Routes } from "react-router-dom";

import AuthGate from "@/components/AuthGate";
import AppLayout from "@/layouts/AppLayout";
import EventAssetsPage from "@/pages/EventAssetsPage";
import ForgotPasswordPage from "@/pages/ForgotPasswordPage";
import LoginCodePage from "@/pages/LoginCodePage";
import LoginPage from "@/pages/LoginPage";
import PartneringAppPage from "@/pages/PartneringAppPage";
import PhotosVideosPage from "@/pages/PhotosVideosPage";
import ReceiptsInvoicesPage from "@/pages/ReceiptsInvoicesPage";
import AboutPage from "@/pages/AboutPage";
import NotFoundPage from "@/pages/NotFoundPage";
import ProfileDetailsPage from "@/pages/ProfileDetailsPage";
import SettingsPage from "@/pages/SettingsPage";
import UpcomingEventsPage from "@/pages/UpcomingEventsPage";

export default function App() {
    return (
        <BrowserRouter>
            <Routes>
                <Route path="login" element={<LoginPage />} />
                <Route path="login/code" element={<LoginCodePage />} />
                <Route
                    path="forgot-password"
                    element={<ForgotPasswordPage />}
                />
                <Route element={<AuthGate />}>
                    <Route element={<AppLayout />}>
                        <Route index element={<ProfileDetailsPage />} />
                        <Route
                            path="photos-videos"
                            element={<PhotosVideosPage />}
                        />
                        <Route
                            path="upcoming-events"
                            element={<UpcomingEventsPage />}
                        />
                        <Route
                            path="event-assets"
                            element={<EventAssetsPage />}
                        />
                        <Route
                            path="partnering-app"
                            element={<PartneringAppPage />}
                        />
                        <Route
                            path="receipts-invoices"
                            element={<ReceiptsInvoicesPage />}
                        />
                        <Route path="settings" element={<SettingsPage />} />
                        <Route path="about" element={<AboutPage />} />
                        <Route path="*" element={<NotFoundPage />} />
                    </Route>
                </Route>
            </Routes>
        </BrowserRouter>
    );
}
