From 03e0dd8f5ef44e35d0f9f7cd1b60594f13f90ff3 Mon Sep 17 00:00:00 2001 From: johnnyq Date: Sun, 7 May 2023 21:43:20 -0400 Subject: [PATCH] Initial DB Structure for Projects and Tasks with Ticket and Client Linkage --- database_updates.php | 38 ++++++++++++++++++++++++++++++++++-- database_version.php | 2 +- db.sql | 46 +++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 82 insertions(+), 4 deletions(-) diff --git a/database_updates.php b/database_updates.php index 756da437..f58e1d3f 100644 --- a/database_updates.php +++ b/database_updates.php @@ -1020,11 +1020,45 @@ if (LATEST_DATABASE_VERSION > CURRENT_DATABASE_VERSION) { mysqli_query($mysqli, "UPDATE `settings` SET `config_current_database_version` = '0.5.4'"); } - //if (CURRENT_DATABASE_VERSION == '0.5.4') { + if (CURRENT_DATABASE_VERSION == '0.5.4') { //Insert queries here required to update to DB version 0.5.5 + mysqli_query($mysqli, "CREATE TABLE `projects` ( + `project_id` int(11) NOT NULL AUTO_INCREMENT, + `project_template` tinyint(1) NOT NULL DEFAULT 0, + `project_name` varchar(255) NOT NULL, + `project_description` text NULL DEFAULT NULL, + `project_created_at` datetime NOT NULL DEFAULT current_timestamp(), + `project_updated_at` datetime NULL DEFAULT NULL on update CURRENT_TIMESTAMP, + `project_archived_at` datetime NULL DEFAULT NULL, + `project_client_id` int(11) NOT NULL DEFAULT 0, + PRIMARY KEY (`project_id`) + )"); + + mysqli_query($mysqli, "CREATE TABLE `tasks` ( + `task_id` int(11) NOT NULL AUTO_INCREMENT, + `task_template` tinyint(1) NOT NULL DEFAULT 0, + `task_name` varchar(255) NOT NULL, + `task_description` text NULL DEFAULT NULL, + `task_finish_date` date NULL DEFAULT NULL, + `task_status` varchar(255) NULL DEFAULT NULL, + `task_completed_at` datetime NULL DEFAULT NULL, + `task_completed_by` int(11) NULL DEFAULT NULL, + `task_created_at` datetime NOT NULL DEFAULT current_timestamp(), + `task_updated_at` datetime NULL DEFAULT NULL on update CURRENT_TIMESTAMP, + `task_ticket_id` int(11) NULL DEFAULT NULL, + `task_project_id` int(11) NULL DEFAULT NULL, + PRIMARY KEY (`task_id`) + )"); // Then, update the database to the next sequential version - //mysqli_query($mysqli, "UPDATE `settings` SET `config_current_database_version` = '0.5.5'"); + mysqli_query($mysqli, "UPDATE `settings` SET `config_current_database_version` = '0.5.5'"); + } + + //if (CURRENT_DATABASE_VERSION == '0.5.5') { + //Insert queries here required to update to DB version 0.5.6 + + // Then, update the database to the next sequential version + //mysqli_query($mysqli, "UPDATE `settings` SET `config_current_database_version` = '0.5.6'"); //} } else { diff --git a/database_version.php b/database_version.php index 4b8d15df..f52c69c3 100644 --- a/database_version.php +++ b/database_version.php @@ -5,4 +5,4 @@ * It is used in conjunction with database_updates.php */ -DEFINE("LATEST_DATABASE_VERSION", "0.5.4"); +DEFINE("LATEST_DATABASE_VERSION", "0.5.5"); diff --git a/db.sql b/db.sql index 0e17d64a..c9896506 100644 --- a/db.sql +++ b/db.sql @@ -810,6 +810,26 @@ CREATE TABLE `products` ( ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; /*!40101 SET character_set_client = @saved_cs_client */; +-- +-- Table structure for table `projects` +-- + +DROP TABLE IF EXISTS `projects`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `projects` ( + `project_id` int(11) NOT NULL AUTO_INCREMENT, + `project_template` tinyint(1) NOT NULL DEFAULT 0, + `project_name` varchar(255) NOT NULL, + `project_description` text DEFAULT NULL, + `project_created_at` datetime NOT NULL DEFAULT current_timestamp(), + `project_updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(), + `project_archived_at` datetime DEFAULT NULL, + `project_client_id` int(11) NOT NULL DEFAULT 0, + PRIMARY KEY (`project_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + -- -- Table structure for table `quotes` -- @@ -1267,6 +1287,30 @@ CREATE TABLE `tags` ( ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; /*!40101 SET character_set_client = @saved_cs_client */; +-- +-- Table structure for table `tasks` +-- + +DROP TABLE IF EXISTS `tasks`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `tasks` ( + `task_id` int(11) NOT NULL AUTO_INCREMENT, + `task_template` tinyint(1) NOT NULL DEFAULT 0, + `task_name` varchar(255) NOT NULL, + `task_description` text DEFAULT NULL, + `task_finish_date` date DEFAULT NULL, + `task_status` varchar(255) DEFAULT NULL, + `task_completed_at` datetime DEFAULT NULL, + `task_completed_by` int(11) DEFAULT NULL, + `task_created_at` datetime NOT NULL DEFAULT current_timestamp(), + `task_updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(), + `task_ticket_id` int(11) DEFAULT NULL, + `task_project_id` int(11) DEFAULT NULL, + PRIMARY KEY (`task_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + -- -- Table structure for table `taxes` -- @@ -1541,4 +1585,4 @@ CREATE TABLE `vendors` ( /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; --- Dump completed on 2023-05-07 21:08:34 +-- Dump completed on 2023-05-07 21:42:46