3declare(strict_types=1);
194 private static $discriminatorClasses = [
195 'Company' => CompanyModel::class,
196 'Division' => DivisionModel::class,
214 ?
string $name =
null,
266 if (is_null($this->
id)) {
268 $data = $this->
raw(self::FIELD_ID);
269 if (is_null($data)) {
272 $this->
id = (string) $data;
286 if (is_null($this->version)) {
288 $data = $this->
raw(self::FIELD_VERSION);
289 if (is_null($data)) {
292 $this->version = (int) $data;
306 if (is_null($this->createdAt)) {
308 $data = $this->
raw(self::FIELD_CREATED_AT);
309 if (is_null($data)) {
312 $data = DateTimeImmutable::createFromFormat(MapperFactory::DATETIME_FORMAT, $data);
313 if (
false === $data) {
316 $this->createdAt = $data;
330 if (is_null($this->lastModifiedAt)) {
332 $data = $this->
raw(self::FIELD_LAST_MODIFIED_AT);
333 if (is_null($data)) {
336 $data = DateTimeImmutable::createFromFormat(MapperFactory::DATETIME_FORMAT, $data);
337 if (
false === $data) {
340 $this->lastModifiedAt = $data;
354 if (is_null($this->lastModifiedBy)) {
356 $data = $this->
raw(self::FIELD_LAST_MODIFIED_BY);
357 if (is_null($data)) {
361 $this->lastModifiedBy = LastModifiedByModel::of($data);
375 if (is_null($this->createdBy)) {
377 $data = $this->
raw(self::FIELD_CREATED_BY);
378 if (is_null($data)) {
382 $this->createdBy = CreatedByModel::of($data);
396 if (is_null($this->key)) {
398 $data = $this->
raw(self::FIELD_KEY);
399 if (is_null($data)) {
402 $this->key = (string) $data;
416 if (is_null($this->status)) {
418 $data = $this->
raw(self::FIELD_STATUS);
419 if (is_null($data)) {
422 $this->status = (string) $data;
438 if (is_null($this->stores)) {
440 $data = $this->
raw(self::FIELD_STORES);
441 if (is_null($data)) {
444 $this->stores = StoreKeyReferenceCollection::fromArray($data);
458 if (is_null($this->inheritedStores)) {
460 $data = $this->
raw(self::FIELD_INHERITED_STORES);
461 if (is_null($data)) {
464 $this->inheritedStores = StoreKeyReferenceCollection::fromArray($data);
478 if (is_null($this->storeMode)) {
480 $data = $this->
raw(self::FIELD_STORE_MODE);
481 if (is_null($data)) {
484 $this->storeMode = (string) $data;
498 if (is_null($this->unitType)) {
500 $data = $this->
raw(self::FIELD_UNIT_TYPE);
501 if (is_null($data)) {
504 $this->unitType = (string) $data;
518 if (is_null($this->name)) {
520 $data = $this->
raw(self::FIELD_NAME);
521 if (is_null($data)) {
524 $this->name = (string) $data;
538 if (is_null($this->contactEmail)) {
540 $data = $this->
raw(self::FIELD_CONTACT_EMAIL);
541 if (is_null($data)) {
544 $this->contactEmail = (string) $data;
558 if (is_null($this->custom)) {
560 $data = $this->
raw(self::FIELD_CUSTOM);
561 if (is_null($data)) {
565 $this->custom = CustomFieldsModel::of($data);
579 if (is_null($this->addresses)) {
581 $data = $this->
raw(self::FIELD_ADDRESSES);
582 if (is_null($data)) {
585 $this->addresses = AddressCollection::fromArray($data);
599 if (is_null($this->shippingAddressIds)) {
601 $data = $this->
raw(self::FIELD_SHIPPING_ADDRESS_IDS);
602 if (is_null($data)) {
605 $this->shippingAddressIds = $data;
619 if (is_null($this->defaultShippingAddressId)) {
621 $data = $this->
raw(self::FIELD_DEFAULT_SHIPPING_ADDRESS_ID);
622 if (is_null($data)) {
625 $this->defaultShippingAddressId = (string) $data;
639 if (is_null($this->billingAddressIds)) {
641 $data = $this->
raw(self::FIELD_BILLING_ADDRESS_IDS);
642 if (is_null($data)) {
645 $this->billingAddressIds = $data;
659 if (is_null($this->defaultBillingAddressId)) {
661 $data = $this->
raw(self::FIELD_DEFAULT_BILLING_ADDRESS_ID);
662 if (is_null($data)) {
665 $this->defaultBillingAddressId = (string) $data;
679 if (is_null($this->associateMode)) {
681 $data = $this->
raw(self::FIELD_ASSOCIATE_MODE);
682 if (is_null($data)) {
685 $this->associateMode = (string) $data;
699 if (is_null($this->associates)) {
701 $data = $this->
raw(self::FIELD_ASSOCIATES);
702 if (is_null($data)) {
719 if (is_null($this->inheritedAssociates)) {
721 $data = $this->
raw(self::FIELD_INHERITED_ASSOCIATES);
722 if (is_null($data)) {
739 if (is_null($this->parentUnit)) {
741 $data = $this->
raw(self::FIELD_PARENT_UNIT);
742 if (is_null($data)) {
760 if (is_null($this->topLevelUnit)) {
762 $data = $this->
raw(self::FIELD_TOP_LEVEL_UNIT);
763 if (is_null($data)) {
782 if (is_null($this->approvalRuleMode)) {
784 $data = $this->
raw(self::FIELD_APPROVAL_RULE_MODE);
785 if (is_null($data)) {
788 $this->approvalRuleMode = (string) $data;
996 #[\ReturnTypeWillChange]
1007 return (
object) $data;
1017 if (is_object($value) && isset($value->$fieldName)) {
1019 $discriminatorValue = $value->$fieldName;
1020 if (isset(self::$discriminatorClasses[$discriminatorValue])) {
1021 return self::$discriminatorClasses[$discriminatorValue];
1024 if (is_array($value) && isset($value[$fieldName])) {
1026 $discriminatorValue = $value[$fieldName];
1027 if (isset(self::$discriminatorClasses[$discriminatorValue])) {
1028 return self::$discriminatorClasses[$discriminatorValue];
1033 $type = BusinessUnitModel::class;