prefix('bo')->name('bo.')->group(function () { // * AUTHENTICABLE ROUTES. Route::namespace('\App\Http\Controllers\Bo') ->group(function () { Auth::routes( [ 'confirm' => false, 'login' => true, 'logout' => true, 'register' => false, 'reset' => false, 'verify' => false, ] ); }); Route::middleware('auth:backend')->group(function () { Route::get('/', [DashboardController::class, 'index'])->name('dashboard'); // * USERS. Route::resource('users', UserController::class)->except('show'); Route::post('/users/{user}/change-published', [ UserController::class, 'changePublished' ])->name('users.change-published'); Route::get('/users/{user}/duplicate', [ UserController::class, 'duplicate' ])->name('users.duplicate'); Route::middleware('can:isConceptor')->group(function () { // * ACTIVITY LOGS. Route::resource('activity_logs', ActivityLogsController::class)->only(['index', 'show']); }); // * BRANDS. Route::resource('brands', BrandController::class)->except(['delete']); Route::match(['get', 'post'], '/brand/manage/{brand?}', [BrandController::class, 'manage']) ->name('manage-brand'); Route::get('/brands/json/paginate', [BrandController::class, 'jsonPaginateModels']) ->name('brands.json-paginate'); // * SERVICES. Route::resource('services', ServiceController::class)->except(['delete']); Route::post('/services/{service}/token/generate', [ServiceController::class, 'generateServicePassword']) ->name('generate-token-service'); // * CUSTOMERS. Route::get('/customers', [CustomerController::class, 'index'])->name('customers.index'); Route::get('/customers/{customer}/{brand}', [CustomerController::class, 'show'])->name('customers.show'); Route::delete('/customers/{customer}/{brand}', [CustomerController::class, 'delete'])->name('customers.delete'); Route::get('/customers/export', [CustomerController::class, 'export'])->name('customers.export'); Route::post('/customers/export', [CustomerController::class, 'exportSubmit'])->name('customers.exportSubmit'); // * SINGLE OPTIN. Route::resource('single_optins', SingleOptinController::class); Route::post('/single_optins/{id}/delete', [SingleOptinController::class, 'delete']) ->name('single-optins-delete'); // * QUESTIONS. Route::get('/questions/export', [QuestionController::class, 'export'])->name('questions.export'); Route::post('/questions/export', [QuestionController::class, 'exportSubmit'])->name('questions.exportSubmit'); Route::resource('questions', QuestionController::class); Route::resource('questions.answers', AnswerController::class); // * STATISTICS. Route::match(['get', 'post'], '/stats/brand', [StatsController::class, 'viewStatsByBrand']) ->name('stats.viewByBrand'); Route::get('/stats/brand/csv', [StatsController::class, 'exportByBrandCsv']) ->name('stats.viewByBrandExportCsv'); Route::match(['get', 'post'], '/stats/question', [StatsController::class, 'viewByQuestion']) ->name('stats.viewByQuestion'); Route::get('/stats/question/csv', [StatsController::class, 'exportByQuestionCsv']) ->name('stats.viewByQuestionExportCSV'); // * CLAIMS. Route::resource('claims', ClaimController::class)->only(['index', 'edit', 'update']); Route::post('claims/{claim}/answer', [ClaimController::class, 'answer'])->name('claims.answer'); Route::post('claims/export', [ClaimController::class, 'export']) ->name('claims.export'); Route::get('claims/{claim}/attachment', [ClaimController::class, 'viewAttachment'])->name('claims.attachment'); // * CLAIM SUBJECTS. Route::get('/{brand}/claim_subjects/json/paginate', [ClaimController::class, 'jsonClaimPaginateModels']) ->name('claim_subjects.json-paginate'); // * CLAIM MESSAGES. Route::resource('claim_messages', ClaimMessageController::class)->only(['store', 'update']); // * CLAIM MAIL TEMPLATES. Route::resource('claim_mail_templates', ClaimMailTemplateController::class) ->withoutMiddleware('htmlsanitize') ->middleware('htmlsanitize:content'); Route::get('/{brand}/claim_mail_templates/json/paginate', [ClaimController::class, 'jsonClaimPaginateModels']) ->name('claim_mail_templates.json-paginate'); // * CLAIM SUBJECTS. Route::resource('claim_subjects', ClaimSubjectController::class); // * OTHERS. Route::post('theme/set', [Controller::class, 'setTheme'])->name('theme.set'); }); });