diff --git a/Admin/Install/db.json b/Admin/Install/db.json new file mode 100644 index 0000000..a3c07d5 --- /dev/null +++ b/Admin/Install/db.json @@ -0,0 +1,178 @@ +{ + "workflow": { + "name": "workflow", + "fields": { + "workflow_id": { + "name": "workflow_id", + "type": "INT", + "null": false, + "primary": true, + "autoincrement": true + }, + "workflow_name": { + "name": "workflow_name", + "type": "VARCHAR(255)", + "default": null, + "null": true + }, + "workflow_status": { + "name": "workflow_status", + "type": "INT", + "null": false + }, + "workflow_desc": { + "name": "workflow_desc", + "type": "TEXT", + "default": null, + "null": true + }, + "workflow_created": { + "name": "workflow_created", + "type": "DATETIME", + "null": false + }, + "workflow_created_by": { + "name": "workflow_created_by", + "type": "INT", + "null": false, + "foreignTable": "account", + "foreignKey": "account_id" + } + } + }, + "workflow_media": { + "name": "workflow_media", + "fields": { + "workflow_media_id": { + "name": "workflow_media_id", + "type": "INT", + "null": false, + "primary": true, + "autoincrement": true + }, + "workflow_media_media": { + "name": "workflow_media_media", + "type": "INT", + "null": false, + "foreignTable": "media", + "foreignKey": "media_id" + }, + "workflow_media_workflow": { + "name": "workflow_media_workflow", + "type": "INT", + "null": false, + "foreignTable": "workflow", + "foreignKey": "workflow_id" + }, + "workflow_media_type": { + "name": "workflow_media_type", + "type": "TINYINT", + "null": false + } + } + }, + "workflow_element": { + "name": "workflow_element", + "fields": { + "workflow_element_id": { + "name": "workflow_element_id", + "type": "INT", + "null": false, + "primary": true, + "autoincrement": true + }, + "workflow_element_name": { + "name": "workflow_element_name", + "type": "VARCHAR(255)", + "null": false + }, + "workflow_element_status": { + "name": "workflow_element_status", + "type": "INT", + "null": false + }, + "workflow_element_data": { + "name": "workflow_element_data", + "type": "TEXT", + "null": false + }, + "workflow_element_desc": { + "name": "workflow_element_desc", + "type": "TEXT", + "default": null, + "null": true + }, + "workflow_element_created": { + "name": "workflow_element_created", + "type": "DATETIME", + "null": false + }, + "workflow_element_created_by": { + "name": "workflow_element_created_by", + "type": "INT", + "null": false, + "foreignTable": "account", + "foreignKey": "account_id" + }, + "workflow_element_workflow": { + "name": "workflow_element_workflow", + "type": "INT", + "null": false, + "foreignTable": "workflow", + "foreignKey": "workflow_id" + } + } + }, + "workflow_element_media": { + "name": "workflow_element_media", + "fields": { + "workflow_element_media_id": { + "name": "workflow_element_media_id", + "type": "INT", + "null": false, + "primary": true, + "autoincrement": true + }, + "workflow_element_media_media": { + "name": "workflow_element_media_media", + "type": "INT", + "null": false, + "foreignTable": "media", + "foreignKey": "media_id" + }, + "workflow_element_media_workflow_element": { + "name": "workflow_element_media_workflow_element", + "type": "INT", + "null": false, + "foreignTable": "workflow_element", + "foreignKey": "workflow_element_id" + } + } + }, + "workflow_element_task": { + "name": "workflow_element_task", + "fields": { + "workflow_element_task_id": { + "name": "workflow_element_task_id", + "type": "INT", + "null": false, + "primary": true, + "autoincrement": true + }, + "workflow_element_task_task": { + "name": "workflow_element_task_task", + "type": "INT", + "null": false, + "foreignTable": "task", + "foreignKey": "task_id" + }, + "workflow_element_task_workflow_element": { + "name": "workflow_element_task_workflow_element", + "type": "INT", + "null": false, + "foreignTable": "workflow_element", + "foreignKey": "workflow_element_id" + } + } + } +} \ No newline at end of file diff --git a/Admin/Installer.php b/Admin/Installer.php index 3702cda..ec98745 100644 --- a/Admin/Installer.php +++ b/Admin/Installer.php @@ -14,9 +14,6 @@ declare(strict_types=1); namespace Modules\Workflow\Admin; -use phpOMS\DataStorage\Database\DatabasePool; -use phpOMS\DataStorage\Database\DatabaseType; -use phpOMS\Module\InfoManager; use phpOMS\Module\InstallerAbstract; /** @@ -29,108 +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 . 'workflow` ( - `workflow_id` int(11) NOT NULL AUTO_INCREMENT, - `workflow_name` varchar(50) NOT NULL, - `workflow_status` int(11) NOT NULL, - `workflow_desc` varchar(100) DEFAULT NULL, - `workflow_created` datetime DEFAULT NULL, - `workflow_created_by` int(11) DEFAULT NULL, - PRIMARY KEY (`workflow_id`), - KEY `workflow_created_by` (`workflow_created_by`) - )ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;' - )->execute(); - - $dbPool->get()->con->prepare( - 'ALTER TABLE `' . $dbPool->get()->prefix . 'workflow` - ADD CONSTRAINT `' . $dbPool->get()->prefix . 'workflow_ibfk_1` FOREIGN KEY (`workflow_created_by`) REFERENCES `' . $dbPool->get()->prefix . 'account` (`account_id`);' - )->execute(); - - $dbPool->get()->con->prepare( - 'CREATE TABLE if NOT EXISTS `' . $dbPool->get()->prefix . 'workflow_media` ( - `workflow_media_id` int(11) NOT NULL AUTO_INCREMENT, - `workflow_media_media` int(11) NOT NULL, - `workflow_media_workflow` int(11) NOT NULL, - `workflow_media_type` int(3) DEFAULT NULL, - PRIMARY KEY (`workflow_media_id`), - KEY `workflow_media_media` (`workflow_media_media`), - KEY `workflow_media_workflow` (`workflow_media_workflow`) - )ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;' - )->execute(); - - $dbPool->get()->con->prepare( - 'ALTER TABLE `' . $dbPool->get()->prefix . 'workflow_media` - ADD CONSTRAINT `' . $dbPool->get()->prefix . 'workflow_media_ibfk_1` FOREIGN KEY (`workflow_media_media`) REFERENCES `' . $dbPool->get()->prefix . 'media` (`media_id`), - ADD CONSTRAINT `' . $dbPool->get()->prefix . 'workflow_media_ibfk_2` FOREIGN KEY (`workflow_media_workflow`) REFERENCES `' . $dbPool->get()->prefix . 'workflow` (`workflow_id`);' - )->execute(); - - $dbPool->get()->con->prepare( - 'CREATE TABLE if NOT EXISTS `' . $dbPool->get()->prefix . 'workflow_element` ( - `workflow_element_id` int(11) NOT NULL AUTO_INCREMENT, - `workflow_element_name` varchar(50) NOT NULL, - `workflow_element_status` int(11) NOT NULL, - `workflow_element_data` text NOT NULL, - `workflow_element_desc` varchar(100) DEFAULT NULL, - `workflow_element_created` datetime DEFAULT NULL, - `workflow_element_created_by` int(11) DEFAULT NULL, - `workflow_element_workflow` int(11) DEFAULT NULL, - PRIMARY KEY (`workflow_element_id`), - KEY `workflow_element_created_by` (`workflow_element_created_by`), - KEY `workflow_element_workflow` (`workflow_element_workflow`) - )ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;' - )->execute(); - - $dbPool->get()->con->prepare( - 'ALTER TABLE `' . $dbPool->get()->prefix . 'workflow_element` - ADD CONSTRAINT `' . $dbPool->get()->prefix . 'workflow_element_ibfk_1` FOREIGN KEY (`workflow_element_created_by`) REFERENCES `' . $dbPool->get()->prefix . 'account` (`account_id`), - ADD CONSTRAINT `' . $dbPool->get()->prefix . 'workflow_element_ibfk_2` FOREIGN KEY (`workflow_element_workflow`) REFERENCES `' . $dbPool->get()->prefix . 'workflow` (`workflow_id`);' - )->execute(); - - $dbPool->get()->con->prepare( - 'CREATE TABLE if NOT EXISTS `' . $dbPool->get()->prefix . 'workflow_element_media` ( - `workflow_element_media_id` int(11) NOT NULL AUTO_INCREMENT, - `workflow_element_media_media` int(11) NOT NULL, - `workflow_element_media_workflow_element` int(11) NOT NULL, - PRIMARY KEY (`workflow_element_media_id`), - KEY `workflow_element_media_media` (`workflow_element_media_media`), - KEY `workflow_element_media_workflow_element` (`workflow_element_media_workflow_element`) - )ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;' - )->execute(); - - $dbPool->get()->con->prepare( - 'ALTER TABLE `' . $dbPool->get()->prefix . 'workflow_element_media` - ADD CONSTRAINT `' . $dbPool->get()->prefix . 'workflow_element_media_ibfk_1` FOREIGN KEY (`workflow_element_media_media`) REFERENCES `' . $dbPool->get()->prefix . 'media` (`media_id`), - ADD CONSTRAINT `' . $dbPool->get()->prefix . 'workflow_element_media_ibfk_2` FOREIGN KEY (`workflow_element_media_workflow_element`) REFERENCES `' . $dbPool->get()->prefix . 'workflow_element` (`workflow_element_id`);' - )->execute(); - - $dbPool->get()->con->prepare( - 'CREATE TABLE if NOT EXISTS `' . $dbPool->get()->prefix . 'workflow_element_task` ( - `workflow_element_task_id` int(11) NOT NULL AUTO_INCREMENT, - `workflow_element_task_task` int(11) NOT NULL, - `workflow_element_task_workflow_element` int(11) NOT NULL, - PRIMARY KEY (`workflow_element_task_id`), - KEY `workflow_element_task_task` (`workflow_element_task_task`), - KEY `workflow_element_task_workflow_element` (`workflow_element_task_workflow_element`) - )ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;' - )->execute(); - - $dbPool->get()->con->prepare( - 'ALTER TABLE `' . $dbPool->get()->prefix . 'workflow_element_task` - ADD CONSTRAINT `' . $dbPool->get()->prefix . 'workflow_element_task_ibfk_1` FOREIGN KEY (`workflow_element_task_task`) REFERENCES `' . $dbPool->get()->prefix . 'task` (`task_id`), - ADD CONSTRAINT `' . $dbPool->get()->prefix . 'workflow_element_task_ibfk_2` FOREIGN KEY (`workflow_element_task_workflow_element`) REFERENCES `' . $dbPool->get()->prefix . 'workflow_element` (`workflow_element_id`);' - )->execute(); - break; - } - } }