PluginProbe ʕ •ᴥ•ʔ
Booking for Appointments and Events Calendar – Amelia / 1.2.27
Booking for Appointments and Events Calendar – Amelia v1.2.27
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 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 / Services / Resource / AbstractResourceService.php
ameliabooking / src / Domain / Services / Resource Last commit date
AbstractResourceService.php 1 year ago BasicResourceService.php 1 year ago
AbstractResourceService.php
84 lines
1 <?php
2
3 namespace AmeliaBooking\Domain\Services\Resource;
4
5 use AmeliaBooking\Domain\Collection\Collection;
6 use AmeliaBooking\Domain\Common\Exceptions\InvalidArgumentException;
7 use AmeliaBooking\Domain\Entity\Bookable\Service\Service;
8 use AmeliaBooking\Domain\Services\Interval\IntervalService;
9 use AmeliaBooking\Domain\Services\Schedule\ScheduleService;
10
11 /**
12 * Class AbstractResourceService
13 *
14 * @package AmeliaBooking\Domain\Services\Resource
15 */
16 abstract class AbstractResourceService
17 {
18 /** @var IntervalService */
19 protected $intervalService;
20
21 /** @var ScheduleService */
22 protected $scheduleService;
23
24 /**
25 * set substitute resources instead of resources that are not shred between services/locations
26 *
27 * @param Collection $resources
28 * @param array $entitiesIds
29 *
30 * @return void
31 * @throws InvalidArgumentException
32 */
33 abstract public function setNonSharedResources($resources, $entitiesIds);
34
35 /**
36 * get collection of resources for service
37 *
38 * @param Collection $resources
39 * @param int $serviceId
40 *
41 * @return Collection
42 * @throws InvalidArgumentException
43 */
44 abstract public function getServiceResources($resources, $serviceId);
45
46 /**
47 * get providers id values for resources
48 *
49 * @param Collection $resources
50 *
51 * @return array
52 */
53 abstract public function getResourcesProvidersIds($resources);
54
55
56 /** @noinspection MoreThanThreeArgumentsInspection */
57 /**
58 * set unavailable intervals (fake appointments) to providers in moments when resources are used up
59 * return intervals of resources with locations that are used up
60 *
61 * @param Collection $resources
62 * @param Collection $appointments
63 * @param Collection $allLocations
64 * @param Service $service
65 * @param Collection $providers
66 * @param int|null $locationId
67 * @param int|null $excludeAppointmentId
68 * @param int $personsCount
69 *
70 * @return array
71 * @throws InvalidArgumentException
72 */
73 abstract public function manageResources(
74 $resources,
75 $appointments,
76 $allLocations,
77 $service,
78 $providers,
79 $locationId,
80 $excludeAppointmentId,
81 $personsCount
82 );
83 }
84