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 / Infrastructure / ContainerConfig / repositories.php
ameliabooking / src / Infrastructure / ContainerConfig Last commit date
application.services.php 1 month ago command.bus.php 2 years ago container.php 1 month ago domain.event.bus.php 1 year ago domain.services.php 1 year ago infrastructure.services.php 4 months ago infrastructure.user.php 1 year ago repositories.php 6 months ago request.php 1 month ago
repositories.php
477 lines
1 <?php
2
3 /**
4 * Assembling repositories:
5 * Instantiating infrastructure-layer repositories implementing the Domain layer interfaces
6 */
7
8 use AmeliaBooking\Infrastructure\Common\Container;
9 use AmeliaBooking\Infrastructure\WP\InstallActions\DB;
10 use AmeliaBooking\Infrastructure\Repository;
11
12 defined('ABSPATH') or die('No script kiddies please!');
13
14 $entries['domain.bookable.category.repository'] = function (Container $c) {
15 return new Repository\Bookable\Service\CategoryRepository(
16 $c->getDatabaseConnection(),
17 DB\Bookable\CategoriesTable::getTableName()
18 );
19 };
20
21 $entries['domain.bookable.extra.repository'] = function (Container $c) {
22 return new Repository\Bookable\Service\ExtraRepository(
23 $c->getDatabaseConnection(),
24 DB\Bookable\ExtrasTable::getTableName()
25 );
26 };
27
28 $entries['domain.bookable.service.repository'] = function (Container $c) {
29 return new Repository\Bookable\Service\ServiceRepository(
30 $c->getDatabaseConnection(),
31 DB\Bookable\ServicesTable::getTableName(),
32 DB\User\Provider\ProvidersServiceTable::getTableName(),
33 DB\Bookable\ExtrasTable::getTableName(),
34 DB\Bookable\ServicesViewsTable::getTableName(),
35 DB\Gallery\GalleriesTable::getTableName()
36 );
37 };
38
39 $entries['domain.bookable.package.repository'] = function (Container $c) {
40 return new Repository\Bookable\Service\PackageRepository(
41 $c->getDatabaseConnection(),
42 DB\Bookable\PackagesTable::getTableName()
43 );
44 };
45
46 $entries['domain.bookable.package.packageService.repository'] = function (Container $c) {
47 return new Repository\Bookable\Service\PackageServiceRepository(
48 $c->getDatabaseConnection(),
49 DB\Bookable\PackagesServicesTable::getTableName()
50 );
51 };
52
53 $entries['domain.bookable.package.packageServiceLocation.repository'] = function (Container $c) {
54 return new Repository\Bookable\Service\PackageServiceLocationRepository(
55 $c->getDatabaseConnection(),
56 DB\Bookable\PackagesServicesLocationsTable::getTableName()
57 );
58 };
59
60 $entries['domain.bookable.package.packageServiceProvider.repository'] = function (Container $c) {
61 return new Repository\Bookable\Service\PackageServiceProviderRepository(
62 $c->getDatabaseConnection(),
63 DB\Bookable\PackagesServicesProvidersTable::getTableName()
64 );
65 };
66
67 $entries['domain.bookable.packageCustomer.repository'] = function (Container $c) {
68 return new Repository\Bookable\Service\PackageCustomerRepository(
69 $c->getDatabaseConnection(),
70 DB\Bookable\PackagesCustomersTable::getTableName()
71 );
72 };
73
74 $entries['domain.bookable.packageCustomerService.repository'] = function (Container $c) {
75 return new Repository\Bookable\Service\PackageCustomerServiceRepository(
76 $c->getDatabaseConnection(),
77 DB\Bookable\PackagesCustomersServicesTable::getTableName()
78 );
79 };
80
81 $entries['domain.bookable.resource.repository'] = function (Container $c) {
82 return new Repository\Bookable\Service\ResourceRepository(
83 $c->getDatabaseConnection(),
84 DB\Bookable\ResourcesTable::getTableName()
85 );
86 };
87
88 $entries['domain.bookable.resourceEntities.repository'] = function (Container $c) {
89 return new Repository\Bookable\Service\ResourceEntitiesRepository(
90 $c->getDatabaseConnection(),
91 DB\Bookable\ResourcesToEntitiesTable::getTableName()
92 );
93 };
94
95 $entries['domain.tax.repository'] = function (Container $c) {
96 return new Repository\Tax\TaxRepository(
97 $c->getDatabaseConnection(),
98 DB\Tax\TaxesTable::getTableName()
99 );
100 };
101
102 $entries['domain.tax.entity.repository'] = function (Container $c) {
103 return new Repository\Tax\TaxEntityRepository(
104 $c->getDatabaseConnection(),
105 DB\Tax\TaxesToEntitiesTable::getTableName()
106 );
107 };
108
109 $entries['domain.coupon.repository'] = function (Container $c) {
110 return new Repository\Coupon\CouponRepository(
111 $c->getDatabaseConnection(),
112 DB\Coupon\CouponsTable::getTableName(),
113 DB\Bookable\ServicesTable::getTableName(),
114 DB\Coupon\CouponsToServicesTable::getTableName(),
115 DB\Booking\EventsTable::getTableName(),
116 DB\Coupon\CouponsToEventsTable::getTableName(),
117 DB\Bookable\PackagesTable::getTableName(),
118 DB\Coupon\CouponsToPackagesTable::getTableName(),
119 DB\Booking\CustomerBookingsTable::getTableName(),
120 DB\Booking\EventsPeriodsTable::getTableName(),
121 );
122 };
123
124 $entries['domain.coupon.service.repository'] = function (Container $c) {
125 return new Repository\Coupon\CouponServiceRepository(
126 $c->getDatabaseConnection(),
127 DB\Coupon\CouponsToServicesTable::getTableName()
128 );
129 };
130
131 $entries['domain.coupon.event.repository'] = function (Container $c) {
132 return new Repository\Coupon\CouponEventRepository(
133 $c->getDatabaseConnection(),
134 DB\Coupon\CouponsToEventsTable::getTableName()
135 );
136 };
137
138 $entries['domain.coupon.package.repository'] = function (Container $c) {
139 return new Repository\Coupon\CouponPackageRepository(
140 $c->getDatabaseConnection(),
141 DB\Coupon\CouponsToPackagesTable::getTableName()
142 );
143 };
144
145 $entries['domain.locations.repository'] = function (Container $c) {
146 return new Repository\Location\LocationRepository(
147 $c->getDatabaseConnection(),
148 DB\Location\LocationsTable::getTableName(),
149 DB\User\Provider\ProvidersLocationTable::getTableName(),
150 DB\User\Provider\ProvidersServiceTable::getTableName(),
151 DB\Bookable\ServicesTable::getTableName(),
152 DB\Location\LocationsViewsTable::getTableName()
153 );
154 };
155
156 $entries['domain.notification.repository'] = function (Container $c) {
157 return new Repository\Notification\NotificationRepository(
158 $c->getDatabaseConnection(),
159 DB\Notification\NotificationsTable::getTableName()
160 );
161 };
162
163 $entries['domain.notificationEntities.repository'] = function (Container $c) {
164 return new Repository\Notification\NotificationsToEntitiesRepository(
165 $c->getDatabaseConnection(),
166 DB\Notification\NotificationsToEntitiesTable::getTableName()
167 );
168 };
169
170 $entries['domain.notificationLog.repository'] = function (Container $c) {
171 return new Repository\Notification\NotificationLogRepository(
172 $c->getDatabaseConnection(),
173 DB\Notification\NotificationsLogTable::getTableName(),
174 DB\Notification\NotificationsTable::getTableName(),
175 DB\Booking\AppointmentsTable::getTableName(),
176 DB\Booking\CustomerBookingsTable::getTableName(),
177 DB\User\UsersTable::getTableName()
178 );
179 };
180
181 $entries['domain.notificationSMSHistory.repository'] = function (Container $c) {
182 return new Repository\Notification\NotificationSMSHistoryRepository(
183 $c->getDatabaseConnection(),
184 DB\Notification\NotificationsSMSHistoryTable::getTableName()
185 );
186 };
187
188 $entries['domain.payment.repository'] = function (Container $c) {
189 return new Repository\Payment\PaymentRepository(
190 $c->getDatabaseConnection(),
191 DB\Payment\PaymentsTable::getTableName(),
192 DB\Booking\AppointmentsTable::getTableName(),
193 DB\Booking\CustomerBookingsTable::getTableName(),
194 DB\Bookable\ServicesTable::getTableName(),
195 DB\User\UsersTable::getTableName(),
196 DB\Booking\EventsTable::getTableName(),
197 DB\Booking\EventsProvidersTable::getTableName(),
198 DB\Booking\EventsPeriodsTable::getTableName(),
199 DB\Booking\CustomerBookingsToEventsPeriodsTable::getTableName(),
200 DB\Bookable\PackagesTable::getTableName(),
201 DB\Bookable\PackagesCustomersTable::getTableName()
202 );
203 };
204
205 $entries['domain.users.repository'] = function (Container $c) {
206 return new Repository\User\UserRepository(
207 $c->getDatabaseConnection(),
208 DB\User\UsersTable::getTableName()
209 );
210 };
211
212 $entries['domain.bookable.service.providerService.repository'] = function (Container $c) {
213 return new Repository\Bookable\Service\ProviderServiceRepository(
214 $c->getDatabaseConnection(),
215 DB\User\Provider\ProvidersServiceTable::getTableName()
216 );
217 };
218
219 $entries['domain.bookable.service.providerLocation.repository'] = function (Container $c) {
220 return new Repository\Location\ProviderLocationRepository(
221 $c->getDatabaseConnection(),
222 DB\User\Provider\ProvidersLocationTable::getTableName()
223 );
224 };
225
226 $entries['domain.schedule.dayOff.repository'] = function (Container $c) {
227 return new Repository\Schedule\DayOffRepository(
228 $c->getDatabaseConnection(),
229 DB\User\Provider\ProvidersDayOffTable::getTableName()
230 );
231 };
232
233 $entries['domain.schedule.weekDay.repository'] = function (Container $c) {
234 return new Repository\Schedule\WeekDayRepository(
235 $c->getDatabaseConnection(),
236 DB\User\Provider\ProvidersWeekDayTable::getTableName()
237 );
238 };
239
240 $entries['domain.schedule.timeOut.repository'] = function (Container $c) {
241 return new Repository\Schedule\TimeOutRepository(
242 $c->getDatabaseConnection(),
243 DB\User\Provider\ProvidersTimeOutTable::getTableName()
244 );
245 };
246
247 $entries['domain.schedule.period.repository'] = function (Container $c) {
248 return new Repository\Schedule\PeriodRepository(
249 $c->getDatabaseConnection(),
250 DB\User\Provider\ProvidersPeriodTable::getTableName()
251 );
252 };
253
254 $entries['domain.schedule.period.service.repository'] = function (Container $c) {
255 return new Repository\Schedule\PeriodServiceRepository(
256 $c->getDatabaseConnection(),
257 DB\User\Provider\ProvidersPeriodServiceTable::getTableName()
258 );
259 };
260
261 $entries['domain.schedule.period.location.repository'] = function (Container $c) {
262 return new Repository\Schedule\PeriodLocationRepository(
263 $c->getDatabaseConnection(),
264 DB\User\Provider\ProvidersPeriodLocationTable::getTableName()
265 );
266 };
267
268 $entries['domain.schedule.specialDay.repository'] = function (Container $c) {
269 return new Repository\Schedule\SpecialDayRepository(
270 $c->getDatabaseConnection(),
271 DB\User\Provider\ProvidersSpecialDayTable::getTableName()
272 );
273 };
274
275 $entries['domain.schedule.specialDay.period.repository'] = function (Container $c) {
276 return new Repository\Schedule\SpecialDayPeriodRepository(
277 $c->getDatabaseConnection(),
278 DB\User\Provider\ProvidersSpecialDayPeriodTable::getTableName()
279 );
280 };
281
282 $entries['domain.schedule.specialDay.period.service.repository'] = function (Container $c) {
283 return new Repository\Schedule\SpecialDayPeriodServiceRepository(
284 $c->getDatabaseConnection(),
285 DB\User\Provider\ProvidersSpecialDayPeriodServiceTable::getTableName()
286 );
287 };
288
289 $entries['domain.schedule.specialDay.period.location.repository'] = function (Container $c) {
290 return new Repository\Schedule\SpecialDayPeriodLocationRepository(
291 $c->getDatabaseConnection(),
292 DB\User\Provider\ProvidersSpecialDayPeriodLocationTable::getTableName()
293 );
294 };
295
296 $entries['domain.users.providers.repository'] = function (Container $c) {
297 return new Repository\User\ProviderRepository(
298 $c->getDatabaseConnection(),
299 DB\User\UsersTable::getTableName(),
300 DB\User\Provider\ProvidersWeekDayTable::getTableName(),
301 DB\User\Provider\ProvidersPeriodTable::getTableName(),
302 DB\User\Provider\ProvidersPeriodServiceTable::getTableName(),
303 DB\User\Provider\ProvidersPeriodLocationTable::getTableName(),
304 DB\User\Provider\ProvidersTimeOutTable::getTableName(),
305 DB\User\Provider\ProvidersSpecialDayTable::getTableName(),
306 DB\User\Provider\ProvidersSpecialDayPeriodTable::getTableName(),
307 DB\User\Provider\ProvidersSpecialDayPeriodServiceTable::getTableName(),
308 DB\User\Provider\ProvidersSpecialDayPeriodLocationTable::getTableName(),
309 DB\User\Provider\ProvidersDayOffTable::getTableName(),
310 DB\User\Provider\ProvidersServiceTable::getTableName(),
311 DB\User\Provider\ProvidersLocationTable::getTableName(),
312 DB\Bookable\ServicesTable::getTableName(),
313 DB\Location\LocationsTable::getTableName(),
314 DB\User\Provider\ProvidersViewsTable::getTableName(),
315 DB\User\Provider\ProvidersGoogleCalendarTable::getTableName(),
316 DB\User\Provider\ProvidersOutlookCalendarTable::getTableName()
317 );
318 };
319
320 $entries['domain.users.customers.repository'] = function (Container $c) {
321 return new Repository\User\CustomerRepository(
322 $c->getDatabaseConnection(),
323 DB\User\UsersTable::getTableName()
324 );
325 };
326
327 $entries['domain.wpUsers.repository'] = function (Container $c) {
328 return new Repository\User\WPUserRepository(
329 $c->getDatabaseConnection(),
330 DB\User\WPUsersTable::getTableName(),
331 DB\User\WPUsersTable::getMetaTableName(),
332 DB\User\WPUsersTable::getDatabasePrefix()
333 );
334 };
335
336 $entries['domain.booking.appointment.repository'] = function (Container $c) {
337 return new Repository\Booking\Appointment\AppointmentRepository(
338 $c->getDatabaseConnection(),
339 DB\Booking\AppointmentsTable::getTableName(),
340 DB\Bookable\ServicesTable::getTableName(),
341 DB\Booking\CustomerBookingsTable::getTableName(),
342 DB\Booking\CustomerBookingsToExtrasTable::getTableName(),
343 DB\Bookable\ExtrasTable::getTableName(),
344 DB\User\UsersTable::getTableName(),
345 DB\Payment\PaymentsTable::getTableName(),
346 DB\Coupon\CouponsTable::getTableName(),
347 DB\User\Provider\ProvidersLocationTable::getTableName(),
348 DB\User\Provider\ProvidersServiceTable::getTableName(),
349 DB\Bookable\PackagesCustomersTable::getTableName(),
350 DB\Bookable\PackagesCustomersServicesTable::getTableName()
351 );
352 };
353
354 $entries['domain.booking.customerBooking.repository'] = function (Container $c) {
355 return new Repository\Booking\Appointment\CustomerBookingRepository(
356 $c->getDatabaseConnection(),
357 DB\Booking\CustomerBookingsTable::getTableName()
358 );
359 };
360
361 $entries['domain.booking.customerBookingExtra.repository'] = function (Container $c) {
362 return new Repository\Booking\Appointment\CustomerBookingExtraRepository(
363 $c->getDatabaseConnection(),
364 DB\Booking\CustomerBookingsToExtrasTable::getTableName()
365 );
366 };
367
368 $entries['domain.booking.customerBookingEventPeriod.repository'] = function (Container $c) {
369 return new Repository\Booking\Event\CustomerBookingEventPeriodRepository(
370 $c->getDatabaseConnection(),
371 DB\Booking\CustomerBookingsToEventsPeriodsTable::getTableName()
372 );
373 };
374
375 $entries['domain.booking.customerBookingEventTicket.repository'] = function (Container $c) {
376 return new Repository\Booking\Event\CustomerBookingEventTicketRepository(
377 $c->getDatabaseConnection(),
378 DB\Booking\CustomerBookingToEventsTicketsTable::getTableName()
379 );
380 };
381
382 $entries['domain.galleries.repository'] = function (Container $c) {
383 return new Repository\Gallery\GalleryRepository(
384 $c->getDatabaseConnection(),
385 DB\Gallery\GalleriesTable::getTableName()
386 );
387 };
388
389 $entries['domain.google.calendar.repository'] = function (Container $c) {
390 return new Repository\Google\GoogleCalendarRepository(
391 $c->getDatabaseConnection(),
392 DB\User\Provider\ProvidersGoogleCalendarTable::getTableName()
393 );
394 };
395
396 $entries['domain.outlook.calendar.repository'] = function (Container $c) {
397 return new Repository\Outlook\OutlookCalendarRepository(
398 $c->getDatabaseConnection(),
399 DB\User\Provider\ProvidersOutlookCalendarTable::getTableName()
400 );
401 };
402
403 $entries['domain.customField.repository'] = function (Container $c) {
404 return new Repository\CustomField\CustomFieldRepository(
405 $c->getDatabaseConnection(),
406 DB\CustomField\CustomFieldsTable::getTableName(),
407 DB\CustomField\CustomFieldsOptionsTable::getTableName(),
408 DB\CustomField\CustomFieldsServicesTable::getTableName(),
409 DB\Bookable\ServicesTable::getTableName(),
410 DB\CustomField\CustomFieldsEventsTable::getTableName(),
411 DB\Booking\EventsTable::getTableName()
412 );
413 };
414
415 $entries['domain.customFieldOption.repository'] = function (Container $c) {
416 return new Repository\CustomField\CustomFieldOptionRepository(
417 $c->getDatabaseConnection(),
418 DB\CustomField\CustomFieldsOptionsTable::getTableName()
419 );
420 };
421
422 $entries['domain.customFieldService.repository'] = function (Container $c) {
423 return new Repository\CustomField\CustomFieldServiceRepository(
424 $c->getDatabaseConnection(),
425 DB\CustomField\CustomFieldsServicesTable::getTableName()
426 );
427 };
428
429 $entries['domain.customFieldEvent.repository'] = function (Container $c) {
430 return new Repository\CustomField\CustomFieldEventRepository(
431 $c->getDatabaseConnection(),
432 DB\CustomField\CustomFieldsEventsTable::getTableName()
433 );
434 };
435
436 $entries['domain.booking.event.repository'] = function (Container $c) {
437 return new Repository\Booking\Event\EventRepository(
438 $c->getDatabaseConnection(),
439 DB\Booking\EventsTable::getTableName()
440 );
441 };
442
443 $entries['domain.booking.event.period.repository'] = function (Container $c) {
444 return new Repository\Booking\Event\EventPeriodsRepository(
445 $c->getDatabaseConnection(),
446 DB\Booking\EventsPeriodsTable::getTableName()
447 );
448 };
449
450 $entries['domain.booking.event.tag.repository'] = function (Container $c) {
451 return new Repository\Booking\Event\EventTagsRepository(
452 $c->getDatabaseConnection(),
453 DB\Booking\EventsTagsTable::getTableName()
454 );
455 };
456
457 $entries['domain.booking.event.ticket.repository'] = function (Container $c) {
458 return new Repository\Booking\Event\EventTicketRepository(
459 $c->getDatabaseConnection(),
460 DB\Booking\EventsTicketsTable::getTableName()
461 );
462 };
463
464 $entries['domain.booking.event.provider.repository'] = function (Container $c) {
465 return new Repository\Booking\Event\EventProvidersRepository(
466 $c->getDatabaseConnection(),
467 DB\Booking\EventsProvidersTable::getTableName()
468 );
469 };
470
471 $entries['domain.cache.repository'] = function (Container $c) {
472 return new Repository\Cache\CacheRepository(
473 $c->getDatabaseConnection(),
474 DB\Cache\CacheTable::getTableName()
475 );
476 };
477