feat: complete administration and reporting

This commit is contained in:
2026-08-04 17:40:52 +01:00
parent d829f34580
commit 7a4ac48aaf
42 changed files with 2595 additions and 76 deletions

View File

@@ -2,6 +2,7 @@
namespace App\Http\Controllers;
use App\Domain\Administration\Services\ReservationPolicy;
use App\Domain\Inventory\Models\SnipeAsset;
use App\Domain\Reservations\Models\Reservation;
use App\Domain\Reservations\Services\AvailabilityService;
@@ -46,7 +47,7 @@ class ReservationController extends Controller
]);
}
public function create(Request $request, AvailabilityService $availability): Response
public function create(Request $request, AvailabilityService $availability, ReservationPolicy $policy): Response
{
$period = $request->validate([
'starts_at' => ['nullable', 'date', 'required_with:ends_at', 'after:now'],
@@ -73,6 +74,12 @@ class ReservationController extends Controller
'selectedAssetId' => $assets->contains('id', $requestedAssetId) ? $requestedAssetId : 0,
'period' => $period,
'periodSelected' => $periodSelected,
'policy' => [
'minNoticeHours' => $policy->integer('reservation.min_notice_hours'),
'maxDurationHours' => $policy->integer('reservation.max_duration_hours'),
'turnaroundMinutes' => $policy->integer('reservation.turnaround_minutes'),
'maxAssets' => $policy->integer('reservation.max_assets'),
],
]);
}