prefix('admin/')->group(function () { Route::view('/', 'admin.dashboard')->name('admin.dashboard'); Route::post('/auditions/roomUpdate', [ AuditionController::class, 'roomUpdate', ]); // Endpoint for JS assigning auditions to rooms Route::post('/scoring/assign_guide_to_audition', [ AuditionController::class, 'scoringGuideUpdate', ])->name('ajax.assignScoringGuideToAudition'); // Endpoint for JS assigning scoring guides to auditions Route::get('/settings', [AuditionSettings::class, 'index'])->name('audition-settings'); Route::post('/settings', [AuditionSettings::class, 'save'])->name('audition-settings-save'); // Admin Bonus Scores Routes Route::prefix('bonus-scores')->controller(BonusScoreDefinitionController::class)->group(function ( ) { Route::get('/', 'index')->name('admin.bonus-scores.index'); Route::post('/', 'store')->name('admin.bonus-scores.store'); Route::post('/assign_auditions', 'assignAuditions')->name('admin.bonus-scores.addAuditions'); Route::delete('/{audition}/unassign_audition', 'unassignAudition')->name('admin.bonus-scores.unassignAudition'); Route::delete('/{bonusScore}', 'destroy')->name('admin.bonus-scores.destroy'); Route::get('/judges', 'judges')->name('admin.bonus-scores.judges'); }); // Admin Ensemble Routes Route::prefix('ensembles')->controller(EnsembleController::class)->group(function () { Route::get('/', 'index')->name('admin.ensembles.index'); Route::post('/', 'store')->name('admin.ensembles.store'); Route::delete('/{ensemble}', 'destroy')->name('admin.ensembles.destroy'); Route::post('/updateEnsembleRank', 'updateEnsembleRank')->name('admin.ensembles.updateEnsembleRank'); Route::patch('/{ensemble}', 'updateEnsemble')->name('admin.ensembles.update'); Route::get('/seating-limits', 'seatingLimits')->name('admin.ensembles.seatingLimits'); Route::get('/seating-limits/{ensemble}', 'seatingLimits')->name('admin.ensembles.seatingLimits.ensemble'); Route::post('/seating-limits/{ensemble}', 'seatingLimitsSet')->name('admin.ensembles.seatingLimits.ensemble.set'); }); // Admin Event Routes Route::prefix('events')->controller(EventController::class)->group(function () { Route::get('/', 'index')->name('admin.events.index'); Route::post('/', 'store')->name('admin.events.store'); Route::delete('/{event}', 'destroy')->name('admin.events.destroy'); }); // Admin Rooms Routes Route::prefix('rooms')->controller(RoomController::class)->group(function () { Route::get('/', 'index')->name('admin.rooms.index'); Route::get('/create', 'create')->name('admin.rooms.create'); Route::post('/', 'store')->name('admin.rooms.store'); Route::post('/{room}/edit', 'edit')->name('admin.rooms.edit'); Route::patch('/{room}', 'update')->name('admin.rooms.update'); Route::delete('/{room}', 'destroy')->name('admin.rooms.destroy'); Route::get('/judging_assignments', 'judgingAssignment')->name('admin.rooms.judgingAssignment'); // Screen to assign judges to rooms Route::match(['post', 'delete'], '/{room}/judge', 'updateJudgeAssignment')->name('admin.rooms.updateJudgeAssignment'); }); // Admin Scoring Guides Route::prefix('scoring')->controller(ScoringGuideController::class)->group(function () { Route::get('/', 'index')->name('admin.scoring.index'); // Scoring Setup Homepage Route::post('/guides', 'store')->name('admin.scoring.store'); // Save a new scoring guide Route::get('/guides/{guide}/edit/{tab?}', 'edit')->name('admin.scoring.edit'); // Edit scoring guide Route::patch('/guides/{guide}/edit', 'update')->name('admin.scoring.update'); // Save changes to audition guide (rename) Route::post('/guides/{guide}/subscore', 'subscore_store')->name('admin.scoring.subscore_store'); // Save a new subscore Route::patch('/guides/{guide}/subscore/{subscore}', 'subscore_update')->name('admin.scoring.subscore_update'); // Modify a subscore Route::delete('/guides/{guide}/subscore/{subscore}', 'subscore_destroy')->name('admin.scoring.subscore_destroy'); // Delete a subscore Route::post('/reorder-display', 'reorder_display')->name('admin.scoring.reorder_display'); Route::post('/reorder-tiebreak', 'reorder_tiebreak')->name('admin.scoring.reorder_tiebreak'); Route::delete('/guides/{guide}', 'destroy')->name('admin.scoring.destroy'); // Delete a scoring guide }); // Admin Auditions Routes Route::prefix('auditions')->controller(AuditionController::class)->group(function () { Route::get('/', 'index')->name('admin.auditions.index'); Route::get('/create', 'create')->name('admin.auditions.create'); Route::post('/', 'store')->name('admin.auditions.store'); Route::get('/{audition}/edit', 'edit')->name('admin.auditions.edit'); Route::patch('/{audition}', 'update')->name('admin.auditions.update'); Route::post('/reorder', 'reorder')->name('admin.auditions.reorder'); Route::delete('/{audition}', 'destroy')->name('admin.auditions.destroy'); }); // Admin Audition Draw Routes Route::prefix('draw')->controller(DrawController::class)->group(function () { Route::get('/', 'index')->name('admin.draw.index'); Route::post('/', 'store')->name('admin.draw.store'); Route::get('/clear', 'edit')->name('admin.draw.edit'); // Select auditions for which the user would like to clear the draw Route::delete('/', 'destroy')->name('admin.draw.destroy'); // Clear the draw for the selected auditions }); // Admin Entries Routes Route::prefix('entries')->controller(EntryController::class)->group(function () { Route::get('/', 'index')->name('admin.entries.index'); Route::get('/create', 'create')->name('admin.entries.create'); Route::post('/', 'store')->name('admin.entries.store'); Route::get('/{entry}/edit', 'edit')->name('admin.entries.edit'); Route::patch('/{entry}', 'update')->name('admin.entries.update'); Route::delete('/{entry}', 'destroy')->name('admin.entries.destroy'); }); // Admin Student Routes Route::prefix('students')->controller(StudentController::class)->group(function () { Route::get('/', 'index')->name('admin.students.index'); Route::get('/create', 'create')->name('admin.students.create'); Route::post('/', 'store')->name('admin.students.store'); Route::get('/{student}/edit', 'edit')->name('admin.students.edit'); Route::patch('/{student}', 'update')->name('admin.students.update'); Route::delete('/{student}', 'destroy')->name('admin.students.destroy'); }); // Admin School Routes Route::prefix('schools')->controller(SchoolController::class)->group(function () { Route::post('/{school}/add_domain', 'add_domain')->name('admin.schools.add_domain'); Route::get('/', 'index')->name('admin.schools.index'); Route::get('/create', 'create')->name('admin.schools.create'); Route::get('/{school}', 'show')->name('admin.schools.show'); Route::get('/{school}/edit', 'edit')->name('admin.schools.edit'); Route::get('/{school}/invoice', 'viewInvoice')->name('admin.schools.invoice'); Route::patch('/{school}', 'update')->name('admin.schools.update'); Route::post('/', 'store')->name('admin.schools.store'); Route::delete('/domain/{domain}', 'destroy_domain')->name('admin.schools.destroy_domain'); Route::delete('/{school}', 'destroy')->name('admin.schools.destroy'); }); // Admin User Routes Route::prefix('users')->controller(UserController::class)->group(function () { Route::get('/', 'index')->name('admin.users.index'); Route::get('/create', 'create')->name('admin.users.create'); Route::post('/', 'store')->name('admin.users.store'); Route::get('/{user}/edit', 'edit')->name('admin.users.edit'); Route::patch('/{user}', 'update')->name('admin.users.update'); Route::delete('/{user}', 'destroy')->name('admin.users.destroy'); }); });