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(AdminAppSaleIndexRequest $request): Response { $tenant = $request->user()->tenant()->firstOrFail(); return $this->salePdfService->downloadSales( $tenant, $this->saleService->salesForExport($tenant, $request->validated()), ); } public function downloadModificationsPdf(Request $request): Response { $tenant = $request->user()->tenant()->firstOrFail(); return $this->salePdfService->downloadModifications( $tenant, $this->saleService->modificationsForExport($tenant), ); } }