PluginProbe ʕ •ᴥ•ʔ
Booking for Appointments and Events Calendar – Amelia / trunk
Booking for Appointments and Events Calendar – Amelia vtrunk
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 / Booking / CustomerBookingsTable.php
ameliabooking / src / Infrastructure / WP / InstallActions / DB / Booking Last commit date
AppointmentsTable.php 3 months ago CustomerBookingToEventsTicketsTable.php 3 months ago CustomerBookingsTable.php 2 weeks ago CustomerBookingsToEventsPeriodsTable.php 3 months ago CustomerBookingsToExtrasTable.php 3 months ago EventsPeriodsTable.php 3 months ago EventsProvidersTable.php 3 months ago EventsTable.php 3 months ago EventsTagsTable.php 2 months ago EventsTicketsTable.php 3 months ago
CustomerBookingsTable.php
70 lines
1 <?php
2
3 namespace AmeliaBooking\Infrastructure\WP\InstallActions\DB\Booking;
4
5 use AmeliaBooking\Domain\Common\Exceptions\InvalidArgumentException;
6 use AmeliaBooking\Domain\ValueObjects\String\Token;
7 use AmeliaBooking\Infrastructure\WP\InstallActions\DB\AbstractDatabaseTable;
8
9 /**
10 * Class CustomerBookingsTable
11 *
12 * @package AmeliaBooking\Infrastructure\WP\InstallActions\DB\Booking
13 */
14 class CustomerBookingsTable extends AbstractDatabaseTable
15 {
16 public const TABLE = 'customer_bookings';
17
18 /**
19 * @return string
20 * @throws InvalidArgumentException
21 */
22 public static function buildTable()
23 {
24 $table = self::getTableName();
25
26 $charsetCollate = self::getCharsetCollate();
27
28 $token = Token::MAX_LENGTH;
29
30 return "CREATE TABLE {$table} (
31 `id` INT(11) NOT NULL AUTO_INCREMENT,
32 `appointmentId` INT(11) NULL,
33 `customerId` INT(11) NOT NULL,
34 `status` ENUM('approved', 'pending', 'canceled', 'rejected', 'no-show', 'waiting') NULL,
35 `price` DOUBLE NOT NULL,
36 `tax` VARCHAR(255) DEFAULT NULL,
37 `persons` INT(11) NOT NULL,
38 `couponId` INT(11) NULL,
39 `token` VARCHAR({$token}) NULL,
40 `customFields` TEXT NULL,
41 `info` TEXT NULL,
42 `utcOffset` INT(3) NULL,
43 `aggregatedPrice` TINYINT(1) DEFAULT 1,
44 `packageCustomerServiceId` INT(11) NULL,
45 `duration` int(11) DEFAULT NULL,
46 `created` DATETIME NULL,
47 `actionsCompleted` TINYINT(1) NULL,
48 `qrCodes` TEXT NULL,
49 `ivyEntryId` INT(11) DEFAULT NULL,
50 PRIMARY KEY (`id`)
51 ) {$charsetCollate};";
52 }
53
54 /**
55 * @return array
56 * @throws InvalidArgumentException
57 */
58 public static function alterTable()
59 {
60 $table = self::getTableName();
61
62 global $wpdb;
63
64 return ($wpdb->get_var("SHOW COLUMNS FROM `{$table}` LIKE 'eventId'") !== 'eventId') ?
65 [
66 "ALTER TABLE {$table} MODIFY appointmentId INT(11) NULL",
67 ] : [];
68 }
69 }
70