WebSAW-LOCAL/routes/web.php

63 lines
3.7 KiB
PHP

<?php
use App\Http\Controllers\Admin\CriteriaController as AdminCriteriaController;
use App\Http\Controllers\Admin\DashboardController as AdminDashboardController;
use App\Http\Controllers\Admin\ProductController as AdminProductController;
use App\Http\Controllers\Admin\TransactionController as AdminTransactionController;
use App\Http\Controllers\Auth\ForgotPasswordController;
use App\Http\Controllers\Auth\LoginController;
use App\Http\Controllers\Auth\RegisterController;
use App\Http\Controllers\Auth\ResetPasswordController;
use App\Http\Controllers\CartController;
use App\Http\Controllers\CheckoutController;
use App\Http\Controllers\HomeController;
use App\Http\Controllers\RecommendationController;
use App\Http\Controllers\ShopController;
use App\Http\Controllers\TransactionController;
use Illuminate\Support\Facades\Route;
Route::get('/', [HomeController::class, 'index'])->name('home');
Route::middleware('guest')->group(function () {
Route::get('/login', [LoginController::class, 'showLoginForm'])->name('login');
Route::post('/login', [LoginController::class, 'login']);
Route::get('/register', [RegisterController::class, 'showRegistrationForm'])->name('register');
Route::post('/register', [RegisterController::class, 'register']);
Route::get('/forgot-password', [ForgotPasswordController::class, 'create'])->name('password.request');
Route::post('/forgot-password', [ForgotPasswordController::class, 'store'])->name('password.email');
Route::get('/forgot-password/verify', [ResetPasswordController::class, 'create'])->name('password.verify');
Route::post('/reset-password', [ResetPasswordController::class, 'store'])->name('password.update');
});
Route::post('/logout', [LoginController::class, 'logout'])->name('logout')->middleware('auth');
Route::middleware('auth')->group(function () {
Route::get('/dashboard', [HomeController::class, 'dashboard'])->name('dashboard');
Route::get('/shop', [ShopController::class, 'index'])->name('shop.index');
Route::post('/cart', [CartController::class, 'store'])->name('cart.store');
Route::get('/cart', [CartController::class, 'index'])->name('cart.index');
Route::put('/cart/{cart}', [CartController::class, 'update'])->name('cart.update');
Route::delete('/cart/{cart}', [CartController::class, 'destroy'])->name('cart.destroy');
Route::get('/checkout', [CheckoutController::class, 'show'])->name('checkout.show');
Route::post('/checkout', [CheckoutController::class, 'process'])->name('checkout.process');
Route::get('/transactions', [TransactionController::class, 'index'])->name('transactions.index');
Route::get('/transactions/{transaction}', [TransactionController::class, 'show'])->name('transactions.show');
Route::get('/recommendation', [RecommendationController::class, 'index'])->name('recommendation.index');
Route::post('/recommendation', [RecommendationController::class, 'result'])->name('recommendation.result');
});
Route::middleware(['auth', 'admin'])->prefix('admin')->name('admin.')->group(function () {
Route::get('/', [AdminDashboardController::class, 'index'])->name('dashboard');
Route::resource('products', AdminProductController::class)->except(['show']);
Route::resource('criterias', AdminCriteriaController::class)->except(['show']);
Route::get('transactions', [AdminTransactionController::class, 'index'])->name('transactions.index');
Route::get('transactions/{transaction}', [AdminTransactionController::class, 'show'])->name('transactions.show');
Route::put('transactions/{transaction}/status', [AdminTransactionController::class, 'updateStatus'])->name('transactions.status');
Route::get('transactions/export', [AdminTransactionController::class, 'export'])->name('transactions.export');
});