eventId($request->user()); } public function index(AdminAppSaleIndexRequest $request): AnonymousResourceCollection { $tenant = $request->user()->tenant()->firstOrFail(); return SaleResource::collection( $this->saleService->sales($tenant, $request->validated(), $this->eventId($request)) )->additional([ 'confirmed_sales_total' => $this->saleService->confirmedSalesTotal($tenant, $this->eventId($request)), 'refunded_total' => $this->saleService->refundedTotal($tenant, $this->eventId($request)), ]); } public function show(Request $request, int $sale): SaleDetailResource { $tenant = $request->user()->tenant()->firstOrFail(); return new SaleDetailResource($this->saleService->detail($tenant, $sale, $this->eventId($request))); } public function tickets(Request $request, int $sale): AnonymousResourceCollection { $tenant = $request->user()->tenant()->firstOrFail(); return SaleTicketResource::collection( $this->saleService->tickets($tenant, $sale, $this->eventId($request)) ); } public function confirm(Request $request, int $sale): SaleResource { $tenant = $request->user()->tenant()->firstOrFail(); return new SaleResource($this->saleService->confirm($tenant, $sale, $this->eventId($request))); } public function cancel(Request $request, int $sale): SaleResource { $tenant = $request->user()->tenant()->firstOrFail(); return new SaleResource($this->saleService->cancel($tenant, $sale, $this->eventId($request))); } public function modifications( AdminAppSaleModificationIndexRequest $request, ): AnonymousResourceCollection { return SaleModificationResource::collection( $this->saleService->modifications( $request->user()->tenant()->firstOrFail(), $request->validated(), $this->eventId($request), ) ); } public function downloadPdf(AdminAppSalePdfRequest $request): Response { $tenant = $request->user()->tenant()->firstOrFail(); return $this->salePdfService->downloadSales( $tenant, $this->saleService->salesForExport($tenant, $request->validated(), $this->eventId($request)), $request->validated('timezone'), ); } public function downloadModificationsPdf(AdminAppSaleModificationPdfRequest $request): Response { $tenant = $request->user()->tenant()->firstOrFail(); return $this->salePdfService->downloadModifications( $tenant, $this->saleService->modificationsForExport($tenant, $request->validated(), $this->eventId($request)), $request->validated('timezone'), ); } public function downloadExcel(AdminAppSalePdfRequest $request): StreamedResponse { $tenant = $request->user()->tenant()->firstOrFail(); return $this->saleExcelService->downloadSales( $tenant, $this->saleService->salesForExport($tenant, $request->validated(), $this->eventId($request)), $request->validated('timezone'), ); } public function downloadModificationsExcel( AdminAppSaleModificationPdfRequest $request, ): StreamedResponse { $tenant = $request->user()->tenant()->firstOrFail(); return $this->saleExcelService->downloadModifications( $tenant, $this->saleService->modificationsForExport($tenant, $request->validated(), $this->eventId($request)), $request->validated('timezone'), ); } }