group(function () { // Score Management Route::prefix('scores/')->controller(ScoreController::class)->group(function () { Route::get('/choose_entry', 'chooseEntry')->name('scores.chooseEntry'); Route::get('/entry', 'entryScoreSheet')->name('scores.entryScoreSheet'); Route::post('/entry/{entry}', 'saveEntryScoreSheet')->name('scores.saveEntryScoreSheet'); Route::delete('/{score}', 'destroyScore')->name('scores.destroy'); }); // Bonus Score Management Route::prefix('bonus-scores/')->controller(BonusScoreController::class)->group(function () { Route::get('/choose_entry', 'chooseEntry')->name('bonus-scores.chooseEntry'); Route::get('/entry', 'entryBonusScoreSheet')->name('bonus-scores.entryBonusScoreSheet'); Route::post('/entry/{entry}', 'saveEntryBonusScoreSheet')->name('bonus-scores.saveEntryBonusScoreSheet'); Route::delete('/{bonusScore}', 'destroyBonusScore')->name('bonus-scores.destroy'); }); // Entry Flagging Route::prefix('entry-flags/')->controller(EntryFlagController::class)->group(function () { Route::get('/choose_no_show', 'noShowSelect')->name('entry-flags.noShowSelect'); Route::get('/propose-no-show', 'noShowConfirm')->name('entry-flags.confirmNoShow'); Route::post('/no-show/{entry}', 'enterNoShow')->name('entry-flags.enterNoShow'); Route::delete('/no-show/{entry}', 'undoNoShow')->name('entry-flags.undoNoShow'); Route::delete('/decline/{entry}', 'undoDecline')->name('entry-flags.undoDecline'); }); // Seating Routes Route::prefix('seating/')->group(function () { Route::get('/', SeatingStatusController::class)->name('seating.status'); Route::get('/{audition}', [SeatAuditionFormController::class, 'showForm'])->name('seating.audition'); Route::post('/{audition}/draftSeats', [SeatAuditionFormController::class, 'draftSeats'])->name('seating.audition.draftSeats'); Route::post('/{audition}/clearDraft', [SeatAuditionFormController::class, 'clearDraft'])->name('seating.audition.clearDraft'); Route::post('/{audition}/{entry}/decline', [SeatAuditionFormController::class, 'declineSeat'])->name('seating.audition.decline'); Route::post('/{audition}/mass_decline', [SeatAuditionFormController::class, 'massDecline'])->name('seating.audition.mass_decline'); Route::post('/{audition}/{entry}/accept', [SeatAuditionFormController::class, 'acceptSeat'])->name('seating.audition.accept'); Route::post('/{audition}/{entry}/noshow', [SeatAuditionFormController::class, 'noshow'])->name('seating.audition.noshow'); Route::post('/{audition}/publish', [SeatAuditionFormController::class, 'publishSeats'])->name('seating.audition.publishSeats'); Route::post('/{audition}/unpublish', [SeatAuditionFormController::class, 'unpublishSeats'])->name('seating.audition.unpublishSeats'); }); // Advancement Routes Route::prefix('advancement/')->controller(AdvancementController::class)->group(function () { Route::get('/status', 'status')->name('advancement.status'); Route::get('/{audition}', 'ranking')->name('advancement.ranking'); Route::post('/{audition}', 'setAuditionPassers')->name('advancement.setAuditionPassers'); Route::delete('/{audition}', 'clearAuditionPassers')->name('advancement.clearAuditionPassers'); }); // Doubler decision routes Route::prefix('doubler-decision')->controller(DoublerDecisionController::class)->group(function () { Route::post('{entry}/accept', 'accept')->name('doubler.accept'); Route::post('{entry}/decline', 'decline')->name('doubler.decline'); }); });