auditionadmin/routes/tabulation.php

58 lines
2.9 KiB
PHP

<?php
// Tabulation Routes
use App\Http\Controllers\Tabulation\DoublerDecisionController;
use App\Http\Middleware\CheckIfCanTab;
use Illuminate\Support\Facades\Route;
Route::middleware(['auth', 'verified', CheckIfCanTab::class])->group(function () {
// Score Management
Route::prefix('scores/')->controller(\App\Http\Controllers\Tabulation\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}',
[\App\Http\Controllers\Tabulation\ScoreController::class, 'destroyScore'])->name('scores.destroy');
});
// Entry Flagging
Route::prefix('entry-flags/')->controller(\App\Http\Controllers\Tabulation\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');
});
// Seating Routes
Route::prefix('seating/')->group(function () {
Route::get('/', App\Http\Controllers\Tabulation\SeatingStatusController::class)->name('seating.status');
});
// Generic Tabulation Routes (TO BE REPLACED)
Route::prefix('tabulation/')->controller(\App\Http\Controllers\Tabulation\TabulationController::class)->group(function (
) {
Route::get('/status', 'status')->name('tabulation.status');
Route::match(['get', 'post'], '/auditions/{audition}', 'auditionSeating')->name('tabulation.audition.seat');
Route::post('/auditions/{audition}/publish-seats', 'publishSeats')->name('tabulation.seat.publish');
Route::post('/auditions/{audition}/unpublish-seats', 'unpublishSeats')->name('tabulation.seat.unpublish');
});
// Advancement Routes
Route::prefix('advancement/')->controller(\App\Http\Controllers\Tabulation\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');
});
});