get(); return view('welcome', compact('pakets')); }); // Route untuk proses sewa dari landing page Route::get('/sewa-paket/{id}', [SewaController::class, 'create'])->name('sewa.paket'); // Route untuk Authentication (untuk guest) Route::middleware('guest')->group(function () { Route::get('/login', [AuthController::class, 'showLoginForm'])->name('login'); Route::post('/login', [AuthController::class, 'login'])->name('login.post'); Route::get('/register', [AuthController::class, 'showRegisterForm'])->name('register'); Route::post('/register', [AuthController::class, 'register'])->name('register.post'); }); // Route untuk logout Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); // Route yang membutuhkan autentikasi Route::middleware(['auth'])->group(function () { // Dashboard Route::get('/dashboard', [DashboardController::class, 'index'])->name('dashboard'); // Profile Route::get('/profile', [ProfileController::class, 'index'])->name('profile.index'); Route::put('/profile', [ProfileController::class, 'update'])->name('profile.update'); // Pengguna Route::get('/pengguna', [PenggunaController::class, 'index'])->name('pengguna'); Route::get('/pengguna/tambah', [PenggunaController::class, 'create'])->name('pengguna.create'); Route::post('/pengguna', [PenggunaController::class, 'store'])->name('pengguna.store'); Route::delete('/pengguna/{id}', [PenggunaController::class, 'destroy'])->name('pengguna.destroy'); // Admin Route::get('/admin', [AdminController::class, 'index'])->name('admin'); Route::get('/admin/tambah', [AdminController::class, 'create'])->name('admin.create'); Route::post('/admin', [AdminController::class, 'store'])->name('admin.store'); Route::get('/admin/{id}/edit', [AdminController::class, 'edit'])->name('admin.edit'); Route::put('/admin/{id}', [AdminController::class, 'update'])->name('admin.update'); Route::delete('/admin/{id}', [AdminController::class, 'destroy'])->name('admin.destroy'); // Barang Route::get('/barang', [BarangController::class, 'index'])->name('barang'); Route::get('/barang/tambah', [BarangController::class, 'create'])->name('barang.create'); Route::post('/barang', [BarangController::class, 'store'])->name('barang.store'); Route::get('/barang/{id}/edit', [BarangController::class, 'edit'])->name('barang.edit'); Route::put('/barang/{id}', [BarangController::class, 'update'])->name('barang.update'); Route::delete('/barang/{id}', [BarangController::class, 'destroy'])->name('barang.destroy'); // Paket (untuk semua user) Route::get('/paket', [PaketController::class, 'index'])->name('paket'); // Khusus Admin Route::middleware(['admin'])->group(function () { // Paket Management Route::get('/paket/tambah', [PaketController::class, 'create'])->name('paket.create'); Route::post('/paket', [PaketController::class, 'store'])->name('paket.store'); Route::get('/paket/{id}/edit', [PaketController::class, 'edit'])->name('paket.edit'); Route::put('/paket/{id}', [PaketController::class, 'update'])->name('paket.update'); Route::delete('/paket/{id}', [PaketController::class, 'destroy'])->name('paket.destroy'); Route::post('/paket/{id}/activate', [PaketController::class, 'activate'])->name('paket.activate'); Route::post('/paket/{id}/activate-all', [PaketController::class, 'activateAll'])->name('paket.activate-all'); }); // Input Stock Route::get('/input-stock', [StockController::class, 'index'])->name('input-stock'); Route::post('/input-stock', [StockController::class, 'store'])->name('input-stock.store'); Route::get('/input-stock/{id}/edit', [StockController::class, 'edit'])->name('input-stock.edit'); Route::put('/input-stock/{id}', [StockController::class, 'update'])->name('input-stock.update'); Route::get('/input-stock/{id}/kelola-barang', [StockController::class, 'kelolaBarang'])->name('input-stock.kelola-barang'); Route::get('/input-stock/{id}/barang', [StockController::class, 'getBarangPaket'])->name('input-stock.barang'); Route::post('/input-stock/{id}/barang', [StockController::class, 'tambahBarang'])->name('input-stock.tambah-barang'); Route::delete('/input-stock/{paketId}/barang/{barangId}', [StockController::class, 'hapusBarang'])->name('input-stock.hapus-barang'); // PaketBarang Route::put('/paket-barang/{id}', [PaketBarangController::class, 'update'])->name('paket-barang.update'); Route::delete('/paket-barang/{id}', [PaketBarangController::class, 'destroy'])->name('paket-barang.destroy'); // Sewa Route::get('/sewa', [SewaController::class, 'index'])->name('sewa'); Route::get('/sewa/riwayat', [SewaController::class, 'riwayat'])->name('sewa.riwayat'); Route::get('/sewa/{id}/detail', [SewaController::class, 'detail'])->name('sewa.detail'); Route::get('/sewa/create/{id}', [SewaController::class, 'create'])->name('sewa.create'); Route::post('/sewa', [SewaController::class, 'store'])->name('sewa.store'); Route::get('/sewa/{id}', [SewaController::class, 'show'])->name('sewa.show'); Route::post('/sewa/{id}/upload-bukti', [SewaController::class, 'uploadBukti'])->name('sewa.upload-bukti'); Route::post('/sewa/{id}/upload-jaminan', [SewaController::class, 'uploadJaminan'])->name('sewa.upload-jaminan'); Route::post('/sewa/{id}/batal', [SewaController::class, 'batal'])->name('sewa.batal'); // Riwayat Route::get('/riwayat', [RiwayatController::class, 'index'])->name('riwayat'); Route::get('/riwayat/{id}', [RiwayatController::class, 'show'])->name('riwayat.show'); Route::put('/riwayat/{id}/batal', [RiwayatController::class, 'cancel'])->name('riwayat.batal'); // Admin Riwayat Route::prefix('admin')->name('admin.')->group(function () { Route::get('/riwayat', [RiwayatController::class, 'adminIndex'])->name('riwayat'); Route::put('/riwayat/{id}/status', [RiwayatController::class, 'updateStatus'])->name('riwayat.status'); // Verifikasi Pembayaran Route::get('/verifikasi', [App\Http\Controllers\Admin\VerifikasiController::class, 'index'])->name('verifikasi.index'); Route::post('/verifikasi/{id}/approve', [App\Http\Controllers\Admin\VerifikasiController::class, 'approve'])->name('verifikasi.approve'); Route::post('/verifikasi/{id}/reject', [App\Http\Controllers\Admin\VerifikasiController::class, 'reject'])->name('verifikasi.reject'); }); // Chat Routes Route::get('/chat/unread-count', [ChatController::class, 'getUnreadCount'])->name('chat.unreadCount'); Route::get('/chat', [ChatController::class, 'index'])->name('chat.index'); Route::get('/chat/{user_id}/messages', [ChatController::class, 'getNewMessages'])->name('chat.messages'); Route::get('/chat/{user_id}', [ChatController::class, 'show'])->name('chat.show'); Route::post('/chat/{user_id}', [ChatController::class, 'store'])->name('chat.store'); Route::post('/chat/{user_id}/mark-as-read', [ChatController::class, 'markAsRead'])->name('chat.markAsRead'); }); // Reroute dari dashboard/users ke pengguna Route::get('/dashboard/users', function () { return redirect()->route('pengguna'); })->name('dashboard.users'); // Admin Routes Route::middleware(['auth', 'role:admin'])->prefix('admin')->group(function () { Route::get('/dashboard', [App\Http\Controllers\Admin\DashboardController::class, 'index'])->name('admin.dashboard'); // ... other admin routes ... }); // Customer Routes Route::middleware(['auth', 'role:customer'])->prefix('customer')->group(function () { Route::get('/dashboard', [App\Http\Controllers\Customer\DashboardController::class, 'index'])->name('customer.dashboard'); // Paket - hanya view Route::get('/paket', [PaketController::class, 'index'])->name('customer.paket'); // Sewa Route::get('/sewa', [SewaController::class, 'index'])->name('customer.sewa'); Route::get('/sewa/create/{id}', [SewaController::class, 'create'])->name('customer.sewa.create'); Route::post('/sewa', [SewaController::class, 'store'])->name('customer.sewa.store'); Route::get('/sewa/{id}', [SewaController::class, 'show'])->name('customer.sewa.show'); Route::post('/sewa/{id}/upload-bukti', [SewaController::class, 'uploadBukti'])->name('customer.sewa.upload-bukti'); // Riwayat Route::get('/riwayat', [RiwayatController::class, 'index'])->name('customer.riwayat'); Route::get('/riwayat/{id}', [RiwayatController::class, 'show'])->name('customer.riwayat.show'); Route::put('/riwayat/{id}/cancel', [RiwayatController::class, 'cancel'])->name('customer.riwayat.cancel'); }); // Routes untuk manajemen ongkir kota (admin only) Route::middleware(['auth', 'admin'])->prefix('admin')->name('admin.')->group(function () { Route::resource('ongkir-kota', OngkirKotaController::class); }); // Routes untuk Hubungi Kami Route::get('/contact', [ContactInfoController::class, 'show'])->name('contact.show'); Route::middleware(['auth', 'admin'])->group(function () { Route::get('/admin/contact', [ContactInfoController::class, 'index'])->name('contact.index'); Route::post('/admin/contact', [ContactInfoController::class, 'store'])->name('contact.store'); });