33 private static $discriminatorClasses = [
34 'addShippingRate' => ShippingMethodAddShippingRateActionModel::class,
35 'addStore' => ShippingMethodAddStoreActionModel::class,
36 'addZone' => ShippingMethodAddZoneActionModel::class,
37 'changeActive' => ShippingMethodChangeActiveActionModel::class,
38 'changeIsDefault' => ShippingMethodChangeIsDefaultActionModel::class,
39 'changeName' => ShippingMethodChangeNameActionModel::class,
40 'changeTaxCategory' => ShippingMethodChangeTaxCategoryActionModel::class,
41 'removeShippingRate' => ShippingMethodRemoveShippingRateActionModel::class,
42 'removeStore' => ShippingMethodRemoveStoreActionModel::class,
43 'removeZone' => ShippingMethodRemoveZoneActionModel::class,
44 'setCarrier' => ShippingMethodSetCarrierActionModel::class,
45 'setCustomField' => ShippingMethodSetCustomFieldActionModel::class,
46 'setCustomType' => ShippingMethodSetCustomTypeActionModel::class,
47 'setDescription' => ShippingMethodSetDescriptionActionModel::class,
48 'setKey' => ShippingMethodSetKeyActionModel::class,
49 'setLocalizedDescription' => ShippingMethodSetLocalizedDescriptionActionModel::class,
50 'setLocalizedName' => ShippingMethodSetLocalizedNameActionModel::class,
51 'setPredicate' => ShippingMethodSetPredicateActionModel::class,
52 'setStores' => ShippingMethodSetStoresActionModel::class,
70 if (is_null($this->action)) {
72 $data = $this->
raw(self::FIELD_ACTION);
76 $this->action = (string) $data;
93 if (is_object($value) && isset($value->$fieldName)) {
95 $discriminatorValue = $value->$fieldName;
96 if (isset(self::$discriminatorClasses[$discriminatorValue])) {
97 return self::$discriminatorClasses[$discriminatorValue];
100 if (is_array($value) && isset($value[$fieldName])) {
102 $discriminatorValue = $value[$fieldName];
103 if (isset(self::$discriminatorClasses[$discriminatorValue])) {
104 return self::$discriminatorClasses[$discriminatorValue];
109 $type = ShippingMethodUpdateActionModel::class;