user()->tenant()->firstOrFail(); return SaleResource::collection( $this->saleService->sales($tenant, $request->validated(), $request->user()->event_id) )->additional([ 'confirmed_sales_total' => $this->saleService->confirmedSalesTotal($tenant, $request->user()->event_id), 'refunded_total' => $this->saleService->refundedTotal($tenant, $request->user()->event_id), ]); } public function show(Request $request, int $sale): SaleDetailResource { $tenant = $request->user()->tenant()->firstOrFail(); return new SaleDetailResource($this->saleService->detail($tenant, $sale, $request->user()->event_id)); } public function tickets(Request $request, int $sale): AnonymousResourceCollection { $tenant = $request->user()->tenant()->firstOrFail(); return SaleTicketResource::collection( $this->saleService->tickets($tenant, $sale, $request->user()->event_id) ); } public function confirm(Request $request, int $sale): SaleResource { $tenant = $request->user()->tenant()->firstOrFail(); return new SaleResource($this->saleService->confirm($tenant, $sale, $request->user()->event_id)); } public function cancel(Request $request, int $sale): SaleResource { $tenant = $request->user()->tenant()->firstOrFail(); return new SaleResource($this->saleService->cancel($tenant, $sale, $request->user()->event_id)); } public function modifications( AdminAppSaleModificationIndexRequest $request, ): AnonymousResourceCollection { return SaleModificationResource::collection( $this->saleService->modifications( $request->user()->tenant()->firstOrFail(), $request->validated(), $request->user()->event_id, ) ); } public function downloadPdf(AdminAppSalePdfRequest $request): Response { $tenant = $request->user()->tenant()->firstOrFail(); return $this->salePdfService->downloadSales( $tenant, $this->saleService->salesForExport($tenant, $request->validated(), $request->user()->event_id), $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(), $request->user()->event_id), $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(), $request->user()->event_id), $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(), $request->user()->event_id), $request->validated('timezone'), ); } }