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 / User / ProviderFactory.php
ameliabooking / src / Domain / Factory / User Last commit date
ProviderFactory.php 2 years ago UserFactory.php 1 year ago
ProviderFactory.php
58 lines
1 <?php
2
3 namespace AmeliaBooking\Domain\Factory\User;
4
5 use AmeliaBooking\Domain\Collection\Collection;
6 use AmeliaBooking\Domain\Common\Exceptions\InvalidArgumentException;
7 use AmeliaBooking\Domain\Factory\Bookable\Service\ServiceFactory;
8
9 /**
10 * Class ProviderFactory
11 *
12 * @package AmeliaBooking\Domain\Factory\User
13 */
14 class ProviderFactory extends UserFactory
15 {
16 /**
17 * @param array $providers
18 * @param array $services
19 * @param array $providersServices
20 *
21 * @return Collection
22 * @throws InvalidArgumentException
23 */
24 public static function createCollection($providers, $services = [], $providersServices = [])
25 {
26 $providersCollection = new Collection();
27
28 foreach ($providers as $providerKey => $providerArray) {
29 if (!empty($providerArray['stripeConnect']) && !is_array($providerArray['stripeConnect'])) {
30 $providerArray['stripeConnect'] = json_decode($providerArray['stripeConnect'], true);
31 }
32
33 $providersCollection->addItem(
34 self::create($providerArray),
35 $providerKey
36 );
37
38 if ($providersServices && array_key_exists($providerKey, $providersServices)) {
39 foreach ((array)$providersServices[$providerKey] as $serviceKey => $providerService) {
40 if (array_key_exists($serviceKey, $services)) {
41 $providersCollection->getItem($providerKey)->getServiceList()->addItem(
42 ServiceFactory::create(
43 array_merge(
44 $services[$serviceKey],
45 $providerService
46 )
47 ),
48 $serviceKey
49 );
50 }
51 }
52 }
53 }
54
55 return $providersCollection;
56 }
57 }
58