use Illuminate\Support\Facades\Route; use App\Http\Controllers\Admin\AuthController; use App\Http\Controllers\Admin\DashboardController; use App\Http\Controllers\Admin\UserController; use App\Http\Controllers\Admin\CategoryController; use App\Http\Controllers\Admin\ServiceController; use App\Http\Controllers\Admin\ProviderController; use App\Http\Controllers\Admin\OrderController; use App\Http\Controllers\Admin\PaymentController; use App\Http\Controllers\Admin\ReportController; use App\Http\Controllers\Admin\SettingsController; use App\Http\Controllers\Admin\RoleController; use App\Http\Controllers\Admin\ActivityController; use App\Http\Controllers\Admin\BroadcastController; use App\Http\Controllers\Admin\TicketController; // Admin Guest Routes Route::prefix('admin')->name('admin.')->group(function () { Route::get('/login', [AuthController::class, 'showLoginForm'])->name('login'); Route::post('/login', [AuthController::class, 'login']); // Admin Authenticated Routes Route::middleware(['admin.auth', 'admin.activity'])->group(function () { // Dashboard Route::get('/dashboard', [DashboardController::class, 'index'])->name('dashboard'); Route::get('/analytics', [DashboardController::class, 'getAnalytics'])->name('analytics'); // Logout Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); // Users Management Route::prefix('users')->name('users.')->group(function () { Route::get('/', [UserController::class, 'index'])->name('index'); Route::get('/create', [UserController::class, 'create'])->name('create'); Route::post('/', [UserController::class, 'store'])->name('store'); Route::get('/export', [UserController::class, 'export'])->name('export'); Route::post('/bulk-action', [UserController::class, 'bulkAction'])->name('bulk-action'); Route::get('/{user}', [UserController::class, 'show'])->name('show'); Route::get('/{user}/edit', [UserController::class, 'edit'])->name('edit'); Route::put('/{user}', [UserController::class, 'update'])->name('update'); Route::put('/{user}/password', [UserController::class, 'updatePassword'])->name('password'); Route::post('/{user}/ban', [UserController::class, 'ban'])->name('ban'); Route::post('/{user}/unban', [UserController::class, 'unban'])->name('unban'); Route::post('/{user}/suspend', [UserController::class, 'suspend'])->name('suspend'); Route::post('/{user}/verify-email', [UserController::class, 'verifyEmail'])->name('verify-email'); Route::post('/{user}/impersonate', [UserController::class, 'impersonate'])->name('impersonate'); Route::delete('/{user}', [UserController::class, 'destroy'])->name('destroy'); }); // Stop Impersonation Route::post('/stop-impersonate', [UserController::class, 'stopImpersonate'])->name('stop-impersonate'); // Categories Management Route::prefix('categories')->name('categories.')->group(function () { Route::get('/', [CategoryController::class, 'index'])->name('index'); Route::get('/create', [CategoryController::class, 'create'])->name('create'); Route::post('/', [CategoryController::class, 'store'])->name('store'); Route::post('/update-order', [CategoryController::class, 'updateOrder'])->name('update-order'); Route::get('/{category}/edit', [CategoryController::class, 'edit'])->name('edit'); Route::put('/{category}', [CategoryController::class, 'update'])->name('update'); Route::delete('/{category}', [CategoryController::class, 'destroy'])->name('destroy'); Route::post('/{category}/toggle-status', [CategoryController::class, 'toggleStatus'])->name('toggle-status'); }); // Services Management Route::prefix('services')->name('services.')->group(function () { Route::get('/', [ServiceController::class, 'index'])->name('index'); Route::get('/create', [ServiceController::class, 'create'])->name('create'); Route::post('/', [ServiceController::class, 'store'])->name('store'); Route::post('/mass-update', [ServiceController::class, 'massUpdate'])->name('mass-update'); Route::post('/update-profit', [ServiceController::class, 'updateProfitMargin'])->name('update-profit'); Route::post('/sync-from-provider', [ServiceController::class, 'syncFromProvider'])->name('sync-from-provider'); Route::get('/{service}/edit', [ServiceController::class, 'edit'])->name('edit'); Route::put('/{service}', [ServiceController::class, 'update'])->name('update'); Route::delete('/{service}', [ServiceController::class, 'destroy'])->name('destroy'); }); // API Providers Management Route::prefix('providers')->name('providers.')->group(function () { Route::get('/', [ProviderController::class, 'index'])->name('index'); Route::get('/create', [ProviderController::class, 'create'])->name('create'); Route::post('/', [ProviderController::class, 'store'])->name('store'); Route::get('/{provider}/edit', [ProviderController::class, 'edit'])->name('edit'); Route::put('/{provider}', [ProviderController::class, 'update'])->name('update'); Route::delete('/{provider}', [ProviderController::class, 'destroy'])->name('destroy'); Route::post('/{provider}/check-balance', [ProviderController::class, 'checkBalance'])->name('check-balance'); Route::post('/{provider}/sync-services', [ProviderController::class, 'syncServices'])->name('sync-services'); Route::get('/{provider}/services', [ProviderController::class, 'services'])->name('services'); Route::get('/{provider}/logs', [ProviderController::class, 'logs'])->name('logs'); Route::post('/{provider}/toggle-status', [ProviderController::class, 'toggleStatus'])->name('toggle-status'); Route::put('/provider-service/{providerService}', [ProviderController::class, 'updateServiceMapping'])->name('update-service-mapping'); }); // Orders Management Route::prefix('orders')->name('orders.')->group(function () { Route::get('/', [OrderController::class, 'index'])->name('index'); Route::get('/{order}', [OrderController::class, 'show'])->name('show'); Route::put('/{order}', [OrderController::class, 'update'])->name('update'); Route::post('/{order}/status', [OrderController::class, 'updateStatus'])->name('status'); Route::post('/{order}/cancel', [OrderController::class, 'cancel'])->name('cancel'); Route::post('/{order}/refund', [OrderController::class, 'refund'])->name('refund'); Route::post('/{order}/refill', [OrderController::class, 'processRefill'])->name('refill'); Route::get('/{order}/logs', [OrderController::class, 'logs'])->name('logs'); }); // Payments Management Route::prefix('payments')->name('payments.')->group(function () { // Deposits Route::get('/deposits', [PaymentController::class, 'deposits'])->name('deposits'); Route::get('/deposits/{deposit}', [PaymentController::class, 'showDeposit'])->name('deposit.show'); Route::post('/deposits/{deposit}/approve', [PaymentController::class, 'approveDeposit'])->name('deposit.approve'); Route::post('/deposits/{deposit}/reject', [PaymentController::class, 'rejectDeposit'])->name('deposit.reject'); // Withdrawals Route::get('/withdrawals', [PaymentController::class, 'withdrawals'])->name('withdrawals'); Route::get('/withdrawals/{withdrawal}', [PaymentController::class, 'showWithdrawal'])->name('withdrawal.show'); Route::post('/withdrawals/{withdrawal}/approve', [PaymentController::class, 'approveWithdrawal'])->name('withdrawal.approve'); Route::post('/withdrawals/{withdrawal}/reject', [PaymentController::class, 'rejectWithdrawal'])->name('withdrawal.reject'); // Transactions Route::get('/transactions', [PaymentController::class, 'transactions'])->name('transactions'); }); // Reports Route::prefix('reports')->name('reports.')->group(function () { Route::get('/revenue', [ReportController::class, 'revenue'])->name('revenue'); Route::get('/orders', [ReportController::class, 'orders'])->name('orders'); Route::get('/services', [ReportController::class, 'services'])->name('services'); Route::get('/users', [ReportController::class, 'users'])->name('users'); Route::get('/export', [ReportController::class, 'export'])->name('export'); }); // Settings Route::prefix('settings')->name('settings.')->group(function () { Route::get('/general', [SettingsController::class, 'general'])->name('general'); Route::post('/general', [SettingsController::class, 'updateGeneral']); Route::get('/seo', [SettingsController::class, 'seo'])->name('seo'); Route::post('/seo', [SettingsController::class, 'updateSeo']); Route::get('/payment', [SettingsController::class, 'payment'])->name('payment'); Route::post('/payment', [SettingsController::class, 'updatePayment']); Route::get('/maintenance', [SettingsController::class, 'maintenance'])->name('maintenance'); Route::post('/maintenance', [SettingsController::class, 'updateMaintenance']); Route::get('/whatsapp', [SettingsController::class, 'whatsapp'])->name('whatsapp'); Route::post('/whatsapp', [SettingsController::class, 'updateWhatsapp']); Route::get('/livechat', [SettingsController::class, 'livechat'])->name('livechat'); Route::post('/livechat', [SettingsController::class, 'updateLivechat']); Route::get('/email', [SettingsController::class, 'email'])->name('email'); Route::post('/email', [SettingsController::class, 'updateEmail']); Route::post('/email/test', [SettingsController::class, 'testEmail'])->name('email.test'); }); // Roles & Permissions Route::prefix('roles')->name('roles.')->group(function () { Route::get('/', [RoleController::class, 'index'])->name('index'); Route::post('/', [RoleController::class, 'store'])->name('store'); Route::put('/{role}', [RoleController::class, 'update'])->name('update'); Route::delete('/{role}', [RoleController::class, 'destroy'])->name('destroy'); // Permissions Route::get('/permissions', [RoleController::class, 'permissions'])->name('permissions'); Route::post('/permissions', [RoleController::class, 'storePermission'])->name('permissions.store'); Route::put('/permissions/{permission}', [RoleController::class, 'updatePermission'])->name('permissions.update'); Route::delete('/permissions/{permission}', [RoleController::class, 'destroyPermission'])->name('permissions.destroy'); }); // Activity Logs Route::prefix('activity')->name('activity.')->group(function () { Route::get('/logs', [ActivityController::class, 'logs'])->name('logs'); Route::get('/login-logs', [ActivityController::class, 'loginLogs'])->name('login-logs'); Route::post('/clear', [ActivityController::class, 'clearLogs'])->name('clear'); }); // Broadcast Route::prefix('broadcast')->name('broadcast.')->group(function () { Route::get('/', [BroadcastController::class, 'index'])->name('index'); Route::post('/send', [BroadcastController::class, 'send'])->name('send'); Route::get('/history', [BroadcastController::class, 'history'])->name('history'); Route::post('/preview', [BroadcastController::class, 'preview'])->name('preview'); }); // Tickets Route::prefix('tickets')->name('tickets.')->group(function () { Route::get('/', [TicketController::class, 'index'])->name('index'); Route::get('/{ticket}', [TicketController::class, 'show'])->name('show'); Route::post('/{ticket}/reply', [TicketController::class, 'reply'])->name('reply'); Route::post('/{ticket}/assign', [TicketController::class, 'assign'])->name('assign'); Route::post('/{ticket}/status', [TicketController::class, 'updateStatus'])->name('status'); }); }); });