updateProductService = $updateProductService ?: syncBasalamContainer()->get(UpdateSingleProductService::class); $this->discountProcessor = $discountProcessor ?: syncBasalamContainer()->get(DiscountTaskProcessor::class); } protected function run(int $productId, array $args = []): array { $categoryIds = $args['category_ids'] ?? null; $productData = ProductDataFacade::get($productId, $categoryIds); $updateResult = $this->updateProductService->updateProductInBasalam($productData, $productId); if ($updateResult['success']) $this->discountProcessor->handleProductDiscount($productId); return $updateResult; } public function validate(int $productId): bool { if (!parent::validate($productId)) return false; $validation = $this->validator->validateBasalamConnection($productId); if (!$validation['valid']) { $this->validator->logValidationResult($productId, $validation, $this->getOperationNameFromClass()); return false; } return true; } }