33 private static $discriminatorClasses = [
34 'addAsset' => VariantAddAssetActionModel::class,
35 'addExternalImage' => VariantAddExternalImageActionModel::class,
36 'changeAssetName' => VariantChangeAssetNameActionModel::class,
37 'changeAssetOrder' => VariantChangeAssetOrderActionModel::class,
38 'moveImageToPosition' => VariantMoveImageToPositionActionModel::class,
39 'publish' => VariantPublishActionModel::class,
40 'removeAsset' => VariantRemoveAssetActionModel::class,
41 'removeImage' => VariantRemoveImageActionModel::class,
42 'removeStagedChanges' => VariantRemoveStagedChangesActionModel::class,
43 'setAssetCustomField' => VariantSetAssetCustomFieldActionModel::class,
44 'setAssetCustomType' => VariantSetAssetCustomTypeActionModel::class,
45 'setAssetDescription' => VariantSetAssetDescriptionActionModel::class,
46 'setAssetKey' => VariantSetAssetKeyActionModel::class,
47 'setAssetSources' => VariantSetAssetSourcesActionModel::class,
48 'setAssetTags' => VariantSetAssetTagsActionModel::class,
49 'setAssets' => VariantSetAssetsActionModel::class,
50 'setAttribute' => VariantSetAttributeActionModel::class,
51 'setAttributes' => VariantSetAttributesActionModel::class,
52 'setImageLabel' => VariantSetImageLabelActionModel::class,
53 'setImages' => VariantSetImagesActionModel::class,
54 'setKey' => VariantSetKeyActionModel::class,
55 'setSku' => VariantSetSkuActionModel::class,
56 'unpublish' => VariantUnpublishActionModel::class,
74 if (is_null($this->action)) {
76 $data = $this->
raw(self::FIELD_ACTION);
80 $this->action = (string) $data;
97 if (is_object($value) && isset($value->$fieldName)) {
99 $discriminatorValue = $value->$fieldName;
100 if (isset(self::$discriminatorClasses[$discriminatorValue])) {
101 return self::$discriminatorClasses[$discriminatorValue];
104 if (is_array($value) && isset($value[$fieldName])) {
106 $discriminatorValue = $value[$fieldName];
107 if (isset(self::$discriminatorClasses[$discriminatorValue])) {
108 return self::$discriminatorClasses[$discriminatorValue];
113 $type = VariantUpdateActionModel::class;