feat: full dashboard-ticketing scaffold with data model, controllers, Vue pages
This commit is contained in:
@@ -1,16 +1,37 @@
|
||||
<?php
|
||||
|
||||
use Dashboard\Ticketing\Http\Controllers\TicketAttachmentController;
|
||||
use Dashboard\Ticketing\Http\Controllers\TicketController;
|
||||
use Dashboard\Ticketing\Http\Controllers\TicketCommentController;
|
||||
use Dashboard\Ticketing\Http\Controllers\TicketMessageController;
|
||||
use Dashboard\Ticketing\Http\Controllers\TicketingSettingsController;
|
||||
use Illuminate\Support\Facades\Route;
|
||||
|
||||
Route::middleware(['web', 'auth', 'app.access:ticketing'])->prefix('app/ticketing')->name('ticketing.')->group(function () {
|
||||
// Submitter portal (must come before /{ticket} to avoid conflict)
|
||||
Route::get('/my-tickets', [TicketController::class, 'myTickets'])->name('my-tickets');
|
||||
|
||||
// Settings
|
||||
Route::get('/settings', [TicketingSettingsController::class, 'index'])->name('settings');
|
||||
Route::post('/settings/groups', [TicketingSettingsController::class, 'storeGroup'])->name('settings.groups.store');
|
||||
Route::put('/settings/groups/{group}', [TicketingSettingsController::class, 'updateGroup'])->name('settings.groups.update');
|
||||
Route::post('/settings/agents', [TicketingSettingsController::class, 'storeAgent'])->name('settings.agents.store');
|
||||
Route::delete('/settings/agents/{access}', [TicketingSettingsController::class, 'destroyAgent'])->name('settings.agents.destroy');
|
||||
Route::post('/settings/priorities', [TicketingSettingsController::class, 'storePriority'])->name('settings.priorities.store');
|
||||
|
||||
// Ticket routes
|
||||
Route::get('/', [TicketController::class, 'index'])->name('index');
|
||||
Route::get('/create', [TicketController::class, 'create'])->name('create');
|
||||
Route::post('/', [TicketController::class, 'store'])->name('store');
|
||||
|
||||
// Attachment show (before /{ticket} wildcard)
|
||||
Route::get('/attachments/{attachment}', [TicketAttachmentController::class, 'show'])->name('attachments.show');
|
||||
|
||||
Route::get('/{ticket}', [TicketController::class, 'show'])->name('show');
|
||||
Route::get('/{ticket}/edit', [TicketController::class, 'edit'])->name('edit');
|
||||
Route::put('/{ticket}', [TicketController::class, 'update'])->name('update');
|
||||
Route::delete('/{ticket}', [TicketController::class, 'destroy'])->name('destroy');
|
||||
Route::post('/{ticket}/comments', [TicketCommentController::class, 'store'])->name('comments.store');
|
||||
|
||||
// Messages & attachments
|
||||
Route::post('/{ticket}/messages', [TicketMessageController::class, 'store'])->name('messages.store');
|
||||
Route::post('/{ticket}/attachments', [TicketAttachmentController::class, 'store'])->name('attachments.store');
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user