PluginProbe ʕ •ᴥ•ʔ
Booking for Appointments and Events Calendar – Amelia / 1.2.20
Booking for Appointments and Events Calendar – Amelia v1.2.20
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 / WP / InstallActions / DB / User / Provider / ProvidersServiceTable.php
ameliabooking / src / Infrastructure / WP / InstallActions / DB / User / Provider Last commit date
ProvidersDayOffTable.php 5 years ago ProvidersGoogleCalendarTable.php 5 years ago ProvidersLocationTable.php 5 years ago ProvidersOutlookCalendarTable.php 5 years ago ProvidersPeriodLocationTable.php 3 years ago ProvidersPeriodServiceTable.php 5 years ago ProvidersPeriodTable.php 5 years ago ProvidersServiceTable.php 3 years ago ProvidersSpecialDayPeriodLocationTable.php 3 years ago ProvidersSpecialDayPeriodServiceTable.php 3 years ago ProvidersSpecialDayPeriodTable.php 5 years ago ProvidersSpecialDayTable.php 5 years ago ProvidersTimeOutTable.php 5 years ago ProvidersViewsTable.php 5 years ago ProvidersWeekDayTable.php 5 years ago
ProvidersServiceTable.php
73 lines
1 <?php
2
3 namespace AmeliaBooking\Infrastructure\WP\InstallActions\DB\User\Provider;
4
5 use AmeliaBooking\Domain\Common\Exceptions\InvalidArgumentException;
6 use AmeliaBooking\Infrastructure\WP\InstallActions\DB\AbstractDatabaseTable;
7
8 /**
9 * Class ProvidersServiceTable
10 *
11 * @package AmeliaBooking\Infrastructure\WP\InstallActions\DB\User\Provider
12 */
13 class ProvidersServiceTable extends AbstractDatabaseTable
14 {
15
16 const TABLE = 'providers_to_services';
17
18 /**
19 * @return string
20 * @throws InvalidArgumentException
21 */
22 public static function buildTable()
23 {
24 $table = self::getTableName();
25
26 return "CREATE TABLE {$table} (
27 `id` int(11) NOT NULL AUTO_INCREMENT,
28 `userId` int(11) NOT NULL,
29 `serviceId` int(11) NOT NULL,
30 `price` double NOT NULL,
31 `minCapacity` int(11) NOT NULL,
32 `maxCapacity` int(11) NOT NULL,
33 `customPricing` TEXT NULL DEFAULT NULL,
34 PRIMARY KEY (`id`),
35 UNIQUE KEY `id` (`id`)
36 ) DEFAULT CHARSET=utf8 COLLATE utf8_general_ci";
37 }
38
39 /**
40 * @return array
41 * @throws InvalidArgumentException
42 */
43 public static function alterTable()
44 {
45 $table = self::getTableName();
46
47 global $wpdb;
48
49 $duplicatedRowsIds = $wpdb->get_col(
50 "SELECT t1.id AS id
51 FROM {$table} t1
52 INNER JOIN {$table} t2 ON t1.userId = t2.userId AND t1.serviceId = t2.serviceId
53 WHERE
54 t1.id > t2.id AND
55 t1.userId = t2.userId AND
56 t1.serviceId = t2.serviceId
57 GROUP BY t1.id"
58 );
59
60 foreach ($duplicatedRowsIds as $key => $id) {
61 $duplicatedRowsIds[$key] = (int)$duplicatedRowsIds[$key];
62 }
63
64 if ($duplicatedRowsIds) {
65 $duplicatedRowsIdsQuery = implode(', ', $duplicatedRowsIds);
66
67 $wpdb->query("DELETE FROM {$table} WHERE id IN ({$duplicatedRowsIdsQuery})");
68 }
69
70 return [];
71 }
72 }
73