gastrosaw/routes/web.php

190 lines
5.6 KiB
PHP

<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\AuthController;
use App\Http\Controllers\PasienController;
use App\Http\Controllers\MakananController;
use App\Http\Controllers\ProsesSawController;
use App\Http\Controllers\LaporanController;
use App\Http\Controllers\DashboardController;
use App\Http\Controllers\PanduanController;
use App\Http\Controllers\UserDashboardController;
use App\Http\Controllers\UserProsesSawController;
use App\Http\Controllers\UserLaporanController;
use App\Http\Controllers\UserPanduanController;
use App\Http\Controllers\Auth\ForgotPasswordController;
use App\Http\Controllers\Auth\ResetPasswordController;
use App\Models\Laporan;
/*
|--------------------------------------------------------------------------
| REDIRECT ROOT
|--------------------------------------------------------------------------
*/
Route::get('/', function () {
return redirect()->route('login');
});
/*
|--------------------------------------------------------------------------
| AUTHENTICATION
|--------------------------------------------------------------------------
*/
Route::middleware('guest')->group(function () {
Route::get('/login', [AuthController::class, 'showLogin'])
->name('login');
Route::post('/login', [AuthController::class, 'login']);
Route::get('/register', [AuthController::class, 'showRegister'])
->name('register');
Route::post('/register', [AuthController::class, 'register']);
Route::get('/forgot-password', [ForgotPasswordController::class, 'showForm'])
->name('password.request');
Route::post('/forgot-password', [ForgotPasswordController::class, 'sendLink'])
->name('password.email');
Route::get('/reset-password/{token}', [ResetPasswordController::class, 'showForm'])
->name('password.reset');
Route::post('/reset-password', [ResetPasswordController::class, 'reset'])
->name('password.update');
});
Route::post('/logout', [AuthController::class, 'logout'])
->name('logout')
->middleware('auth');
/*
|--------------------------------------------------------------------------
| PROTECTED ROUTES
|--------------------------------------------------------------------------
*/
Route::middleware('auth')->group(function () {
// =======================
// DASHBOARD
// =======================
Route::get('/dashboard', [DashboardController::class, 'index'])
->name('dashboard');
// =======================
// PASIEN
// =======================
Route::resource('pasien', PasienController::class);
// =======================
// MAKANAN
// =======================
Route::resource('makanan', MakananController::class);
// =======================
// PROSES SAW
// =======================
Route::prefix('proses_saw')->group(function () {
Route::get('/', [ProsesSawController::class, 'index'])
->name('proses_saw.index');
Route::post('/', [ProsesSawController::class, 'proses'])
->name('proses_saw.proses');
});
// =======================
// LAPORAN
// =======================
Route::prefix('laporan')->group(function () {
Route::get('/', [LaporanController::class, 'index'])
->name('laporan.index');
// 🔥 route model binding (lebih clean)
Route::get('/{laporan}', [LaporanController::class, 'detail'])
->name('laporan.detail');
Route::delete('/{id}', [LaporanController::class, 'destroy'])
->name('laporan.destroy');
Route::get('/{id}/cetak', [LaporanController::class, 'cetak'])
->name('laporan.cetak');
});
// =======================
// CETAK LAPORAN
// =======================
Route::get('/laporan/{id}/cetak', [LaporanController::class, 'cetak'])
->name('laporan.cetak');
// =======================
// PROFIL
// =======================
Route::get('/profile', [AuthController::class, 'profile'])
->name('profile.edit');
Route::put('/profile/update', [AuthController::class, 'updateProfile'])
->name('profile.update');
Route::put('/profile/password', [AuthController::class, 'updatePassword'])
->name('profile.password.update');
Route::get('/panduan', [PanduanController::class, 'index'])
->name('panduan.index');
// =======================
// User
// =======================
Route::prefix('user')->middleware('auth')->group(function () {
Route::get('/dashboard',
[UserDashboardController::class, 'index'])
->name('user.dashboard');
Route::get('/proses_saw',
[UserProsesSawController::class, 'index'])
->name('user.proses_saw.index');
Route::post('/proses_saw',
[UserProsesSawController::class, 'proses'])
->name('user.proses_saw.proses');
Route::get('/laporan',
[UserLaporanController::class, 'index'])
->name('user.laporan.index');
Route::get('/user/laporan/{id}', [UserLaporanController::class, 'show'])
->name('user.laporan.show');
Route::delete('/laporan/{id}',
[UserLaporanController::class, 'destroy'])
->name('user.laporan.destroy');
Route::get('/profile', [AuthController::class, 'profile'])
->name('user.profile.edit');
Route::put('/profile/update', [AuthController::class, 'updateProfile'])
->name('user.profile.update');
Route::put('/profile/password', [AuthController::class, 'updatePassword'])
->name('user.profile.password.update');
Route::get('/panduan', [UserPanduanController::class, 'index'])
->name('user.panduan.index');
});
});