33 private static $discriminatorClasses = [
34 'addAsset' => ProductAddAssetActionModel::class,
35 'addExternalImage' => ProductAddExternalImageActionModel::class,
36 'addPrice' => ProductAddPriceActionModel::class,
37 'addToCategory' => ProductAddToCategoryActionModel::class,
38 'addVariant' => ProductAddVariantActionModel::class,
39 'changeAssetName' => ProductChangeAssetNameActionModel::class,
40 'changeAssetOrder' => ProductChangeAssetOrderActionModel::class,
41 'changeMasterVariant' => ProductChangeMasterVariantActionModel::class,
42 'changeName' => ProductChangeNameActionModel::class,
43 'changePrice' => ProductChangePriceActionModel::class,
44 'changeSlug' => ProductChangeSlugActionModel::class,
45 'legacySetSku' => ProductLegacySetSkuActionModel::class,
46 'moveImageToPosition' => ProductMoveImageToPositionActionModel::class,
47 'publish' => ProductPublishActionModel::class,
48 'removeAsset' => ProductRemoveAssetActionModel::class,
49 'removeFromCategory' => ProductRemoveFromCategoryActionModel::class,
50 'removeImage' => ProductRemoveImageActionModel::class,
51 'removePrice' => ProductRemovePriceActionModel::class,
52 'removeVariant' => ProductRemoveVariantActionModel::class,
53 'revertStagedChanges' => ProductRevertStagedChangesActionModel::class,
54 'revertStagedVariantChanges' => ProductRevertStagedVariantChangesActionModel::class,
55 'setAssetCustomField' => ProductSetAssetCustomFieldActionModel::class,
56 'setAssetCustomType' => ProductSetAssetCustomTypeActionModel::class,
57 'setAssetDescription' => ProductSetAssetDescriptionActionModel::class,
58 'setAssetKey' => ProductSetAssetKeyActionModel::class,
59 'setAssetSources' => ProductSetAssetSourcesActionModel::class,
60 'setAssetTags' => ProductSetAssetTagsActionModel::class,
61 'setAttribute' => ProductSetAttributeActionModel::class,
62 'setAttributeInAllVariants' => ProductSetAttributeInAllVariantsActionModel::class,
63 'setCategoryOrderHint' => ProductSetCategoryOrderHintActionModel::class,
64 'setDescription' => ProductSetDescriptionActionModel::class,
65 'setDiscountedPrice' => ProductSetDiscountedPriceActionModel::class,
66 'setImageLabel' => ProductSetImageLabelActionModel::class,
67 'setKey' => ProductSetKeyActionModel::class,
68 'setMetaDescription' => ProductSetMetaDescriptionActionModel::class,
69 'setMetaKeywords' => ProductSetMetaKeywordsActionModel::class,
70 'setMetaTitle' => ProductSetMetaTitleActionModel::class,
71 'setPriceKey' => ProductSetPriceKeyActionModel::class,
72 'setPriceMode' => ProductSetPriceModeActionModel::class,
73 'setPrices' => ProductSetPricesActionModel::class,
74 'setProductAttribute' => ProductSetProductAttributeActionModel::class,
75 'setProductPriceCustomField' => ProductSetProductPriceCustomFieldActionModel::class,
76 'setProductPriceCustomType' => ProductSetProductPriceCustomTypeActionModel::class,
77 'setProductVariantKey' => ProductSetProductVariantKeyActionModel::class,
78 'setSearchKeywords' => ProductSetSearchKeywordsActionModel::class,
79 'setSku' => ProductSetSkuActionModel::class,
80 'setTaxCategory' => ProductSetTaxCategoryActionModel::class,
81 'transitionState' => ProductTransitionStateActionModel::class,
82 'unpublish' => ProductUnpublishActionModel::class,
100 if (is_null($this->action)) {
102 $data = $this->
raw(self::FIELD_ACTION);
103 if (is_null($data)) {
106 $this->action = (string) $data;
123 if (is_object($value) && isset($value->$fieldName)) {
125 $discriminatorValue = $value->$fieldName;
126 if (isset(self::$discriminatorClasses[$discriminatorValue])) {
127 return self::$discriminatorClasses[$discriminatorValue];
130 if (is_array($value) && isset($value[$fieldName])) {
132 $discriminatorValue = $value[$fieldName];
133 if (isset(self::$discriminatorClasses[$discriminatorValue])) {
134 return self::$discriminatorClasses[$discriminatorValue];
139 $type = ProductUpdateActionModel::class;