PluginProbe ʕ •ᴥ•ʔ
Booking for Appointments and Events Calendar – Amelia / trunk
Booking for Appointments and Events Calendar – Amelia vtrunk
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 / Schedule / SpecialDayPeriodFactory.php
ameliabooking / src / Domain / Factory / Schedule Last commit date
BlockTimeFactory.php 3 months ago DayOffFactory.php 6 years ago PeriodFactory.php 2 years ago PeriodLocationFactory.php 3 years ago PeriodServiceFactory.php 7 years ago SpecialDayFactory.php 7 years ago SpecialDayPeriodFactory.php 2 years ago SpecialDayPeriodLocationFactory.php 3 years ago SpecialDayPeriodServiceFactory.php 7 years ago TimeOutFactory.php 7 years ago WeekDayFactory.php 7 years ago
SpecialDayPeriodFactory.php
47 lines
1 <?php
2
3 namespace AmeliaBooking\Domain\Factory\Schedule;
4
5 use AmeliaBooking\Domain\Collection\Collection;
6 use AmeliaBooking\Domain\Common\Exceptions\InvalidArgumentException;
7 use AmeliaBooking\Domain\Entity\Schedule\SpecialDayPeriod;
8 use AmeliaBooking\Domain\ValueObjects\DateTime\DateTimeValue;
9 use AmeliaBooking\Domain\ValueObjects\Number\Integer\Id;
10 use AmeliaBooking\Infrastructure\Licence;
11
12 /**
13 * Class SpecialDayPeriodFactory
14 *
15 * @package AmeliaBooking\Domain\Factory\Schedule
16 */
17 class SpecialDayPeriodFactory
18 {
19 /**
20 * @param array $data
21 *
22 * @return SpecialDayPeriod
23 * @throws InvalidArgumentException
24 */
25 public static function create($data)
26 {
27 Licence\DataModifier::periodFactory($data);
28
29 $period = new SpecialDayPeriod(
30 new DateTimeValue(\DateTime::createFromFormat('H:i:s', $data['startTime'])),
31 new DateTimeValue(\DateTime::createFromFormat('H:i:s', $data['endTime'])),
32 new Collection($data['periodServiceList']),
33 new Collection($data['periodLocationList'])
34 );
35
36 if (isset($data['id'])) {
37 $period->setId(new Id($data['id']));
38 }
39
40 if (isset($data['locationId'])) {
41 $period->setLocationId(new Id($data['locationId']));
42 }
43
44 return $period;
45 }
46 }
47