3declare(strict_types=1);
201 private static $discriminatorClasses = [
202 'Company' => CompanyModel::class,
203 'Division' => DivisionModel::class,
221 ?
string $name =
null,
275 if (is_null($this->
id)) {
277 $data = $this->
raw(self::FIELD_ID);
278 if (is_null($data)) {
281 $this->
id = (string) $data;
295 if (is_null($this->version)) {
297 $data = $this->
raw(self::FIELD_VERSION);
298 if (is_null($data)) {
301 $this->version = (int) $data;
315 if (is_null($this->createdAt)) {
317 $data = $this->
raw(self::FIELD_CREATED_AT);
318 if (is_null($data)) {
321 $data = DateTimeImmutable::createFromFormat(MapperFactory::DATETIME_FORMAT, $data);
322 if (
false === $data) {
325 $this->createdAt = $data;
339 if (is_null($this->lastModifiedAt)) {
341 $data = $this->
raw(self::FIELD_LAST_MODIFIED_AT);
342 if (is_null($data)) {
345 $data = DateTimeImmutable::createFromFormat(MapperFactory::DATETIME_FORMAT, $data);
346 if (
false === $data) {
349 $this->lastModifiedAt = $data;
363 if (is_null($this->lastModifiedBy)) {
365 $data = $this->
raw(self::FIELD_LAST_MODIFIED_BY);
366 if (is_null($data)) {
370 $this->lastModifiedBy = LastModifiedByModel::of($data);
384 if (is_null($this->createdBy)) {
386 $data = $this->
raw(self::FIELD_CREATED_BY);
387 if (is_null($data)) {
391 $this->createdBy = CreatedByModel::of($data);
405 if (is_null($this->key)) {
407 $data = $this->
raw(self::FIELD_KEY);
408 if (is_null($data)) {
411 $this->key = (string) $data;
425 if (is_null($this->status)) {
427 $data = $this->
raw(self::FIELD_STATUS);
428 if (is_null($data)) {
431 $this->status = (string) $data;
447 if (is_null($this->stores)) {
449 $data = $this->
raw(self::FIELD_STORES);
450 if (is_null($data)) {
453 $this->stores = StoreKeyReferenceCollection::fromArray($data);
467 if (is_null($this->inheritedStores)) {
469 $data = $this->
raw(self::FIELD_INHERITED_STORES);
470 if (is_null($data)) {
473 $this->inheritedStores = StoreKeyReferenceCollection::fromArray($data);
487 if (is_null($this->storeMode)) {
489 $data = $this->
raw(self::FIELD_STORE_MODE);
490 if (is_null($data)) {
493 $this->storeMode = (string) $data;
507 if (is_null($this->unitType)) {
509 $data = $this->
raw(self::FIELD_UNIT_TYPE);
510 if (is_null($data)) {
513 $this->unitType = (string) $data;
527 if (is_null($this->name)) {
529 $data = $this->
raw(self::FIELD_NAME);
530 if (is_null($data)) {
533 $this->name = (string) $data;
547 if (is_null($this->contactEmail)) {
549 $data = $this->
raw(self::FIELD_CONTACT_EMAIL);
550 if (is_null($data)) {
553 $this->contactEmail = (string) $data;
567 if (is_null($this->custom)) {
569 $data = $this->
raw(self::FIELD_CUSTOM);
570 if (is_null($data)) {
574 $this->custom = CustomFieldsModel::of($data);
589 if (is_null($this->customerGroupAssignments)) {
591 $data = $this->
raw(self::FIELD_CUSTOMER_GROUP_ASSIGNMENTS);
592 if (is_null($data)) {
595 $this->customerGroupAssignments = CustomerGroupAssignmentCollection::fromArray($data);
609 if (is_null($this->addresses)) {
611 $data = $this->
raw(self::FIELD_ADDRESSES);
612 if (is_null($data)) {
615 $this->addresses = AddressCollection::fromArray($data);
629 if (is_null($this->shippingAddressIds)) {
631 $data = $this->
raw(self::FIELD_SHIPPING_ADDRESS_IDS);
632 if (is_null($data)) {
635 $this->shippingAddressIds = $data;
649 if (is_null($this->defaultShippingAddressId)) {
651 $data = $this->
raw(self::FIELD_DEFAULT_SHIPPING_ADDRESS_ID);
652 if (is_null($data)) {
655 $this->defaultShippingAddressId = (string) $data;
669 if (is_null($this->billingAddressIds)) {
671 $data = $this->
raw(self::FIELD_BILLING_ADDRESS_IDS);
672 if (is_null($data)) {
675 $this->billingAddressIds = $data;
689 if (is_null($this->defaultBillingAddressId)) {
691 $data = $this->
raw(self::FIELD_DEFAULT_BILLING_ADDRESS_ID);
692 if (is_null($data)) {
695 $this->defaultBillingAddressId = (string) $data;
709 if (is_null($this->associateMode)) {
711 $data = $this->
raw(self::FIELD_ASSOCIATE_MODE);
712 if (is_null($data)) {
715 $this->associateMode = (string) $data;
729 if (is_null($this->associates)) {
731 $data = $this->
raw(self::FIELD_ASSOCIATES);
732 if (is_null($data)) {
749 if (is_null($this->inheritedAssociates)) {
751 $data = $this->
raw(self::FIELD_INHERITED_ASSOCIATES);
752 if (is_null($data)) {
769 if (is_null($this->parentUnit)) {
771 $data = $this->
raw(self::FIELD_PARENT_UNIT);
772 if (is_null($data)) {
790 if (is_null($this->topLevelUnit)) {
792 $data = $this->
raw(self::FIELD_TOP_LEVEL_UNIT);
793 if (is_null($data)) {
812 if (is_null($this->approvalRuleMode)) {
814 $data = $this->
raw(self::FIELD_APPROVAL_RULE_MODE);
815 if (is_null($data)) {
818 $this->approvalRuleMode = (string) $data;
1034 #[\ReturnTypeWillChange]
1045 return (
object) $data;
1055 if (is_object($value) && isset($value->$fieldName)) {
1057 $discriminatorValue = $value->$fieldName;
1058 if (isset(self::$discriminatorClasses[$discriminatorValue])) {
1059 return self::$discriminatorClasses[$discriminatorValue];
1062 if (is_array($value) && isset($value[$fieldName])) {
1064 $discriminatorValue = $value[$fieldName];
1065 if (isset(self::$discriminatorClasses[$discriminatorValue])) {
1066 return self::$discriminatorClasses[$discriminatorValue];
1071 $type = BusinessUnitModel::class;