middleware('web')->group(function () { Route::get('/login', [AdminAuthController::class, 'showLoginForm'])->name('admin.login'); Route::post('/login', [AdminAuthController::class, 'login'])->name('admin.login.submit'); Route::post('/logout', [AdminAuthController::class, 'logout'])->name('admin.logout'); }); // ========================================== // PROTECTED ADMIN ROUTES (session protected) // ========================================== Route::prefix('admin') ->middleware(['web', 'auth:admin']) ->group(function () { // Dashboard Route::get('/dashboard', [AdminOrderController::class, 'index']) ->name('admin.dashboard'); Route::get('/reports', [AdminReportController::class, 'index'])->name('admin.reports'); Route::get('/chat-support', fn() => view('admin.chat_support')) ->name('admin.chat_support'); Route::get('/staff', fn() => view('admin.staff')) ->name('admin.staff'); Route::get('/account', fn() => view('admin.account')) ->name('admin.account'); Route::get('/profile', fn() => view('admin.profile')) ->name('admin.profile'); // --------------------------- // USER REQUESTS // --------------------------- Route::get('/requests', [UserRequestController::class, 'index']) ->name('admin.requests'); Route::get('/requests/approve/{id}', [UserRequestController::class, 'approve']) ->name('admin.requests.approve'); Route::get('/requests/reject/{id}', [UserRequestController::class, 'reject']) ->name('admin.requests.reject'); // PROFILE UPDATE REQUESTS Route::get('/profile-update-requests', [UserRequestController::class, 'profileUpdateRequests'] )->name('admin.profile.requests'); Route::get('/profile-update/approve/{id}', [UserRequestController::class, 'approveProfileUpdate'] )->name('admin.profile.approve'); Route::get('/profile-update/reject/{id}', [UserRequestController::class, 'rejectProfileUpdate'] )->name('admin.profile.reject'); // --------------------------- // MARK LIST // --------------------------- Route::get('/mark-list', [AdminMarkListController::class, 'index']) ->name('admin.marklist.index'); Route::get('/mark-list/status/{id}', [AdminMarkListController::class, 'toggleStatus']) ->name('admin.marklist.toggle'); // --------------------------- // ORDERS // --------------------------- Route::get('/orders', [AdminOrderController::class, 'orderShow']) ->name('admin.orders'); Route::get('/orders/list', [AdminOrderController::class, 'index']) ->name('admin.orders.index'); Route::get('/orders/{id}', [AdminOrderController::class, 'show']) ->name('admin.orders.show'); Route::post('/orders/temp/add', [AdminOrderController::class, 'addTempItem']) ->name('admin.orders.temp.add'); Route::post('/orders/temp/delete', [AdminOrderController::class, 'deleteTempItem']) ->name('admin.orders.temp.delete'); Route::post('/orders/temp/reset', [AdminOrderController::class, 'resetTemp']) ->name('admin.orders.temp.reset'); Route::post('/orders/finish', [AdminOrderController::class, 'finishOrder']) ->name('admin.orders.finish'); Route::get('/orders/view/{id}', [AdminOrderController::class, 'popup']) ->name('admin.orders.popup'); // --------------------------- // ORDERS (FIXED ROUTES) // --------------------------- // Add item to order Route::post('/orders/{order}/item', [AdminOrderController::class, 'addItem']) ->name('admin.orders.addItem'); // Delete item from order Route::delete('/orders/item/{id}', [AdminOrderController::class, 'deleteItem']) ->name('admin.orders.deleteItem'); // Restore deleted item Route::post('/orders/item/{id}/restore', [AdminOrderController::class, 'restoreItem']) ->name('admin.orders.restoreItem'); // Update main order fields Route::put('/admin/orders/item/update/{id}', [AdminOrderController::class, 'updateItem']) ->name('admin.orders.updateItem'); // Delete full order Route::delete('/orders/{id}/delete', [AdminOrderController::class, 'destroy']) ->name('admin.orders.destroy'); // --------------------------- // SHIPMENTS (FIXED ROUTES) // --------------------------- Route::get('/shipments', [ShipmentController::class, 'index']) ->name('admin.shipments'); Route::post('/shipments', [ShipmentController::class, 'store']) ->name('admin.shipments.store'); Route::post('/shipments/update-status', [ShipmentController::class, 'updateStatus']) ->name('admin.shipments.updateStatus'); // Get shipment orders for modal (AJAX) Route::get('/shipments/{id}/orders', [ShipmentController::class, 'getShipmentOrders']) ->name('admin.shipments.orders'); // Get shipment details for edit (AJAX) Route::get('/shipments/{id}', [ShipmentController::class, 'show']) ->name('admin.shipments.show'); // Shipment Update Route::put('/shipments/{id}', [ShipmentController::class, 'update']) ->name('admin.shipments.update'); // Shipment Delete Route::delete('/shipments/{id}', [ShipmentController::class, 'destroy']) ->name('admin.shipments.destroy'); Route::get('/shipment/dummy/{id}', [ShipmentController::class, 'dummy']) ->name('admin.shipments.dummy'); // web.php Route::delete('/shipments/{shipment}/orders/{order}', [ShipmentController::class, 'removeOrder'] )->name('admin.shipments.removeOrder'); Route::post('/shipments/{shipment}/add-orders', [ShipmentController::class, 'addOrders'] )->name('admin.shipments.addOrders'); Route::get('/shipment/dummy/{id}', [ShipmentController::class, 'dummy']) ->name('admin.shipments.dummy'); // --------------------------- // INVOICES // --------------------------- Route::get('/invoices', [AdminInvoiceController::class, 'index']) ->name('admin.invoices.index'); Route::get('/invoices/{id}/popup', [AdminInvoiceController::class, 'popup']) ->name('admin.invoices.popup'); Route::get('/invoices/{id}/edit', [AdminInvoiceController::class, 'edit']) ->name('admin.invoices.edit'); Route::post('/invoices/{id}/update', [AdminInvoiceController::class, 'update']) ->name('admin.invoices.update'); Route::post('/invoices/{invoice}/installments', [AdminInvoiceController::class, 'storeInstallment']) ->name('admin.invoice.installment.store'); Route::post('/invoices/{id}/installment', [AdminInvoiceController::class, 'storeInstallment']) ->name('admin.invoice.installment.store'); Route::delete('/installment/{id}', [AdminInvoiceController::class, 'deleteInstallment']) ->name('admin.invoice.installment.delete'); //Add New Invoice Route::get('/admin/invoices/create', [InvoiceController::class, 'create'])->name('admin.invoices.create'); // --------------------------- // CUSTOMERS // --------------------------- Route::get('/customers', [AdminCustomerController::class, 'index']) ->name('admin.customers.index'); Route::get('/customers/add', [AdminCustomerController::class, 'create']) ->name('admin.customers.add'); Route::post('/customers/store', [AdminCustomerController::class, 'store']) ->name('admin.customers.store'); Route::get('/customers/{id}/view', [AdminCustomerController::class, 'view']) ->name('admin.customers.view'); Route::post('/customers/{id}/status', [AdminCustomerController::class, 'toggleStatus']) ->name('admin.customers.status'); // Chat list page Route::get('/chat-support', [AdminChatController::class, 'index']) ->name('admin.chat_support'); // Chat window (open specific user's chat) Route::get('/chat-support/{ticketId}', [AdminChatController::class, 'openChat']) ->name('admin.chat.open'); // Admin sending message Route::post('/chat-support/{ticketId}/send', [AdminChatController::class, 'sendMessage']) ->name('admin.chat.send'); }); // ========================================== // ADMIN ACCOUNT (AJAX) ROUTES // ========================================== Route::prefix('admin/account') ->middleware(['web', 'auth:admin']) ->name('admin.account.') ->group(function () { Route::get('/dashboard', [AdminAccountController::class, 'getDashboardData']) ->name('dashboard'); Route::get('/available-orders', [AdminAccountController::class, 'getAvailableOrders']) ->name('orders.available'); Route::post('/create-order', [AdminAccountController::class, 'accountCreateOrder']) ->name('create'); Route::post('/toggle-payment', [AdminAccountController::class, 'togglePayment']) ->name('toggle'); Route::post('/installment/create', [AdminAccountController::class, 'addInstallment']) ->name('installment.create'); Route::post('/installment/update-status', [AdminAccountController::class, 'updateInstallmentStatus']) ->name('installment.update'); Route::get('/entry/{entry_no}', [AdminAccountController::class, 'getEntryDetails']) ->name('entry.details'); // ⬇⬇ NEW ROUTES FOR EDIT + DELETE ⬇⬇ Route::post('/update-entry', [AdminAccountController::class, 'updateEntry']) ->name('update.entry'); Route::post('/delete-entry', [AdminAccountController::class, 'deleteEntry']) ->name('delete.entry'); // ===== Associated Orders Routes (EDIT MODAL साठी) ===== Route::post('/add-orders-to-entry', [AdminAccountController::class, 'addOrdersToEntry']) ->name('add.orders.to.entry'); Route::get('/entry-orders/{entry_no}', [AdminAccountController::class, 'getEntryOrders']) ->name('entry.orders'); Route::post('/remove-order-from-entry', [AdminAccountController::class, 'removeOrderFromEntry']) ->name('remove.order.from.entry'); }); // --------------------------- // REPORTS DOWNLOAD ROUTES // --------------------------- Route::get('/admin/orders/download/pdf', [AdminOrderController::class, 'downloadPdf']) ->name('admin.orders.download.pdf'); Route::get('/admin/orders/download/excel', [AdminOrderController::class, 'downloadExcel']) ->name('admin.orders.download.excel'); Route::prefix('admin/account')->middleware(['web', 'auth:admin'])->name('admin.account.')->group(function () { Route::post('/toggle-payment', [AdminAccountController::class, 'togglePayment'])->name('toggle'); }); //--------------------------- //Edit Button Route //--------------------------- // protected admin routes Route::middleware(['web', 'auth:admin']) ->prefix('admin') ->name('admin.') ->group(function () { // staff resource Route::resource('staff', AdminStaffController::class); });