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 / Bookable / PackagesCustomersServicesTable.php
ameliabooking / src / Infrastructure / WP / InstallActions / DB / Bookable Last commit date
CategoriesTable.php 2 years ago ExtrasTable.php 5 years ago PackagesCustomersServicesTable.php 3 years ago PackagesCustomersTable.php 2 years ago PackagesServicesLocationsTable.php 5 years ago PackagesServicesProvidersTable.php 5 years ago PackagesServicesTable.php 2 years ago PackagesTable.php 3 years ago ResourcesTable.php 3 years ago ResourcesToEntitiesTable.php 3 years ago ServicesTable.php 3 years ago ServicesViewsTable.php 5 years ago
PackagesCustomersServicesTable.php
68 lines
1 <?php
2
3 namespace AmeliaBooking\Infrastructure\WP\InstallActions\DB\Bookable;
4
5 use AmeliaBooking\Domain\Common\Exceptions\InvalidArgumentException;
6 use AmeliaBooking\Infrastructure\WP\InstallActions\DB\AbstractDatabaseTable;
7 use AmeliaBooking\Infrastructure\WP\InstallActions\DB\User\UsersTable;
8
9 /**
10 * Class PackagesCustomersServicesTable
11 *
12 * @package AmeliaBooking\Infrastructure\WP\InstallActions\DB\Bookable
13 */
14 class PackagesCustomersServicesTable extends AbstractDatabaseTable
15 {
16
17 const TABLE = 'packages_customers_to_services';
18
19 /**
20 * @return string
21 * @throws InvalidArgumentException
22 */
23 public static function buildTable()
24 {
25 $table = self::getTableName();
26
27 return "CREATE TABLE {$table} (
28 `id` INT(11) NOT NULL AUTO_INCREMENT,
29 `packageCustomerId` INT(11) NOT NULL,
30 `serviceId` INT(11) NOT NULL,
31 `providerId` INT(11) NULL,
32 `locationId` INT(11) NULL,
33 `bookingsCount` INT(5) DEFAULT NULL,
34 PRIMARY KEY (`id`)
35 ) DEFAULT CHARSET=utf8 COLLATE utf8_general_ci";
36 }
37
38 /**
39 * @return array
40 * @throws InvalidArgumentException
41 */
42 public static function alterTable()
43 {
44 $table = self::getTableName();
45
46 $usersTable = UsersTable::getTableName();
47
48 global $wpdb;
49
50 $deletedProviderIds = $wpdb->get_col(
51 "SELECT t1.providerId FROM {$table} t1
52 WHERE t1.providerId NOT IN (SELECT t2.id FROM {$usersTable} t2)"
53 );
54
55 foreach ($deletedProviderIds as $key => $id) {
56 $deletedProviderIds[$key] = (int)$deletedProviderIds[$key];
57 }
58
59 if ($deletedProviderIds) {
60 $deletedProvidersIdsQuery = implode(', ', $deletedProviderIds);
61
62 $wpdb->query("UPDATE {$table} SET providerId = NULL WHERE providerId IN ({$deletedProvidersIdsQuery})");
63 }
64
65 return [];
66 }
67 }
68