168 lines
9.1 KiB
PHP
168 lines
9.1 KiB
PHP
<?php
|
|
|
|
use Illuminate\Support\Facades\Route;
|
|
// FRONT
|
|
use App\Http\Controllers\IndexController;
|
|
use App\Http\Controllers\HomeController;
|
|
use App\Http\Controllers\BasketController;
|
|
use App\Http\Controllers\ProductsController;
|
|
use App\Http\Controllers\CustomerController;
|
|
use App\Http\Controllers\ContactController;
|
|
// BO
|
|
use App\Http\Controllers\Bo\DashboardController;
|
|
use App\Http\Controllers\Bo\ContentController;
|
|
use App\Http\Controllers\Bo\FaqController;
|
|
use App\Http\Controllers\Bo\SettingsController;
|
|
use App\Http\Controllers\Bo\OrdersController;
|
|
use App\Http\Controllers\Bo\CreneauxController;
|
|
//use App\Http\Controllers\Bo\RangesController;
|
|
//use App\Http\Controllers\Bo\MagasinsController;
|
|
// AUTH
|
|
use App\Http\Controllers\Auth\LoginController;
|
|
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| Web Routes
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| Here is where you can register web routes for your application. These
|
|
| routes are loaded by the RouteServiceProvider within a group which
|
|
| contains the "web" middleware group. Now create something great!
|
|
|
|
|
*/
|
|
|
|
Route::get('/', [HomeController::class, 'index'])->name('home');
|
|
Route::get('/mentions-legales', [IndexController::class, 'legalNotice'])->name('legal-notice');
|
|
Route::get('/cgv', [IndexController::class, 'terms'])->name('terms');
|
|
Route::get('/politique-de-confidentialite', [IndexController::class, 'privacy'])->name('privacy');
|
|
Route::get('/faq', [IndexController::class, 'faq'])->name('faq');
|
|
|
|
//Route::get('/mon-panier', [BasketController::class, 'index'])->name('basket');
|
|
|
|
//Catalogue
|
|
Route::get('/gammes-de-produits', [ProductsController::class, 'ranges'])->name('ranges');
|
|
Route::get('/gamme-de-produits/{rangeSlug}', [ProductsController::class, 'range'])->name('range')->middleware('redirect-slugs');
|
|
Route::get('/produits', [ProductsController::class, 'allProducts'])->name('products');
|
|
Route::get('/produits/{tagSlug}', [ProductsController::class, 'tagFiltered'])->name('products.tagfilter');
|
|
Route::get('/recherche', [ProductsController::class, 'allProducts'])->name('search');
|
|
Route::get('/produit/{productSlug}', [ProductsController::class, 'product'])->name('product')->middleware('redirect-slugs');
|
|
|
|
// Route ajax pour Single Optin
|
|
Route::post('/optin', [HomeController::class, 'addOptIn'])->name('add-single-optin');
|
|
|
|
//Contact
|
|
Route::get('/contactez-nous', [ContactController::class, 'contact'])->name('contact');
|
|
Route::post('/contactez-nous', [ContactController::class, 'contactSubmit'])->name('contact-us.submit');
|
|
|
|
Route::prefix('ajax')
|
|
->name('ajx.')
|
|
->group(function () {
|
|
Route::post('/add-to-cart', [BasketController::class, 'addToCart'])->name('cart.add');
|
|
Route::post('/get-cart', [BasketController::class, 'getCart'])->name('cart.get');
|
|
Route::post('/remove-from-cart', [BasketController::class, 'removeFromCart'])->name('cart.remove');
|
|
Route::post('/empty-cart', [BasketController::class, 'emptyCart'])->name('cart.empty');
|
|
Route::post('/get-time-slots', [OrdersController::class, 'getAvailableCreneaux'])->name('get-creneaux');
|
|
});
|
|
|
|
Route::namespace('App\Http\Controllers\Bo')
|
|
->prefix('bo')
|
|
->name('bo.')
|
|
->middleware(['auth', 'is-admin'])
|
|
->group(function () {
|
|
Route::get('/', [DashboardController::class, 'index'])->name('dashboard');
|
|
Route::match(['get', 'put'], '/content/{key}', [ContentController::class, 'manage'])->name('content');
|
|
Route::match(['get', 'put'], '/settings', [SettingsController::class, 'manage'])->name('settings');
|
|
// FAQ
|
|
Route::get('/faq', [FaqController::class, 'index'])->name('faq');
|
|
Route::post('/ajax/save-faq', [FaqController::class, 'saveDatas']);
|
|
Route::post('/ajax/delete-faq', [FaqController::class, 'destroy']);
|
|
|
|
//Creneaux
|
|
Route::get('/magasins/{id}/creneaux', [CreneauxController::class, 'settings'])->name('creneaux.settings');
|
|
Route::post('/magasins/{id}/creneaux', [CreneauxController::class, 'updateSettings'])->name('creneaux.settings.update');
|
|
//exceptions de collecte
|
|
Route::post('/ajax/save-creneaux-exception', [\App\Http\Controllers\Bo\MagasinsController::class, 'saveExceptions']);
|
|
Route::post('/ajax/delete-creneaux-exception', [\App\Http\Controllers\Bo\MagasinsController::class, 'destroyExceptions']);
|
|
|
|
|
|
// Produits
|
|
//route ajoutée avant la déclaration de route resource sinon la forme /products/{product} l'emporte lors du routage
|
|
Route::get('/products/starred', [\App\Http\Controllers\Bo\ProductsController::class, 'starred'])
|
|
->name('products.starred');
|
|
Route::resource('products', '\App\Http\Controllers\Bo\ProductsController')->except([
|
|
'create'
|
|
]);
|
|
Route::get('/products/create/{product_type}', [\App\Http\Controllers\Bo\ProductsController::class, 'create'])
|
|
->name('products.create');
|
|
|
|
Route::resources([
|
|
'ranges' => RangesController::class,
|
|
'promotions' => PromotionsController::class,
|
|
'sliders' => SlidersController::class,
|
|
'slides' => SlidesController::class,
|
|
'magasins' => MagasinsController::class,
|
|
]);
|
|
Route::get('/slide/change-order/{id}/{action}', [App\Http\Controllers\Bo\SlidesController::class,'changeOrder'])->name('slides.change-order');
|
|
|
|
Route::get('/customer-info/{id}', [OrdersController::class, 'getCustomerInfo'])->name('get-customer-info');
|
|
|
|
// Commandes
|
|
Route::get('/orders', [OrdersController::class, 'index'])->name('orders');
|
|
Route::get('/orders/{reference}', [OrdersController::class, 'orderDetail'])->name('order-detail');
|
|
Route::get('/orders/{reference}/advance', [OrdersController::class, 'changeStatus'])->name('change-order-status');
|
|
Route::get('/orders/{reference}/cancel', [OrdersController::class, 'cancelOrder'])->name('cancel-order');
|
|
Route::post('/orders/add', [OrdersController::class, 'addProduct'])->name('order-add-product');
|
|
});
|
|
|
|
//actions sur les comptes utilisateurs
|
|
Route::name('auth.')
|
|
->group(function () {
|
|
//bo connect
|
|
Route::get('/bo/login', [LoginController::class, 'index'])->name('login')->middleware('guest');
|
|
Route::post('/bo/login', [LoginController::class, 'login'])->name('login.post')->middleware('guest');
|
|
Route::get('/bo/logout', [LoginController::class, 'logout'])->name('logout')->middleware('auth:web');
|
|
//customer connect
|
|
Route::get('/connexion', [CustomerController::class, 'authenticateForm'])->name('connexion')->middleware('guest');
|
|
Route::post('/connexion', [CustomerController::class, 'authenticate'])->name('connexion.post')->middleware('guest');
|
|
Route::get('/deconnexion', [CustomerController::class, 'logout'])->name('deconnexion')->middleware('auth:customer');
|
|
//customer inscription
|
|
Route::get('/inscription', [CustomerController::class, 'registerForm'])->name('register')->middleware('guest');
|
|
Route::post('/inscription', [CustomerController::class, 'register'])->name('register.post')->middleware('guest');
|
|
Route::get('/activer/{hashcode}', [CustomerController::class, 'activate'])->name('activer');
|
|
//formulaire de demande de réinit
|
|
Route::get('/mot-de-passe-oublie', [CustomerController::class, 'forgotPasswordForm'])->name('forgot-password');
|
|
//réinit et envoi mail
|
|
Route::post('/reinitialiser-mdp', [CustomerController::class, 'passwordReset'])->name('reinit-mdp');
|
|
//formulaire reinit
|
|
Route::get('/reinitialiser-mdp/{token}', [CustomerController::class, 'viewChangePassword'])->name('form-change-mdp');
|
|
//changement en crm
|
|
Route::post('/reinitialiser-mdp/{token}', [CustomerController::class, 'changePassword'])->name('change-password');
|
|
});
|
|
|
|
Route::name('account.')
|
|
->prefix('compte')
|
|
->middleware('auth:customer')
|
|
->group(function () {
|
|
Route::get('/profil', [CustomerController::class, 'dashboard'])->name('dashboard');
|
|
Route::post('/profil', [CustomerController::class, 'updateInfos'])->name('update-infos');
|
|
Route::post('/profil/change-mdp', [CustomerController::class, 'changePasswordWhenAuthenticated'])->name('change-password');
|
|
Route::get('/commandes', [CustomerController::class, 'myOrders'])->name('my-orders');
|
|
Route::get('/commandes/{reference}', [CustomerController::class, 'orderDetail'])->name('order-detail');
|
|
});
|
|
|
|
//tunnel de commande
|
|
Route::prefix('commande')
|
|
->name('sales.')
|
|
->middleware('auth:customer')
|
|
->group(function () {
|
|
//puisqu'on a le middleware on s'épargne une étape
|
|
//recap
|
|
Route::get('/recap', [OrdersController::class, 'recapOrder' ])->name('recap');
|
|
Route::post('/recap', [OrdersController::class, 'store' ])->name('order-init');
|
|
//choice timeslot
|
|
Route::get('/collect/{reference}', [OrdersController::class, 'timeSlotPick' ])->name('pick-slot');
|
|
Route::post('/collect', [OrdersController::class, 'setTimeSlot' ])->name('order-save-slot');
|
|
//confirm
|
|
Route::get('/confirm/{reference}', [OrdersController::class, 'confirmOrder' ])->name('confirm');
|
|
});
|