76 lines
3.0 KiB
PHP
76 lines
3.0 KiB
PHP
<?php
|
|
|
|
use Illuminate\Support\Facades\Route;
|
|
use App\Http\Controllers\AuthController;
|
|
use App\Http\Controllers\AdminController;
|
|
use App\Http\Controllers\CartController;
|
|
use App\Http\Controllers\CheckoutController;
|
|
use App\Http\Controllers\LandingController;
|
|
use App\Http\Controllers\Petani\ProdukController;
|
|
use App\Http\Controllers\TransaksiController;
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| Web Routes
|
|
|--------------------------------------------------------------------------
|
|
*/
|
|
|
|
// --- PUBLIC ROUTES (Bisa diakses siapa saja) ---
|
|
Route::get('/', [LandingController::class, 'index'])->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');
|
|
}); |