PluginProbe
Booking for Appointments and Events Calendar – Amelia / 1.2.24
Booking for Appointments and Events Calendar – Amelia v1.2.24
2.4.9 2.4.8 2.4.7 2.4.6 2.4.5 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 All 59 releases
ameliabooking / src / Domain / Factory / Booking / Event / EventTicketFactory.php
EventTicketFactory.php
80 lines 2.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * @copyright © TMS-Plugins. All rights reserved.
4 * @licence See LICENCE.md for license details.
5 */
6
7 namespace AmeliaBooking\Domain\Factory\Booking\Event;
8
9 use AmeliaBooking\Domain\Common\Exceptions\InvalidArgumentException;
10 use AmeliaBooking\Domain\Entity\Booking\Event\EventTicket;
11 use AmeliaBooking\Domain\ValueObjects\BooleanValueObject;
12 use AmeliaBooking\Domain\ValueObjects\Number\Integer\Id;
13 use AmeliaBooking\Domain\ValueObjects\Number\Integer\IntegerValue;
14 use AmeliaBooking\Domain\ValueObjects\String\Name;
15 use AmeliaBooking\Domain\ValueObjects\Number\Float\Price;
16 use AmeliaBooking\Domain\ValueObjects\Json;
17
18 /**
19 * Class EventTicketFactory
20 *
21 * @package AmeliaBooking\Domain\Factory\Booking\Event
22 */
23 class EventTicketFactory
24 {
25
26 /**
27 * @param $data
28 *
29 * @return EventTicket
30 * @throws InvalidArgumentException
31 */
32
33 public static function create($data)
34 {
35 $eventTicket = new EventTicket();
36
37 if (isset($data['id'])) {
38 $eventTicket->setId(new Id($data['id']));
39 }
40
41 if (isset($data['eventId'])) {
42 $eventTicket->setEventId(new Id($data['eventId']));
43 }
44
45 if (isset($data['name'])) {
46 $eventTicket->setName(new Name($data['name']));
47 }
48
49 if (isset($data['enabled'])) {
50 $eventTicket->setEnabled(new BooleanValueObject($data['enabled']));
51 }
52
53 if (isset($data['price'])) {
54 $eventTicket->setPrice(new Price($data['price']));
55 }
56
57 if (isset($data['spots'])) {
58 $eventTicket->setSpots(new IntegerValue($data['spots']));
59 }
60
61 if (isset($data['waitingListSpots'])) {
62 $eventTicket->setWaitingListSpots(new IntegerValue($data['waitingListSpots']));
63 }
64
65 if (isset($data['dateRanges'])) {
66 $eventTicket->setDateRanges(new Json($data['dateRanges']));
67 }
68
69 if (isset($data['sold'])) {
70 $eventTicket->setSold(new IntegerValue($data['sold']));
71 }
72
73 if (!empty($data['translations'])) {
74 $eventTicket->setTranslations(new Json($data['translations']));
75 }
76
77 return $eventTicket;
78 }
79 }
80