name('home'); Route::get('/shop', [LandingController::class, 'shop'])->name('shop'); Route::get('/produk/{id}', [LandingController::class, 'detail'])->name('produk.detail'); // Cart (Bisa akses session cart tanpa login) Route::get('/cart', [CartController::class, 'index'])->name('cart'); Route::post('/cart/add', [CartController::class, 'addToCart'])->name('cart.add'); Route::delete('/cart/remove', [CartController::class, 'remove'])->name('cart.remove'); // --- AUTHENTICATION ROUTES (Hanya untuk Guest/Belum Login) --- Route::middleware('guest')->group(function () { Route::get('/login', [AuthController::class, 'showLoginForm'])->name('login'); Route::post('/login-proses', [AuthController::class, 'loginProcess'])->name('login.proses'); Route::get('/register', [AuthController::class, 'showRegisterForm'])->name('register'); Route::post('/register-proses', [AuthController::class, 'registerProcess'])->name('register.proses'); }); // Logout (Bisa diakses oleh user yang login) Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); // --- AREA PEMBELI (Wajib Login sebagai Pembeli) --- Route::middleware(['auth:pembeli'])->group(function () { // Menampilkan Halaman Checkout Route::get('/checkout', [CheckoutController::class, 'index'])->name('checkout'); // Memproses Data Checkout (Simpan ke Database) Route::post('/transaksi', [TransaksiController::class, 'store'])->name('transaksi.store'); }); // --- ADMIN AREA --- Route::middleware(['auth:admin'])->group(function () { Route::get('/admin/dashboard', [AdminController::class, 'dashboard'])->name('admin.dashboard'); // Petani Verification Logic Route::controller(AdminController::class)->prefix('admin/verifikasi')->group(function () { Route::get('/', 'verifikasiIndex')->name('admin.verifikasi.index'); Route::get('/{id}', 'verifikasiShow')->name('admin.verifikasi.show'); Route::post('/{id}/approve', 'verifikasiApprove'); Route::post('/{id}/reject', 'verifikasiReject'); }); }); // --- PETANI AREA --- Route::middleware(['auth:petani'])->group(function () { Route::get('/petani/dashboard', function () { return view('petani.dashboard'); })->name('petani.dashboard'); // Resource Controller untuk Produk Petani Route::resource('petani/produk', ProdukController::class) ->names('petani.produk'); });