103 lines
5.4 KiB
PHP
103 lines
5.4 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
use App\Http\Controllers\Fo\Auth\ForgotPasswordController;
|
|
use App\Http\Controllers\Fo\Auth\LoginController;
|
|
use App\Http\Controllers\Fo\Auth\RegisterController;
|
|
use App\Http\Controllers\Fo\Auth\ResetPasswordController;
|
|
use App\Http\Controllers\Fo\Auth\VerificationController;
|
|
use App\Http\Controllers\Fo\Customers\CustomerController;
|
|
use App\Http\Controllers\Fo\Customers\OrderController;
|
|
use App\Http\Controllers\Fo\Customers\PasswordController;
|
|
use App\Http\Controllers\Fo\NewsletterController;
|
|
use App\Http\Controllers\Fo\Pages\ContactController;
|
|
use App\Http\Controllers\Fo\Pages\HomeController;
|
|
use App\Http\Controllers\Fo\Pages\PageController;
|
|
use App\Http\Controllers\Fo\Pages\ProductsController;
|
|
use App\Http\Controllers\Fo\TunnelController;
|
|
use App\Providers\RouteServiceProvider;
|
|
use Illuminate\Support\Facades\Route;
|
|
|
|
// * AUTH
|
|
Route::name('auth.')->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');
|
|
});
|