PluginProbe ʕ •ᴥ•ʔ
Booking for Appointments and Events Calendar – Amelia / 1.2.20
Booking for Appointments and Events Calendar – Amelia v1.2.20
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 / Bookable / Service / ExtraFactory.php
ameliabooking / src / Domain / Factory / Bookable / Service Last commit date
CategoryFactory.php 2 years ago ExtraFactory.php 2 years ago PackageCustomerFactory.php 1 year ago PackageCustomerServiceFactory.php 1 year ago PackageFactory.php 2 years ago PackageServiceFactory.php 2 years ago ResourceFactory.php 2 years ago ServiceFactory.php 1 year ago
ExtraFactory.php
78 lines
1 <?php
2
3 namespace AmeliaBooking\Domain\Factory\Bookable\Service;
4
5 use AmeliaBooking\Domain\Common\Exceptions\InvalidArgumentException;
6 use AmeliaBooking\Domain\Entity\Bookable\Service\Extra;
7 use AmeliaBooking\Domain\ValueObjects\BooleanValueObject;
8 use AmeliaBooking\Domain\ValueObjects\Duration;
9 use AmeliaBooking\Domain\ValueObjects\Json;
10 use AmeliaBooking\Domain\ValueObjects\Number\Float\Price;
11 use AmeliaBooking\Domain\ValueObjects\Number\Integer\Id;
12 use AmeliaBooking\Domain\ValueObjects\Number\Integer\PositiveInteger;
13 use AmeliaBooking\Domain\ValueObjects\String\Description;
14 use AmeliaBooking\Domain\ValueObjects\String\Name;
15
16 /**
17 * Class ExtraFactory
18 *
19 * @package AmeliaBooking\Domain\Factory\Bookable\Service
20 */
21 class ExtraFactory
22 {
23 /**
24 * @param array $data
25 *
26 * @return Extra
27 * @throws InvalidArgumentException
28 */
29 public static function create($data)
30 {
31 $extra = new Extra();
32
33 if (isset($data['id'])) {
34 $extra->setId(new Id($data['id']));
35 }
36
37 if (!empty($data['name'])) {
38 $extra->setName(new Name($data['name']));
39 }
40
41 if (!empty($data['description'])) {
42 $extra->setDescription(new Description($data['description']));
43 }
44
45 if (!empty($data['price'])) {
46 $extra->setPrice(new Price($data['price']));
47 } else {
48 $extra->setPrice(new Price(0));
49 }
50
51 if (!empty($data['maxQuantity'])) {
52 $extra->setMaxQuantity(new PositiveInteger($data['maxQuantity']));
53 }
54
55 if (!empty($data['position'])) {
56 $extra->setPosition(new PositiveInteger($data['position']));
57 }
58
59 if (!empty($data['duration'])) {
60 $extra->setDuration(new Duration($data['duration']));
61 }
62
63 if (isset($data['serviceId'])) {
64 $extra->setServiceId(new Id($data['serviceId']));
65 }
66
67 if (isset($data['aggregatedPrice'])) {
68 $extra->setAggregatedPrice(new BooleanValueObject($data['aggregatedPrice']));
69 }
70
71 if (isset($data['translations'])) {
72 $extra->setTranslations(new Json($data['translations']));
73 }
74
75 return $extra;
76 }
77 }
78