PluginProbe
Booking for Appointments and Events Calendar – Amelia / 2.4.9
Booking for Appointments and Events Calendar – Amelia v2.4.9
2.4.9 2.4.8 2.4.7 2.4.6 2.4.5 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 All 59 releases
ameliabooking / src / Infrastructure / WP / InstallActions / DB / Bookable / ExtrasTable.php
ExtrasTable.php
47 lines 1.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace AmeliaBooking\Infrastructure\WP\InstallActions\DB\Bookable;
4
5 use AmeliaBooking\Domain\Common\Exceptions\InvalidArgumentException;
6 use AmeliaBooking\Domain\ValueObjects\String\Description;
7 use AmeliaBooking\Domain\ValueObjects\String\Name;
8 use AmeliaBooking\Infrastructure\WP\InstallActions\DB\AbstractDatabaseTable;
9
10 /**
11 * Class ExtrasTable
12 *
13 * @package AmeliaBooking\Infrastructure\WP\InstallActions\DB\Bookable
14 */
15 class ExtrasTable extends AbstractDatabaseTable
16 {
17 public const TABLE = 'extras';
18
19 /**
20 * @return string
21 * @throws InvalidArgumentException
22 */
23 public static function buildTable()
24 {
25 $table = self::getTableName();
26
27 $charsetCollate = self::getCharsetCollate();
28
29 $name = Name::MAX_LENGTH;
30 $description = Description::MAX_LENGTH;
31
32 return "CREATE TABLE {$table} (
33 `id` int(11) NOT NULL AUTO_INCREMENT,
34 `name` varchar({$name}) NOT NULL default '',
35 `description` text({$description}) NULL,
36 `price` double NOT NULL,
37 `maxQuantity` int(11) NOT NULL,
38 `duration` int(11) NULL,
39 `serviceId` int(11) NOT NULL,
40 `position` int(11) NOT NULL,
41 `aggregatedPrice` TINYINT(1) DEFAULT NULL,
42 `translations` TEXT NULL DEFAULT NULL,
43 PRIMARY KEY (`id`)
44 ) {$charsetCollate};";
45 }
46 }
47