orderBy('created_at', 'desc') ->paginate(config('app.pagination')); return ApiResponse::OK->response([ 'sales' => $sales, ]); } public function show( Sale $sale) { return ApiResponse::OK->response([ 'model' => $sale->load(['details.inventory', 'user']) ]); } public function store(SaleStoreRequest $request) { $sale = $this->saleService->createSale($request->validated()); return ApiResponse::CREATED->response([ 'model' => $sale, ]); } public function cancel(Sale $sale) { try { $cancelledSale = $this->saleService->cancelSale($sale); return ApiResponse::OK->response([ 'model' => $cancelledSale, 'message' => 'Venta cancelada exitosamente. Stock restaurado.' ]); } catch (\Exception $e) { return ApiResponse::BAD_REQUEST->response([ 'message' => $e->getMessage() ]); } } }