3declare(strict_types=1);
239 if (is_null($this->
id)) {
241 $data = $this->
raw(self::FIELD_ID);
242 if (is_null($data)) {
245 $this->
id = (string) $data;
259 if (is_null($this->version)) {
261 $data = $this->
raw(self::FIELD_VERSION);
262 if (is_null($data)) {
265 $this->version = (int) $data;
279 if (is_null($this->createdAt)) {
281 $data = $this->
raw(self::FIELD_CREATED_AT);
282 if (is_null($data)) {
285 $data = DateTimeImmutable::createFromFormat(MapperFactory::DATETIME_FORMAT, $data);
286 if (
false === $data) {
289 $this->createdAt = $data;
303 if (is_null($this->lastModifiedAt)) {
305 $data = $this->
raw(self::FIELD_LAST_MODIFIED_AT);
306 if (is_null($data)) {
309 $data = DateTimeImmutable::createFromFormat(MapperFactory::DATETIME_FORMAT, $data);
310 if (
false === $data) {
313 $this->lastModifiedAt = $data;
327 if (is_null($this->lastModifiedBy)) {
329 $data = $this->
raw(self::FIELD_LAST_MODIFIED_BY);
330 if (is_null($data)) {
334 $this->lastModifiedBy = LastModifiedByModel::of($data);
348 if (is_null($this->createdBy)) {
350 $data = $this->
raw(self::FIELD_CREATED_BY);
351 if (is_null($data)) {
355 $this->createdBy = CreatedByModel::of($data);
369 if (is_null($this->name)) {
371 $data = $this->
raw(self::FIELD_NAME);
372 if (is_null($data)) {
376 $this->name = LocalizedStringModel::of($data);
390 if (is_null($this->key)) {
392 $data = $this->
raw(self::FIELD_KEY);
393 if (is_null($data)) {
396 $this->key = (string) $data;
410 if (is_null($this->description)) {
412 $data = $this->
raw(self::FIELD_DESCRIPTION);
413 if (is_null($data)) {
417 $this->description = LocalizedStringModel::of($data);
431 if (is_null($this->value)) {
433 $data = $this->
raw(self::FIELD_VALUE);
434 if (is_null($data)) {
438 $this->value = $className::of($data);
452 if (is_null($this->cartPredicate)) {
454 $data = $this->
raw(self::FIELD_CART_PREDICATE);
455 if (is_null($data)) {
458 $this->cartPredicate = (string) $data;
473 if (is_null($this->target)) {
475 $data = $this->
raw(self::FIELD_TARGET);
476 if (is_null($data)) {
480 $this->target = $className::of($data);
496 if (is_null($this->sortOrder)) {
498 $data = $this->
raw(self::FIELD_SORT_ORDER);
499 if (is_null($data)) {
502 $this->sortOrder = (string) $data;
519 if (is_null($this->stores)) {
521 $data = $this->
raw(self::FIELD_STORES);
522 if (is_null($data)) {
525 $this->stores = StoreKeyReferenceCollection::fromArray($data);
539 if (is_null($this->isActive)) {
541 $data = $this->
raw(self::FIELD_IS_ACTIVE);
542 if (is_null($data)) {
545 $this->isActive = (bool) $data;
559 if (is_null($this->validFrom)) {
561 $data = $this->
raw(self::FIELD_VALID_FROM);
562 if (is_null($data)) {
565 $data = DateTimeImmutable::createFromFormat(MapperFactory::DATETIME_FORMAT, $data);
566 if (
false === $data) {
569 $this->validFrom = $data;
583 if (is_null($this->validUntil)) {
585 $data = $this->
raw(self::FIELD_VALID_UNTIL);
586 if (is_null($data)) {
589 $data = DateTimeImmutable::createFromFormat(MapperFactory::DATETIME_FORMAT, $data);
590 if (
false === $data) {
593 $this->validUntil = $data;
607 if (is_null($this->requiresDiscountCode)) {
609 $data = $this->
raw(self::FIELD_REQUIRES_DISCOUNT_CODE);
610 if (is_null($data)) {
613 $this->requiresDiscountCode = (bool) $data;
628 if (is_null($this->references)) {
630 $data = $this->
raw(self::FIELD_REFERENCES);
631 if (is_null($data)) {
634 $this->references = ReferenceCollection::fromArray($data);
648 if (is_null($this->stackingMode)) {
650 $data = $this->
raw(self::FIELD_STACKING_MODE);
651 if (is_null($data)) {
654 $this->stackingMode = (string) $data;
668 if (is_null($this->custom)) {
670 $data = $this->
raw(self::FIELD_CUSTOM);
671 if (is_null($data)) {
675 $this->custom = CustomFieldsModel::of($data);
689 if (is_null($this->discountGroup)) {
691 $data = $this->
raw(self::FIELD_DISCOUNT_GROUP);
692 if (is_null($data)) {
711 if (is_null($this->recurringOrderScope)) {
713 $data = $this->
raw(self::FIELD_RECURRING_ORDER_SCOPE);
714 if (is_null($data)) {
718 $this->recurringOrderScope = $className::of($data);
910 #[\ReturnTypeWillChange]
929 return (
object) $data;