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
82 public function getType()
83 {
84 if (is_null($this->type)) {
86 $data = $this->raw(self::FIELD_TYPE);
87 if (is_null($data)) {
88 return null;
89 }
90 $this->type = (string) $data;
91 }
92
93 return $this->type;
94 }
95
100 public function getValue()
101 {
102 if (is_null($this->value)) {
104 $data = $this->raw(self::FIELD_VALUE);
105 if (is_null($data)) {
106 return null;
107 }
108 $data = DateTimeImmutable::createFromFormat(MapperFactory::DATE_FORMAT, $data);
109 if (false === $data) {
110 return null;
111 }
112 $this->value = $data;
113 }
114
115 return $this->value;
116 }
117
118
122 public function setName(?string $name): void
123 {
124 $this->name = $name;
125 }
126
130 public function setValue(?DateTimeImmutable $value): void
131 {
132 $this->value = $value;
133 }
134
135
136 #[\ReturnTypeWillChange]
137 public function jsonSerialize()
138 {
139 $data = $this->toArray();
140 if (isset($data[DateAttribute::FIELD_VALUE]) && $data[DateAttribute::FIELD_VALUE] instanceof \DateTimeImmutable) {
141 $data[DateAttribute::FIELD_VALUE] = $data[DateAttribute::FIELD_VALUE]->format('Y-m-d');
142 }
143 return (object) $data;
144 }
145}
__construct(?string $name=null, ?DateTimeImmutable $value=null, ?string $type=null)