3 declare(strict_types=1);
39 private static $discriminatorClasses = [
40 'cart' => CartKeyReferenceModel::class,
41 'cart-discount' => CartDiscountKeyReferenceModel::class,
42 'category' => CategoryKeyReferenceModel::class,
43 'channel' => ChannelKeyReferenceModel::class,
44 'customer' => CustomerKeyReferenceModel::class,
45 'customer-group' => CustomerGroupKeyReferenceModel::class,
46 'discount-code' => DiscountCodeKeyReferenceModel::class,
47 'key-value-document' => CustomObjectKeyReferenceModel::class,
48 'order' => OrderKeyReferenceModel::class,
49 'payment' => PaymentKeyReferenceModel::class,
50 'price' => PriceKeyReferenceModel::class,
51 'product' => ProductKeyReferenceModel::class,
52 'product-discount' => ProductDiscountKeyReferenceModel::class,
53 'product-type' => ProductTypeKeyReferenceModel::class,
54 'product-variant' => ProductVariantKeyReferenceModel::class,
55 'shipping-method' => ShippingMethodKeyReferenceModel::class,
56 'state' => StateKeyReferenceModel::class,
57 'store' => StoreKeyReferenceModel::class,
58 'tax-category' => TaxCategoryKeyReferenceModel::class,
59 'type' => TypeKeyReferenceModel::class,
79 if (is_null($this->key)) {
81 $data = $this->
raw(self::FIELD_KEY);
85 $this->key = (string) $data;
99 if (is_null($this->typeId)) {
101 $data = $this->
raw(self::FIELD_TYPE_ID);
102 if (is_null($data)) {
105 $this->typeId = (string) $data;
129 if (is_object($value) && isset($value->$fieldName)) {
131 $discriminatorValue = $value->$fieldName;
132 if (isset(self::$discriminatorClasses[$discriminatorValue])) {
133 return self::$discriminatorClasses[$discriminatorValue];
136 if (is_array($value) && isset($value[$fieldName])) {
138 $discriminatorValue = $value[$fieldName];
139 if (isset(self::$discriminatorClasses[$discriminatorValue])) {
140 return self::$discriminatorClasses[$discriminatorValue];
145 $type = KeyReferenceModel::class;