PluginProbe ʕ •ᴥ•ʔ
Booking for Appointments and Events Calendar – Amelia / trunk
Booking for Appointments and Events Calendar – Amelia vtrunk
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 6 months ago ExtraFactory.php 2 years ago PackageCustomerFactory.php 2 weeks ago PackageCustomerServiceFactory.php 2 weeks ago PackageFactory.php 2 months ago PackageServiceFactory.php 6 months ago ResourceFactory.php 6 months ago ServiceFactory.php 6 months 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