auditionadmin/routes/user.php

66 lines
3.1 KiB
PHP

<?php
// Dashboard Related Routes
use App\Http\Controllers\DashboardController;
use App\Http\Controllers\DoublerRequestController;
use App\Http\Controllers\EntryController;
use App\Http\Controllers\PdfInvoiceController;
use App\Http\Controllers\SchoolController;
use App\Http\Controllers\StudentController;
use App\Http\Controllers\UserController;
use Illuminate\Support\Facades\Route;
Route::middleware(['auth', 'verified'])->group(function () {
Route::get('/dashboard', [DashboardController::class, 'dashboard'])->name('dashboard');
Route::get('/profile', [DashboardController::class, 'profile'])->name('my_profile');
Route::get('/my_school', [DashboardController::class, 'my_school'])->name('my_school');
Route::get('/my_invoice', [DashboardController::class, 'my_invoice'])->name('my_invoice');
Route::get('/pdf-invoice/{school}', PdfInvoiceController::class)->name('pdf_invoice');
});
// Entry Related Routes
Route::middleware([
'auth', 'verified', 'can:create,App\Models\Entry',
])->controller(EntryController::class)->group(function () {
Route::get('/entries', 'index')->name('entries.index');
Route::get('/entries/create', 'create')->name('entries.create');
Route::post('/entries', 'store')->name('entries.store');
Route::delete('/entries/{entry}', 'destroy')->name('entries.destroy');
});
// User Related Routes
Route::middleware(['auth', 'verified'])->controller(UserController::class)->group(function () {
Route::patch('/users/{user}/set_school', 'set_school')->name('users.set_school');
Route::patch('/user_profile/{$user}', 'update')->name('users.update');
});
// Student Related Routes
Route::middleware([
'auth', 'verified', 'can:create,App\Models\Student',
])->controller(StudentController::class)->group(function () {
Route::get('/students', 'index')->name('students.index');
Route::post('students', 'store')->name('students.store');
Route::get('/students/{student}/edit', 'edit')->name('students.edit');
Route::patch('/students/{student}', 'update')->name('students.update');
Route::delete('/students/{student}', 'destroy')->name('students.destroy');
});
// School Related Routes
Route::middleware(['auth', 'verified'])->controller(SchoolController::class)->group(function () {
Route::get('/schools/create', 'create')->name('schools.create');
Route::post('/schools', 'store')->name('schools.store');
Route::get('/schools/{school}/edit', 'edit')->name('schools.edit');
Route::get('/schools/{school}', 'show')->name('schools.show');
Route::patch('/schools/{school}', 'update')->name('schools.update');
Route::post('schools/{school}/add_director', 'addDirector')->name('schools.add_director');
Route::get('/schools/{school}/set_head_director/{user}', 'setHeadDirector')->name('schools.set_head_director');
});
// Doubler Related Routes
Route::middleware([
'auth', 'verified', 'can:viewAny,App\Models\DoublerRequest',
])->controller(DoublerRequestController::class)->prefix('doubler_request')->group(function () {
Route::get('/', 'index')->name('doubler_request.index');
Route::post('/', 'makeRequest')->name('doubler_request.make_request');
});