diff --git a/Admin/Install/db.json b/Admin/Install/db.json new file mode 100644 index 0000000..188f584 --- /dev/null +++ b/Admin/Install/db.json @@ -0,0 +1,227 @@ +{ + "kanban_board": { + "name": "kanban_board", + "fields": { + "kanban_board_id": { + "name": "kanban_board_id", + "type": "INT", + "null": false, + "primary": true, + "autoincrement": true + }, + "kanban_board_name": { + "name": "kanban_board_name", + "type": "VARCHAR(255)", + "null": false + }, + "kanban_board_desc": { + "name": "kanban_board_desc", + "type": "TEXT", + "default": null, + "null": true + }, + "kanban_board_status": { + "name": "kanban_board_status", + "type": "TINYINT", + "null": false + }, + "kanban_board_order": { + "name": "kanban_board_order", + "type": "INT", + "null": false + }, + "kanban_board_created_at": { + "name": "kanban_board_created_at", + "type": "DATETIME", + "null": false + }, + "kanban_board_created_by": { + "name": "kanban_board_created_by", + "type": "INT", + "null": false, + "foreignTable": "account", + "foreignKey": "account_id" + } + } + }, + "kanban_column": { + "name": "kanban_column", + "fields": { + "kanban_column_id": { + "name": "kanban_column_id", + "type": "INT", + "null": false, + "primary": true, + "autoincrement": true + }, + "kanban_column_name": { + "name": "kanban_column_name", + "type": "VARCHAR(255)", + "null": false + }, + "kanban_column_order": { + "name": "kanban_column_order", + "type": "INT", + "null": false + }, + "kanban_column_board": { + "name": "kanban_column_board", + "type": "INT", + "null": false, + "foreignTable": "kanban_board", + "foreignKey": "kanban_board_id" + } + } + }, + "kanban_card": { + "name": "kanban_card", + "fields": { + "kanban_card_id": { + "name": "kanban_card_id", + "type": "INT", + "null": false, + "primary": true, + "autoincrement": true + }, + "kanban_card_name": { + "name": "kanban_card_name", + "type": "VARCHAR(255)", + "null": false + }, + "kanban_card_description": { + "name": "kanban_card_description", + "type": "TEXT", + "default": null, + "null": true + }, + "kanban_card_type": { + "name": "kanban_card_type", + "type": "TINYINT", + "null": false + }, + "kanban_card_status": { + "name": "kanban_card_status", + "type": "TINYINT", + "null": false + }, + "kanban_card_order": { + "name": "kanban_card_order", + "type": "INT", + "null": false + }, + "kanban_card_ref": { + "name": "kanban_card_ref", + "type": "INT", + "null": false + }, + "kanban_card_column": { + "name": "kanban_card_column", + "type": "INT", + "null": false, + "foreignTable": "kanban_column", + "foreignKey": "kanban_column_id" + }, + "kanban_card_created_at": { + "name": "kanban_card_created_at", + "type": "DATETIME", + "null": false + }, + "kanban_card_created_by": { + "name": "kanban_card_created_by", + "type": "INT", + "null": false, + "foreignTable": "account", + "foreignKey": "account_id" + } + } + }, + "kanban_card_media": { + "name": "kanban_card_media", + "fields": { + "kanban_card_media_id": { + "name": "kanban_card_media_id", + "type": "INT", + "null": false, + "primary": true, + "autoincrement": true + }, + "kanban_card_media_src": { + "name": "kanban_card_media_src", + "type": "INT", + "null": false, + "foreignTable": "kanban_card", + "foreignKey": "kanban_card_id" + }, + "kanban_card_media_dst": { + "name": "kanban_card_media_dst", + "type": "INT", + "null": false, + "foreignTable": "media", + "foreignKey": "media_id" + } + } + }, + "kanban_card_comment": { + "name": "kanban_card_comment", + "fields": { + "kanban_card_comment_id": { + "name": "kanban_card_comment_id", + "type": "INT", + "null": false, + "primary": true, + "autoincrement": true + }, + "kanban_card_comment_description": { + "name": "kanban_card_comment_description", + "type": "TEXT", + "default": null, + "null": true + }, + "kanban_card_comment_card": { + "name": "kanban_card_comment_card", + "type": "INT", + "null": false, + "foreignTable": "kanban_card", + "foreignKey": "kanban_card_id" + }, + "kanban_card_comment_created_at": { + "name": "kanban_card_comment_created_at", + "type": "DATETIME", + "null": false + }, + "kanban_card_comment_created_by": { + "name": "kanban_card_comment_created_by", + "type": "INT", + "null": false, + "foreignTable": "account", + "foreignKey": "account_id" + } + } + }, + "kanban_card_comment_media": { + "name": "kanban_card_comment_media", + "fields": { + "kanban_card_comment_media_id": { + "name": "kanban_card_comment_media_id", + "type": "INT", + "null": false, + "primary": true, + "autoincrement": true + }, + "kanban_card_comment_media_src": { + "name": "kanban_card_comment_media_src", + "type": "INT", + "null": false, + "foreignTable": "kanban_card_comment", + "foreignKey": "kanban_card_comment_id" + }, + "kanban_card_comment_media_dst": { + "name": "kanban_card_comment_media_dst", + "type": "INT", + "null": false, + "foreignTable": "media", + "foreignKey": "media_id" + } + } + } +} \ No newline at end of file diff --git a/Admin/Installer.php b/Admin/Installer.php index af2224a..fc5d5e9 100644 --- a/Admin/Installer.php +++ b/Admin/Installer.php @@ -14,13 +14,10 @@ declare(strict_types=1); namespace Modules\Kanban\Admin; -use phpOMS\DataStorage\Database\DatabasePool; -use phpOMS\DataStorage\Database\DatabaseType; -use phpOMS\Module\InfoManager; use phpOMS\Module\InstallerAbstract; /** - * Tasks install class. + * Installer class. * * @package Modules\Kanban\Admin * @license OMS License 1.0 @@ -29,182 +26,4 @@ use phpOMS\Module\InstallerAbstract; */ class Installer extends InstallerAbstract { - - /** - * {@inheritdoc} - */ - public static function install(DatabasePool $dbPool, InfoManager $info) : void - { - parent::install($dbPool, $info); - - switch ($dbPool->get()->getType()) { - case DatabaseType::MYSQL: - $dbPool->get()->con->prepare( - 'CREATE TABLE if NOT EXISTS `' . $dbPool->get()->prefix . 'kanban_board` ( - `kanban_board_id` int(11) NOT NULL AUTO_INCREMENT, - `kanban_board_name` varchar(255) NOT NULL, - `kanban_board_status` int(11) NOT NULL, - `kanban_board_order` int(11) NOT NULL, - `kanban_board_desc` text DEFAULT NULL, - `kanban_board_created_at` datetime DEFAULT NULL, - `kanban_board_created_by` int(11) DEFAULT NULL, - PRIMARY KEY (`kanban_board_id`), - KEY `kanban_board_created_by` (`kanban_board_created_by`) - )ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;' - )->execute(); - - $dbPool->get()->con->prepare( - 'ALTER TABLE `' . $dbPool->get()->prefix . 'kanban_board` - ADD CONSTRAINT `' . $dbPool->get()->prefix . 'kanban_board_ibfk_1` FOREIGN KEY (`kanban_board_created_by`) REFERENCES `' . $dbPool->get()->prefix . 'account` (`account_id`);' - )->execute(); - - $dbPool->get()->con->prepare( - 'CREATE TABLE if NOT EXISTS `' . $dbPool->get()->prefix . 'kanban_column` ( - `kanban_column_id` int(11) NOT NULL AUTO_INCREMENT, - `kanban_column_name` varchar(255) NOT NULL, - `kanban_column_order` int(11) NOT NULL, - `kanban_column_board` int(11) NOT NULL, - PRIMARY KEY (`kanban_column_id`), - KEY `kanban_column_board` (`kanban_column_board`) - )ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;' - )->execute(); - - $dbPool->get()->con->prepare( - 'ALTER TABLE `' . $dbPool->get()->prefix . 'kanban_column` - ADD CONSTRAINT `' . $dbPool->get()->prefix . 'kanban_column_ibfk_1` FOREIGN KEY (`kanban_column_board`) REFERENCES `' . $dbPool->get()->prefix . 'kanban_board` (`kanban_board_id`);' - )->execute(); - - $dbPool->get()->con->prepare( - 'CREATE TABLE if NOT EXISTS `' . $dbPool->get()->prefix . 'kanban_card` ( - `kanban_card_id` int(11) NOT NULL AUTO_INCREMENT, - `kanban_card_name` varchar(255) NOT NULL, - `kanban_card_description` text NOT NULL, - `kanban_card_type` int(2) NOT NULL, - `kanban_card_status` int(2) NOT NULL, - `kanban_card_order` int(11) NOT NULL, - `kanban_card_ref` int(11) DEFAULT NULL, - `kanban_card_column` int(11) NOT NULL, - `kanban_card_created_at` datetime DEFAULT NULL, - `kanban_card_created_by` int(11) DEFAULT NULL, - PRIMARY KEY (`kanban_card_id`), - KEY `kanban_card_column` (`kanban_card_column`), - KEY `kanban_card_created_by` (`kanban_card_created_by`) - )ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;' - )->execute(); - - $dbPool->get()->con->prepare( - 'ALTER TABLE `' . $dbPool->get()->prefix . 'kanban_card` - ADD CONSTRAINT `' . $dbPool->get()->prefix . 'kanban_card_ibfk_1` FOREIGN KEY (`kanban_card_column`) REFERENCES `' . $dbPool->get()->prefix . 'kanban_column` (`kanban_column_id`), - ADD CONSTRAINT `' . $dbPool->get()->prefix . 'kanban_card_ibfk_2` FOREIGN KEY (`kanban_card_created_by`) REFERENCES `' . $dbPool->get()->prefix . 'account` (`account_id`);' - )->execute(); - - $dbPool->get()->con->prepare( - 'CREATE TABLE if NOT EXISTS `' . $dbPool->get()->prefix . 'kanban_card_media` ( - `kanban_card_media_id` int(11) NOT NULL AUTO_INCREMENT, - `kanban_card_media_dst` int(11) NOT NULL, - `kanban_card_media_src` int(11) NOT NULL, - PRIMARY KEY (`kanban_card_media_id`), - KEY `kanban_card_media_dst` (`kanban_card_media_dst`), - KEY `kanban_card_media_src` (`kanban_card_media_src`) - )ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;' - )->execute(); - - $dbPool->get()->con->prepare( - 'ALTER TABLE `' . $dbPool->get()->prefix . 'kanban_card_media` - ADD CONSTRAINT `' . $dbPool->get()->prefix . 'kanban_card_media_ibfk_1` FOREIGN KEY (`kanban_card_media_dst`) REFERENCES `' . $dbPool->get()->prefix . 'media` (`media_id`), - ADD CONSTRAINT `' . $dbPool->get()->prefix . 'kanban_card_media_ibfk_2` FOREIGN KEY (`kanban_card_media_src`) REFERENCES `' . $dbPool->get()->prefix . 'kanban_card` (`kanban_card_id`);' - )->execute(); - - // Task comments and these comments need to be merged which is bad but not every kanban card is a task and task info should be here as well. - $dbPool->get()->con->prepare( - 'CREATE TABLE if NOT EXISTS `' . $dbPool->get()->prefix . 'kanban_card_comment` ( - `kanban_card_comment_id` int(11) NOT NULL AUTO_INCREMENT, - `kanban_card_comment_description` text NOT NULL, - `kanban_card_comment_card` int(11) NOT NULL, - `kanban_card_comment_created_at` datetime DEFAULT NULL, - `kanban_card_comment_created_by` int(11) DEFAULT NULL, - PRIMARY KEY (`kanban_card_comment_id`), - KEY `kanban_card_comment_card` (`kanban_card_comment_card`), - KEY `kanban_card_comment_created_by` (`kanban_card_comment_created_by`) - )ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;' - )->execute(); - - $dbPool->get()->con->prepare( - 'ALTER TABLE `' . $dbPool->get()->prefix . 'kanban_card_comment` - ADD CONSTRAINT `' . $dbPool->get()->prefix . 'kanban_card_comment_ibfk_1` FOREIGN KEY (`kanban_card_comment_card`) REFERENCES `' . $dbPool->get()->prefix . 'kanban_card` (`kanban_card_id`), - ADD CONSTRAINT `' . $dbPool->get()->prefix . 'kanban_card_comment_ibfk_2` FOREIGN KEY (`kanban_card_comment_created_by`) REFERENCES `' . $dbPool->get()->prefix . 'account` (`account_id`);' - )->execute(); - - $dbPool->get()->con->prepare( - 'CREATE TABLE if NOT EXISTS `' . $dbPool->get()->prefix . 'kanban_card_comment_media` ( - `kanban_card_comment_media_id` int(11) NOT NULL AUTO_INCREMENT, - `kanban_card_comment_media_dst` int(11) NOT NULL, - `kanban_card_comment_media_src` int(11) NOT NULL, - PRIMARY KEY (`kanban_card_comment_media_id`), - KEY `kanban_card_comment_media_dst` (`kanban_card_comment_media_dst`), - KEY `kanban_card_comment_media_src` (`kanban_card_comment_media_src`) - )ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;' - )->execute(); - - $dbPool->get()->con->prepare( - 'ALTER TABLE `' . $dbPool->get()->prefix . 'kanban_card_comment_media` - ADD CONSTRAINT `' . $dbPool->get()->prefix . 'kanban_card_comment_media_ibfk_1` FOREIGN KEY (`kanban_card_comment_media_dst`) REFERENCES `' . $dbPool->get()->prefix . 'media` (`media_id`), - ADD CONSTRAINT `' . $dbPool->get()->prefix . 'kanban_card_comment_media_ibfk_2` FOREIGN KEY (`kanban_card_comment_media_src`) REFERENCES `' . $dbPool->get()->prefix . 'kanban_card_comment` (`kanban_card_comment_id`);' - )->execute(); - - $dbPool->get()->con->prepare( - 'CREATE TABLE if NOT EXISTS `' . $dbPool->get()->prefix . 'kanban_activity` ( - `kanban_activity_id` int(11) NOT NULL AUTO_INCREMENT, - `kanban_activity_type` varchar(50) NOT NULL, - `kanban_activity_subtype` int(2) NOT NULL, - `kanban_activity_board` int(11) NOT NULL, - `kanban_activity_old` varchar(255) NOT NULL, - `kanban_activity_new` varchar(255) NOT NULL, - `kanban_activity_by` int(11) DEFAULT NULL, - PRIMARY KEY (`kanban_activity_id`), - KEY `kanban_activity_by` (`kanban_activity_by`) - )ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;' - )->execute(); - - $dbPool->get()->con->prepare( - 'ALTER TABLE `' . $dbPool->get()->prefix . 'kanban_activity` - ADD CONSTRAINT `' . $dbPool->get()->prefix . 'kanban_activity_ibfk_1` FOREIGN KEY (`kanban_activity_by`) REFERENCES `' . $dbPool->get()->prefix . 'account` (`account_id`);' - )->execute(); - - $dbPool->get()->con->prepare( - 'CREATE TABLE if NOT EXISTS `' . $dbPool->get()->prefix . 'kanban_label` ( - `kanban_label_id` int(11) NOT NULL AUTO_INCREMENT, - `kanban_label_name` varchar(255) NOT NULL, - `kanban_label_color` int(11) NOT NULL, - `kanban_label_board` int(11) NOT NULL, - PRIMARY KEY (`kanban_label_id`), - KEY `kanban_label_board` (`kanban_label_board`) - )ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;' - )->execute(); - - $dbPool->get()->con->prepare( - 'CREATE TABLE if NOT EXISTS `' . $dbPool->get()->prefix . 'kanban_label_relation` ( - `kanban_label_relation_id` int(11) NOT NULL AUTO_INCREMENT, - `kanban_label_relation_card` int(11) NOT NULL, - `kanban_label_relation_label` int(11) NOT NULL, - PRIMARY KEY (`kanban_label_relation_id`), - KEY `kanban_label_relation_card` (`kanban_label_relation_card`), - KEY `kanban_label_relation_label` (`kanban_label_relation_label`) - )ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;' - )->execute(); - - $dbPool->get()->con->prepare( - 'CREATE TABLE if NOT EXISTS `' . $dbPool->get()->prefix . 'kanban_permission` ( - `kanban_permission_id` int(11) NOT NULL AUTO_INCREMENT, - `kanban_permission_permission` int(11) NOT NULL, - `kanban_permission_board` int(11) NOT NULL, - `kanban_permission_account` int(11) NOT NULL, - PRIMARY KEY (`kanban_permission_id`), - KEY `kanban_permission_board` (`kanban_permission_board`), - KEY `kanban_permission_account` (`kanban_permission_account`) - )ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;' - )->execute(); - break; - } - } } diff --git a/Models/KanbanCardMapper.php b/Models/KanbanCardMapper.php index f6641ad..ee84d8b 100644 --- a/Models/KanbanCardMapper.php +++ b/Models/KanbanCardMapper.php @@ -68,12 +68,6 @@ final class KanbanCardMapper extends DataMapperAbstract 'dst' => 'kanban_card_media_dst', 'src' => 'kanban_card_media_src', ], - 'labels' => [ - 'mapper' => KanbanLabelMapper::class, - 'table' => 'kanban_label_relation', - 'dst' => 'kanban_label_relation_card', - 'src' => 'kanban_label_relation_label', - ], 'comments' => [ 'mapper' => KanbanCardCommentMapper::class, 'table' => 'kanban_card_comment', diff --git a/Models/KanbanLabel.php b/Models/KanbanLabel.php deleted file mode 100644 index 5c4fd3b..0000000 --- a/Models/KanbanLabel.php +++ /dev/null @@ -1,78 +0,0 @@ -id; - } - public function getName() : string - { - return $this->name; - } - - public function setName(string $name) : void - { - $this->name = $name; - } - - public function setColor(int $color) : void - { - $this->color = $color; - } - - public function getColor() : int - { - return $this->color; - } - - public function getBoard() : int - { - return $this->board; - } - - public function setBoard(int $board) : void - { - $this->board = $board; - } - - public function jsonSerialize() : array - { - return []; - } -} diff --git a/Models/KanbanLabelMapper.php b/Models/KanbanLabelMapper.php deleted file mode 100644 index 33c8f2b..0000000 --- a/Models/KanbanLabelMapper.php +++ /dev/null @@ -1,58 +0,0 @@ -> - * @since 1.0.0 - */ - protected static $columns = [ - 'kanban_label_id' => ['name' => 'kanban_label_id', 'type' => 'int', 'internal' => 'id'], - 'kanban_label_name' => ['name' => 'kanban_label_name', 'type' => 'string', 'internal' => 'name'], - 'kanban_label_color' => ['name' => 'kanban_label_color', 'type' => 'int', 'internal' => 'color'], - 'kanban_label_board' => ['name' => 'kanban_label_board', 'type' => 'int', 'internal' => 'board'], - ]; - - /** - * Primary table. - * - * @var string - * @since 1.0.0 - */ - protected static $table = 'kanban_label'; - - /** - * Primary field name. - * - * @var string - * @since 1.0.0 - */ - protected static $primaryField = 'kanban_label_id'; -}