3 declare(strict_types=1);
33 private static $discriminatorClasses = [
34 'absolute' => CartDiscountValueAbsoluteModel::class,
35 'fixed' => CartDiscountValueFixedModel::class,
36 'giftLineItem' => CartDiscountValueGiftLineItemModel::class,
37 'relative' => CartDiscountValueRelativeModel::class,
55 if (is_null($this->type)) {
57 $data = $this->
raw(self::FIELD_TYPE);
61 $this->type = (string) $data;
78 if (is_object($value) && isset($value->$fieldName)) {
80 $discriminatorValue = $value->$fieldName;
81 if (isset(self::$discriminatorClasses[$discriminatorValue])) {
82 return self::$discriminatorClasses[$discriminatorValue];
85 if (is_array($value) && isset($value[$fieldName])) {
87 $discriminatorValue = $value[$fieldName];
88 if (isset(self::$discriminatorClasses[$discriminatorValue])) {
89 return self::$discriminatorClasses[$discriminatorValue];
94 $type = CartDiscountValueModel::class;