3declare(strict_types=1);
347 if (is_null($this->
id)) {
349 $data = $this->
raw(self::FIELD_ID);
350 if (is_null($data)) {
353 $this->
id = (string) $data;
367 if (is_null($this->version)) {
369 $data = $this->
raw(self::FIELD_VERSION);
370 if (is_null($data)) {
373 $this->version = (int) $data;
387 if (is_null($this->createdAt)) {
389 $data = $this->
raw(self::FIELD_CREATED_AT);
390 if (is_null($data)) {
393 $data = DateTimeImmutable::createFromFormat(MapperFactory::DATETIME_FORMAT, $data);
394 if (
false === $data) {
397 $this->createdAt = $data;
411 if (is_null($this->lastModifiedAt)) {
413 $data = $this->
raw(self::FIELD_LAST_MODIFIED_AT);
414 if (is_null($data)) {
417 $data = DateTimeImmutable::createFromFormat(MapperFactory::DATETIME_FORMAT, $data);
418 if (
false === $data) {
421 $this->lastModifiedAt = $data;
435 if (is_null($this->key)) {
437 $data = $this->
raw(self::FIELD_KEY);
438 if (is_null($data)) {
441 $this->key = (string) $data;
455 if (is_null($this->lastModifiedBy)) {
457 $data = $this->
raw(self::FIELD_LAST_MODIFIED_BY);
458 if (is_null($data)) {
462 $this->lastModifiedBy = LastModifiedByModel::of($data);
476 if (is_null($this->createdBy)) {
478 $data = $this->
raw(self::FIELD_CREATED_BY);
479 if (is_null($data)) {
483 $this->createdBy = CreatedByModel::of($data);
497 if (is_null($this->quoteRequestState)) {
499 $data = $this->
raw(self::FIELD_QUOTE_REQUEST_STATE);
500 if (is_null($data)) {
503 $this->quoteRequestState = (string) $data;
517 if (is_null($this->comment)) {
519 $data = $this->
raw(self::FIELD_COMMENT);
520 if (is_null($data)) {
523 $this->comment = (string) $data;
537 if (is_null($this->customer)) {
539 $data = $this->
raw(self::FIELD_CUSTOMER);
540 if (is_null($data)) {
544 $this->customer = CustomerReferenceModel::of($data);
560 if (is_null($this->customerGroup)) {
562 $data = $this->
raw(self::FIELD_CUSTOMER_GROUP);
563 if (is_null($data)) {
567 $this->customerGroup = CustomerGroupReferenceModel::of($data);
581 if (is_null($this->store)) {
583 $data = $this->
raw(self::FIELD_STORE);
584 if (is_null($data)) {
588 $this->store = StoreKeyReferenceModel::of($data);
602 if (is_null($this->lineItems)) {
604 $data = $this->
raw(self::FIELD_LINE_ITEMS);
605 if (is_null($data)) {
608 $this->lineItems = LineItemCollection::fromArray($data);
622 if (is_null($this->customLineItems)) {
624 $data = $this->
raw(self::FIELD_CUSTOM_LINE_ITEMS);
625 if (is_null($data)) {
628 $this->customLineItems = CustomLineItemCollection::fromArray($data);
643 if (is_null($this->totalPrice)) {
645 $data = $this->
raw(self::FIELD_TOTAL_PRICE);
646 if (is_null($data)) {
649 $className = TypedMoneyModel::resolveDiscriminatorClass($data);
650 $this->totalPrice = $className::of($data);
666 if (is_null($this->taxedPrice)) {
668 $data = $this->
raw(self::FIELD_TAXED_PRICE);
669 if (is_null($data)) {
673 $this->taxedPrice = TaxedPriceModel::of($data);
688 if (is_null($this->shippingAddress)) {
690 $data = $this->
raw(self::FIELD_SHIPPING_ADDRESS);
691 if (is_null($data)) {
695 $this->shippingAddress = AddressModel::of($data);
709 if (is_null($this->billingAddress)) {
711 $data = $this->
raw(self::FIELD_BILLING_ADDRESS);
712 if (is_null($data)) {
716 $this->billingAddress = AddressModel::of($data);
730 if (is_null($this->inventoryMode)) {
732 $data = $this->
raw(self::FIELD_INVENTORY_MODE);
733 if (is_null($data)) {
736 $this->inventoryMode = (string) $data;
750 if (is_null($this->taxMode)) {
752 $data = $this->
raw(self::FIELD_TAX_MODE);
753 if (is_null($data)) {
756 $this->taxMode = (string) $data;
770 if (is_null($this->priceRoundingMode)) {
772 $data = $this->
raw(self::FIELD_PRICE_ROUNDING_MODE);
773 if (is_null($data)) {
776 $this->priceRoundingMode = (string) $data;
790 if (is_null($this->taxRoundingMode)) {
792 $data = $this->
raw(self::FIELD_TAX_ROUNDING_MODE);
793 if (is_null($data)) {
796 $this->taxRoundingMode = (string) $data;
810 if (is_null($this->taxCalculationMode)) {
812 $data = $this->
raw(self::FIELD_TAX_CALCULATION_MODE);
813 if (is_null($data)) {
816 $this->taxCalculationMode = (string) $data;
830 if (is_null($this->country)) {
832 $data = $this->
raw(self::FIELD_COUNTRY);
833 if (is_null($data)) {
836 $this->country = (string) $data;
850 if (is_null($this->shippingInfo)) {
852 $data = $this->
raw(self::FIELD_SHIPPING_INFO);
853 if (is_null($data)) {
857 $this->shippingInfo = ShippingInfoModel::of($data);
871 if (is_null($this->paymentInfo)) {
873 $data = $this->
raw(self::FIELD_PAYMENT_INFO);
874 if (is_null($data)) {
878 $this->paymentInfo = PaymentInfoModel::of($data);
892 if (is_null($this->shippingRateInput)) {
894 $data = $this->
raw(self::FIELD_SHIPPING_RATE_INPUT);
895 if (is_null($data)) {
898 $className = ShippingRateInputModel::resolveDiscriminatorClass($data);
899 $this->shippingRateInput = $className::of($data);
916 if (is_null($this->itemShippingAddresses)) {
918 $data = $this->
raw(self::FIELD_ITEM_SHIPPING_ADDRESSES);
919 if (is_null($data)) {
922 $this->itemShippingAddresses = AddressCollection::fromArray($data);
936 if (is_null($this->directDiscounts)) {
938 $data = $this->
raw(self::FIELD_DIRECT_DISCOUNTS);
939 if (is_null($data)) {
942 $this->directDiscounts = DirectDiscountCollection::fromArray($data);
956 if (is_null($this->custom)) {
958 $data = $this->
raw(self::FIELD_CUSTOM);
959 if (is_null($data)) {
963 $this->custom = CustomFieldsModel::of($data);
978 if (is_null($this->state)) {
980 $data = $this->
raw(self::FIELD_STATE);
981 if (is_null($data)) {
985 $this->state = StateReferenceModel::of($data);
1000 if (is_null($this->purchaseOrderNumber)) {
1002 $data = $this->
raw(self::FIELD_PURCHASE_ORDER_NUMBER);
1003 if (is_null($data)) {
1006 $this->purchaseOrderNumber = (string) $data;
1020 if (is_null($this->cart)) {
1022 $data = $this->
raw(self::FIELD_CART);
1023 if (is_null($data)) {
1027 $this->cart = CartReferenceModel::of($data);
1041 if (is_null($this->businessUnit)) {
1043 $data = $this->
raw(self::FIELD_BUSINESS_UNIT);
1044 if (is_null($data)) {
1048 $this->businessUnit = BusinessUnitKeyReferenceModel::of($data);
1316 $this->cart =
$cart;
1328 #[\ReturnTypeWillChange]
1339 return (
object) $data;