1 | <?php |
||
11 | abstract class Entity |
||
12 | { |
||
13 | protected $id; |
||
14 | protected $metadata = []; |
||
15 | |||
16 | /** |
||
17 | * @var Client |
||
18 | */ |
||
19 | protected $client; |
||
20 | |||
21 | protected $endpoint; |
||
22 | protected static $properties = []; |
||
23 | |||
24 | /** |
||
25 | * Entity constructor. |
||
26 | * @param Client $client |
||
27 | */ |
||
28 | public function __construct(Client $client) |
||
32 | |||
33 | /** |
||
34 | * @return string |
||
35 | */ |
||
36 | public function getId() |
||
40 | |||
41 | /** |
||
42 | * @internal |
||
43 | */ |
||
44 | public function getMetadata() |
||
48 | |||
49 | /** |
||
50 | * @return array |
||
51 | */ |
||
52 | public function getNormalizedMetadata() |
||
61 | |||
62 | /** |
||
63 | * @param array $metadata |
||
64 | */ |
||
65 | public function setMetadata(array $metadata) |
||
127 | |||
128 | /** |
||
129 | * @return Entity |
||
130 | */ |
||
131 | public function update() |
||
141 | |||
142 | /** |
||
143 | * @throws \Exception |
||
144 | */ |
||
145 | public function delete() |
||
160 | |||
161 | /** |
||
162 | * @return array |
||
163 | */ |
||
164 | public function toArray() |
||
172 | |||
173 | /** |
||
174 | * @param object $json |
||
175 | * @param Client $client |
||
176 | * @return static |
||
177 | */ |
||
178 | public static function fromJson($json, Client $client) |
||
185 | |||
186 | /** |
||
187 | * @param int $timestamp Timestamp in milliseconds |
||
188 | * @return \DateTime |
||
189 | */ |
||
190 | protected function toDateTime($timestamp): \DateTime |
||
196 | |||
197 | /** |
||
198 | * @param int|\DateTime $time |
||
199 | * @return int |
||
200 | */ |
||
201 | protected function toTimestamp($time) |
||
209 | |||
210 | /** |
||
211 | * @param Entity $entity |
||
212 | * @param object $data |
||
213 | */ |
||
214 | protected static function setProperties(Entity $entity, $data) |
||
224 | } |
||
225 |