reservations($request->user(), $request->validated()), ); } public function downloadPdf( ExportEntryReservationsRequest $request, EntryReservationService $service, EntryReservationPdfService $pdf, ): Response { $user = $request->user(); return $pdf->download( $user->tenant()->firstOrFail(), $service->reservationsForExport($user, $request->validated()), $request->validated('timezone'), ); } public function downloadExcel( ExportEntryReservationsRequest $request, EntryReservationService $service, EntryReservationExcelService $excel, ): StreamedResponse { $user = $request->user(); return $excel->download( $user->tenant()->firstOrFail(), $service->reservationsForExport($user, $request->validated()), $request->validated('timezone'), ); } public function downloadTicketPdf( IndexEntryReservationsRequest $request, int $reservation, EntryReservationService $service, TicketPdfService $pdf, ): Response { $user = $request->user(); return $pdf->download( $user->tenant()->firstOrFail(), collect([$service->reservationTicket($user, $reservation)]), ); } public function store(StoreEntryReservationsRequest $request, EntryReservationService $service): AnonymousResourceCollection { return EntryReservationResource::collection($service->reserve( $request->user(), $request->validated('idempotency_key'), $request->validated('rows'), )); } public function destroy( IndexEntryReservationsRequest $request, int $reservation, EntryReservationService $service, ): Response { $service->cancel($request->user(), $reservation); return response()->noContent(); } }