PluginProbe ʕ •ᴥ•ʔ
Booking for Appointments and Events Calendar – Amelia / 1.2.11
Booking for Appointments and Events Calendar – Amelia v1.2.11
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 / Notification / NotificationsSMSHistoryTable.php
ameliabooking / src / Infrastructure / WP / InstallActions / DB / Notification Last commit date
NotificationsLogTable.php 4 years ago NotificationsSMSHistoryTable.php 4 years ago NotificationsTable.php 2 years ago NotificationsTableInsertRows.php 1 year ago NotificationsToEntitiesTable.php 4 years ago
NotificationsSMSHistoryTable.php
70 lines
1 <?php
2
3 namespace AmeliaBooking\Infrastructure\WP\InstallActions\DB\Notification;
4
5 use AmeliaBooking\Domain\Common\Exceptions\InvalidArgumentException;
6 use AmeliaBooking\Domain\ValueObjects\String\Phone;
7 use AmeliaBooking\Infrastructure\WP\InstallActions\DB\AbstractDatabaseTable;
8
9 /**
10 * Class NotificationsSMSHistoryTable
11 *
12 * @package AmeliaBooking\Infrastructure\WP\InstallActions\DB\Notification
13 *
14 * @codingStandardsIgnoreFile
15 */
16 class NotificationsSMSHistoryTable extends AbstractDatabaseTable
17 {
18
19 const TABLE = 'notifications_sms_history';
20
21 /**
22 * @return string
23 * @throws InvalidArgumentException
24 */
25 public static function buildTable()
26 {
27 global $wpdb;
28
29 $table = self::getTableName();
30
31 $phone = Phone::MAX_LENGTH;
32
33 if ($wpdb->get_var("SHOW TABLES LIKE '{$table}'") === $table) {
34 if ($wpdb->query("SHOW KEYS FROM {$table} WHERE Key_name = 'notificationId'")) {
35 $wpdb->query("ALTER TABLE {$table} DROP FOREIGN KEY {$table}_ibfk_1");
36 $wpdb->query("ALTER TABLE {$table} DROP INDEX notificationId");
37 }
38
39 if ($wpdb->query("SHOW KEYS FROM {$table} WHERE Key_name = 'userId'")) {
40 $wpdb->query("ALTER TABLE {$table} DROP FOREIGN KEY {$table}_ibfk_2");
41 $wpdb->query("ALTER TABLE {$table} DROP INDEX userId");
42 }
43
44 if ($wpdb->query("SHOW KEYS FROM {$table} WHERE Key_name = 'appointmentId'")) {
45 $wpdb->query("ALTER TABLE {$table} DROP FOREIGN KEY {$table}_ibfk_3");
46 $wpdb->query("ALTER TABLE {$table} DROP INDEX appointmentId");
47 }
48 }
49
50 return "CREATE TABLE {$table} (
51 `id` INT(11) NOT NULL AUTO_INCREMENT,
52 `notificationId` INT(11) NOT NULL,
53 `userId` INT(11) NULL,
54 `appointmentId` INT(11) NULL,
55 `eventId` INT(11) NULL,
56 `packageCustomerId` INT(11) NULL,
57 `logId` INT(11) NULL,
58 `dateTime` DATETIME NULL,
59 `text` VARCHAR(1600) NOT NULL,
60 `phone` VARCHAR({$phone}) NOT NULL,
61 `alphaSenderId` VARCHAR(11) NOT NULL,
62 `status` ENUM('prepared', 'accepted', 'queued', 'sent', 'failed', 'delivered', 'undelivered') NOT NULL DEFAULT 'prepared',
63 `price` DOUBLE NULL,
64 `segments` TINYINT(2) NULL,
65 PRIMARY KEY (`id`),
66 UNIQUE KEY `id` (`id`)
67 ) DEFAULT CHARSET=utf8 COLLATE utf8_general_ci";
68 }
69 }
70