prefix('auth')->middleware( 'throttle:' . RouteServiceProvider::ROUTE_GROUP_WEB_CREDENTIALS )->group(function (): void { Route::get('connexion', [LoginController::class, 'showLoginForm'])->name('connexion'); Route::post('connexion', [LoginController::class, 'login'])->name('connexion.post'); Route::get('inscription', [RegisterController::class, 'showForm'])->name('register'); Route::post('inscription', [RegisterController::class, 'submitForm'])->name('register.post'); Route::get('mot-de-passe-oublie', [ForgotPasswordController::class, 'showLinkRequestForm'])->name('ask-reset-password'); Route::post('mot-de-passe-oublie', [ForgotPasswordController::class, 'sendResetLinkEmail'])->name('ask-reset-password.post'); Route::get('reinitialiser-mdp/{token}', [ResetPasswordController::class, 'showResetForm'])->name('reset-password'); Route::post('reinitialiser-mdp/{token}', [ResetPasswordController::class, 'reset'])->name('reset-password.post'); Route::get('email/verify', [VerificationController::class, 'show'])->name('verification.notice'); Route::get('email/verify/{id}/{hash}', [VerificationController::class, 'verify'])->name('verification.verify'); Route::post('email/resend', [VerificationController::class, 'resend'])->name('verification.resend'); Route::post('deconnexion', [LoginController::class, 'logout'])->name('deconnexion'); }); // * CUSTOMER AUTHENTICATED Route::middleware(['auth:frontend', 'verified', 'is-employed'])->group(function (): void { // * ACCOUNT Route::name('account.')->prefix('compte')->group(function (): void { // * DASHBOARD Route::get('/', [CustomerController::class, 'dashboard'])->name('dashboard'); // * CUSTOMER Route::name('edit.')->group(function (): void { // * INFOS Route::get('profil', [CustomerController::class, 'editInfos'])->name('infos.show'); Route::post('profil', [CustomerController::class, 'editInfosSubmit'])->name('infos.update'); // * SECURITY Route::get('mot-de-passe', [PasswordController::class, 'editPassword'])->name('password.show'); Route::post('mot-de-passe', [PasswordController::class, 'editPasswordSubmit'])->name('password.update'); }); // * ORDERS Route::get('commandes', [OrderController::class, 'index'])->name('orders.index'); Route::get('commandes/{order:reference}', [OrderController::class, 'show'])->name('orders.show'); }); // * ORDER TUNNEL Route::prefix('commande')->name('sales.')->group(function (): void { // * 1. BASKET Route::get('panier', [TunnelController::class, 'basketSummary'])->name('summary'); Route::post('panier', [TunnelController::class, 'basketSummarySubmit'])->name('summary.submit'); // * 2. TIME SLOT Route::get('creneaux', [TunnelController::class, 'pickTimeSlot'])->name('pick-time-slot'); Route::post('creneaux', [TunnelController::class, 'pickTimeSlotSubmit'])->name('pick-time-slot.submit'); // * 3. CONFIRMATION & CHECKOUT Route::get('confirmation', [TunnelController::class, 'confirmation'])->name('confirmation'); Route::post('confirmation', [TunnelController::class, 'confirmationSubmit'])->name('confirmation.submit'); // * 4. CONFIRMATION DONE Route::get('confirmation/{order:reference}', [TunnelController::class, 'confirmed'])->name('confirmation.show-confirmed'); }); }); // * PUBLIC Route::group([], function (): void { // * PAGES Route::get('/', [HomeController::class, 'index'])->name('pages.home'); Route::get('cgv', [PageController::class, 'terms'])->name('pages.terms'); Route::get('faq', [PageController::class, 'faq'])->name('pages.faq'); Route::get('mentions-legales', [PageController::class, 'legalNotice'])->name('pages.legal-notice'); Route::get('charte-de-confidentialite', [PageController::class, 'privacy'])->name('pages.privacy'); // * CONTACT PAGE Route::get('contactez-nous', [ContactController::class, 'showForm'])->name('pages.contact'); Route::post('contactez-nous', [ContactController::class, 'submitForm'])->name('pages.contact.submit'); // * PRODUCTS Route::get('produits', [ProductsController::class, 'index'])->name('products.index'); Route::get('produit/{productWithPricingPublished}', [ProductsController::class, 'view'])->name('products.show'); // * NEWSLETTER Route::get('unsubscribe', [NewsletterController::class, 'unsubscribe'])->name('newsletter.unsubscribe'); });