commercetools-sdk-php-v2
The commercetools platform, import-api and PHP sdks generated from our api reference.
Loading...
Searching...
No Matches
DateAttributeModel.php
1<?php
2
3declare(strict_types=1);
10
15use DateTimeImmutable;
16use stdClass;
17
21final class DateAttributeModel extends JsonObjectModel implements DateAttribute
22{
23 public const DISCRIMINATOR_VALUE = 'date';
28 protected $name;
29
34 protected $type;
35
40 protected $value;
41
42
46 public function __construct(
47 ?string $name = null,
48 ?DateTimeImmutable $value = null,
49 ?string $type = null
50 ) {
51 $this->name = $name;
52 $this->value = $value;
53 $this->type = $type ?? self::DISCRIMINATOR_VALUE;
54 }
55
64 public function getName()
65 {
66 if (is_null($this->name)) {
68 $data = $this->raw(self::FIELD_NAME);
69 if (is_null($data)) {
70 return null;
71 }
72 $this->name = (string) $data;
73 }
74
75 return $this->name;
76 }
77
86 public function getType()
87 {
88 if (is_null($this->type)) {
90 $data = $this->raw(self::FIELD_TYPE);
91 if (is_null($data)) {
92 return null;
93 }
94 $this->type = (string) $data;
95 }
96
97 return $this->type;
98 }
99
106 public function getValue()
107 {
108 if (is_null($this->value)) {
110 $data = $this->raw(self::FIELD_VALUE);
111 if (is_null($data)) {
112 return null;
113 }
114 $data = DateTimeImmutable::createFromFormat(MapperFactory::DATE_FORMAT, $data);
115 if (false === $data) {
116 return null;
117 }
118 $this->value = $data;
119 }
120
121 return $this->value;
122 }
123
124
128 public function setName(?string $name): void
129 {
130 $this->name = $name;
131 }
132
136 public function setValue(?DateTimeImmutable $value): void
137 {
138 $this->value = $value;
139 }
140
141
142 #[\ReturnTypeWillChange]
143 public function jsonSerialize()
144 {
145 $data = $this->toArray();
146 if (isset($data[DateAttribute::FIELD_VALUE]) && $data[DateAttribute::FIELD_VALUE] instanceof \DateTimeImmutable) {
147 $data[DateAttribute::FIELD_VALUE] = $data[DateAttribute::FIELD_VALUE]->format('Y-m-d');
148 }
149 return (object) $data;
150 }
151}
__construct(?string $name=null, ?DateTimeImmutable $value=null, ?string $type=null)