first
This commit is contained in:
8
routes/console.php
Normal file
8
routes/console.php
Normal file
@@ -0,0 +1,8 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Foundation\Inspiring;
|
||||
use Illuminate\Support\Facades\Artisan;
|
||||
|
||||
Artisan::command('inspire', function () {
|
||||
$this->comment(Inspiring::quote());
|
||||
})->purpose('Display an inspiring quote');
|
||||
71
routes/web.php
Normal file
71
routes/web.php
Normal file
@@ -0,0 +1,71 @@
|
||||
<?php
|
||||
|
||||
use App\Http\Controllers\Admin\AuditController;
|
||||
use App\Http\Controllers\Admin\MemberController;
|
||||
use App\Http\Controllers\Admin\PrizeController;
|
||||
use App\Http\Controllers\Admin\SettingController;
|
||||
use App\Http\Controllers\AttendanceController;
|
||||
use App\Http\Controllers\Auth\LoginController;
|
||||
use App\Http\Controllers\CounterController;
|
||||
use App\Http\Controllers\DashboardController;
|
||||
use App\Http\Controllers\DrawController;
|
||||
use App\Http\Controllers\ReportController;
|
||||
use App\Models\User;
|
||||
use Illuminate\Support\Facades\Route;
|
||||
|
||||
// ---- Auth ----
|
||||
Route::middleware('guest')->group(function () {
|
||||
Route::get('login', [LoginController::class, 'show'])->name('login');
|
||||
Route::post('login', [LoginController::class, 'login']);
|
||||
});
|
||||
Route::post('logout', [LoginController::class, 'logout'])->middleware('auth')->name('logout');
|
||||
|
||||
Route::get('/', fn () => redirect()->route('dashboard'));
|
||||
|
||||
Route::middleware('auth')->group(function () {
|
||||
Route::get('dashboard', [DashboardController::class, 'index'])->name('dashboard');
|
||||
|
||||
// ---- Kaunter Kehadiran (admin + petugas kaunter) ----
|
||||
Route::middleware('role:' . User::ROLE_ADMIN . '|' . User::ROLE_KAUNTER)->group(function () {
|
||||
Route::get('kaunter', [CounterController::class, 'index'])->name('counter.index');
|
||||
Route::get('kaunter/cari', [CounterController::class, 'search'])->name('counter.search');
|
||||
Route::post('kaunter/hadir', [CounterController::class, 'store'])->name('counter.store');
|
||||
|
||||
Route::get('kehadiran', [AttendanceController::class, 'index'])->name('attendance.index');
|
||||
});
|
||||
|
||||
// ---- Modul Cabutan + Laporan (admin + petugas cabutan/urusetia) ----
|
||||
Route::middleware('role:' . User::ROLE_ADMIN . '|' . User::ROLE_CABUTAN)->group(function () {
|
||||
Route::get('cabutan', [DrawController::class, 'index'])->name('draw.index');
|
||||
Route::get('cabutan/pool', [DrawController::class, 'pool'])->name('draw.pool');
|
||||
Route::post('cabutan/spin', [DrawController::class, 'spin'])->name('draw.spin');
|
||||
Route::post('cabutan/confirm', [DrawController::class, 'confirm'])->name('draw.confirm');
|
||||
Route::post('cabutan/batal', [DrawController::class, 'cancel'])->name('draw.cancel');
|
||||
|
||||
Route::get('laporan', [ReportController::class, 'index'])->name('reports.index');
|
||||
Route::get('laporan/export/{type}', [ReportController::class, 'export'])->name('reports.export');
|
||||
});
|
||||
|
||||
// ---- Admin sahaja ----
|
||||
Route::middleware('role:' . User::ROLE_ADMIN)->prefix('admin')->name('admin.')->group(function () {
|
||||
Route::get('anggota', [MemberController::class, 'index'])->name('members.index');
|
||||
Route::get('anggota/import', [MemberController::class, 'showImport'])->name('members.import');
|
||||
Route::post('anggota/import', [MemberController::class, 'import'])->name('members.import.store');
|
||||
Route::get('anggota/{member}/edit', [MemberController::class, 'edit'])->name('members.edit');
|
||||
Route::put('anggota/{member}', [MemberController::class, 'update'])->name('members.update');
|
||||
Route::delete('anggota/{member}', [MemberController::class, 'destroy'])->name('members.destroy');
|
||||
|
||||
Route::get('hadiah', [PrizeController::class, 'index'])->name('prizes.index');
|
||||
Route::get('hadiah/import', [PrizeController::class, 'showImport'])->name('prizes.import');
|
||||
Route::post('hadiah/import', [PrizeController::class, 'import'])->name('prizes.import.store');
|
||||
Route::get('hadiah/{prize}/edit', [PrizeController::class, 'edit'])->name('prizes.edit');
|
||||
Route::put('hadiah/{prize}', [PrizeController::class, 'update'])->name('prizes.update');
|
||||
Route::delete('hadiah/{prize}', [PrizeController::class, 'destroy'])->name('prizes.destroy');
|
||||
|
||||
Route::get('tetapan', [SettingController::class, 'index'])->name('settings.index');
|
||||
Route::put('tetapan/sesi', [SettingController::class, 'updateSession'])->name('settings.session');
|
||||
Route::post('tetapan/reset', [SettingController::class, 'reset'])->name('settings.reset');
|
||||
|
||||
Route::get('audit', [AuditController::class, 'index'])->name('audit.index');
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user