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