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 / Bookable / ServicesTable.php
ameliabooking / src / Infrastructure / WP / InstallActions / DB / Bookable Last commit date
CategoriesTable.php 2 months ago CategoriesTableInsertRows.php 6 months ago ExtrasTable.php 2 months ago PackagesCustomersServicesTable.php 2 months ago PackagesCustomersTable.php 2 weeks ago PackagesServicesLocationsTable.php 2 months ago PackagesServicesProvidersTable.php 2 months ago PackagesServicesTable.php 2 months ago PackagesTable.php 2 months ago ResourcesTable.php 2 months ago ResourcesToEntitiesTable.php 2 months ago ServicesTable.php 2 months ago ServicesViewsTable.php 2 months ago
ServicesTable.php
74 lines
1 <?php
2
3 namespace AmeliaBooking\Infrastructure\WP\InstallActions\DB\Bookable;
4
5 use AmeliaBooking\Domain\Common\Exceptions\InvalidArgumentException;
6 use AmeliaBooking\Domain\ValueObjects\Picture;
7 use AmeliaBooking\Domain\ValueObjects\String\Color;
8 use AmeliaBooking\Domain\ValueObjects\String\Description;
9 use AmeliaBooking\Domain\ValueObjects\String\Name;
10 use AmeliaBooking\Infrastructure\WP\InstallActions\DB\AbstractDatabaseTable;
11
12 /**
13 * Class ServiceTable
14 *
15 * @package AmeliaBooking\Infrastructure\WP\InstallActions\DB\Bookable
16 */
17 class ServicesTable extends AbstractDatabaseTable
18 {
19 public const TABLE = 'services';
20
21 /**
22 * @return string
23 * @throws InvalidArgumentException
24 */
25 public static function buildTable()
26 {
27 $table = self::getTableName();
28
29 $charsetCollate = self::getCharsetCollate();
30
31 $name = Name::MAX_LENGTH;
32 $description = Description::MAX_LENGTH;
33 $color = Color::MAX_LENGTH;
34 $picture = Picture::MAX_LENGTH;
35
36 return "CREATE TABLE {$table} (
37 `id` int(11) NOT NULL AUTO_INCREMENT,
38 `name` varchar({$name}) NOT NULL default '',
39 `description` text({$description}) NULL,
40 `color` varchar({$color}) NOT NULL default '',
41 `price` double NOT NULL,
42 `status` ENUM('hidden', 'visible', 'disabled') NOT NULL default 'visible',
43 `categoryId` int(11) NOT NULL,
44 `minCapacity` int(11) NOT NULL,
45 `maxCapacity` int(11) NOT NULL,
46 `duration` int(11) NOT NULL,
47 `timeBefore` int(11) NULL DEFAULT 0,
48 `timeAfter` int(11) NULL DEFAULT 0,
49 `bringingAnyone` TINYINT(1) NULL DEFAULT 1,
50 `priority` ENUM('least_expensive', 'most_expensive', 'least_occupied', 'most_occupied') NOT NULL,
51 `pictureFullPath` varchar ({$picture}) NULL,
52 `pictureThumbPath` varchar ({$picture}) NULL,
53 `position` int(11) default 0,
54 `show` TINYINT(1) DEFAULT 1,
55 `aggregatedPrice` TINYINT(1) DEFAULT 1,
56 `settings` text({$description}) NULL DEFAULT NULL,
57 `recurringCycle` ENUM('disabled', 'all', 'daily', 'weekly', 'monthly') DEFAULT 'disabled',
58 `recurringSub` ENUM('disabled' ,'past', 'future', 'both') DEFAULT 'future',
59 `recurringPayment` int(3) DEFAULT 0,
60 `translations` TEXT NULL DEFAULT NULL,
61 `depositPayment` ENUM('disabled' , 'fixed', 'percentage') DEFAULT 'disabled',
62 `depositPerPerson` TINYINT(1) DEFAULT 1,
63 `deposit` double DEFAULT 0,
64 `fullPayment` TINYINT(1) DEFAULT 0,
65 `mandatoryExtra` TINYINT(1) DEFAULT 0,
66 `minSelectedExtras` int(11) NULL DEFAULT 0,
67 `customPricing` TEXT NULL DEFAULT NULL,
68 `maxExtraPeople` int(11) NULL DEFAULT NULL,
69 `limitPerCustomer` TEXT NULL DEFAULT NULL,
70 PRIMARY KEY (`id`)
71 ) {$charsetCollate};";
72 }
73 }
74