PluginProbe ʕ •ᴥ•ʔ
Booking for Appointments and Events Calendar – Amelia / 1.2.11
Booking for Appointments and Events Calendar – Amelia v1.2.11
2.4.4 2.4.3 2.4.2 2.4.1 2.4 trunk 1.2.1 1.2.10 1.2.11 1.2.12 1.2.13 1.2.14 1.2.15 1.2.16 1.2.17 1.2.18 1.2.19 1.2.2 1.2.20 1.2.21 1.2.22 1.2.23 1.2.24 1.2.25 1.2.26 1.2.27 1.2.28 1.2.29 1.2.3 1.2.30 1.2.31 1.2.32 1.2.33 1.2.34 1.2.35 1.2.36 1.2.37 1.2.38 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 2.0 2.0.1 2.0.2 2.1 2.1.1 2.1.2 2.1.3 2.2 2.2.1 2.3
ameliabooking / src / Domain / Factory / Location / LocationFactory.php
ameliabooking / src / Domain / Factory / Location Last commit date
LocationFactory.php 4 years ago ProviderLocationFactory.php 6 years ago
LocationFactory.php
79 lines
1 <?php
2
3 namespace AmeliaBooking\Domain\Factory\Location;
4
5 use AmeliaBooking\Domain\Common\Exceptions\InvalidArgumentException;
6 use AmeliaBooking\Domain\Entity\Location\Location;
7 use AmeliaBooking\Domain\ValueObjects\Json;
8 use AmeliaBooking\Domain\ValueObjects\String\Status;
9 use AmeliaBooking\Domain\ValueObjects\Picture;
10 use AmeliaBooking\Domain\ValueObjects\String\Address;
11 use AmeliaBooking\Domain\ValueObjects\String\Description;
12 use AmeliaBooking\Domain\ValueObjects\GeoTag;
13 use AmeliaBooking\Domain\ValueObjects\Number\Integer\Id;
14 use AmeliaBooking\Domain\ValueObjects\String\Name;
15 use AmeliaBooking\Domain\ValueObjects\String\Phone;
16 use AmeliaBooking\Domain\ValueObjects\String\Url;
17
18 /**
19 * Class LocationFactory
20 *
21 * @package AmeliaBooking\Domain\Factory\Location
22 */
23 class LocationFactory
24 {
25
26 /**
27 * @param $data
28 *
29 * @return Location
30 * @throws InvalidArgumentException
31 */
32 public static function create($data)
33 {
34 $location = new Location();
35
36 if (isset($data['id'])) {
37 $location->setId(new Id($data['id']));
38 }
39
40 if (isset($data['name'])) {
41 $location->setName(new Name($data['name']));
42 }
43
44 if (isset($data['address'])) {
45 $location->setAddress(new Address($data['address']));
46 }
47
48 if (isset($data['phone'])) {
49 $location->setPhone(new Phone($data['phone']));
50 }
51
52 if (isset($data['latitude'], $data['longitude'])) {
53 $location->setCoordinates(new GeoTag($data['latitude'], $data['longitude']));
54 }
55
56 if (isset($data['description'])) {
57 $location->setDescription(new Description($data['description']));
58 }
59
60 if (isset($data['status'])) {
61 $location->setStatus(new Status($data['status']));
62 }
63
64 if (!empty($data['pictureFullPath']) && !empty($data['pictureThumbPath'])) {
65 $location->setPicture(new Picture($data['pictureFullPath'], $data['pictureThumbPath']));
66 }
67
68 if (isset($data['pin'])) {
69 $location->setPin(new Url($data['pin']));
70 }
71
72 if (!empty($data['translations'])) {
73 $location->setTranslations(new Json($data['translations']));
74 }
75
76 return $location;
77 }
78 }
79