From e7503e8f55c9192b9f4a0c5d23b3a3678be90d96 Mon Sep 17 00:00:00 2001 From: johnnyq Date: Fri, 4 Jul 2025 16:52:30 -0400 Subject: [PATCH] Initial DB work to Generalize Payment Providers, allow multiple payment providers and client payment methods, also to move payment methods to its own table instead of in categories, started work on ai provider ui models --- admin_settings_ai.php | 2 +- database_updates.php | 50 +++++++++++++++++-- db.sql | 66 +++++++++++++++++++++++- includes/database_version.php | 2 +- modals/admin_ai_add_ai_model_modal.php | 58 ++++++++++++++++++++++ modals/admin_ai_add_provider_modal.php | 69 ++++++++++++++++++++++++++ 6 files changed, 241 insertions(+), 6 deletions(-) create mode 100644 modals/admin_ai_add_ai_model_modal.php create mode 100644 modals/admin_ai_add_provider_modal.php diff --git a/admin_settings_ai.php b/admin_settings_ai.php index 894859b8..1f8d28f3 100644 --- a/admin_settings_ai.php +++ b/admin_settings_ai.php @@ -12,7 +12,7 @@ require_once "includes/inc_all_admin.php";
- +
diff --git a/database_updates.php b/database_updates.php index f09e7a63..55970285 100644 --- a/database_updates.php +++ b/database_updates.php @@ -3705,10 +3705,54 @@ if (LATEST_DATABASE_VERSION > CURRENT_DATABASE_VERSION) { mysqli_query($mysqli, "UPDATE `settings` SET `config_current_database_version` = '2.2.2'"); } - // if (CURRENT_DATABASE_VERSION == '2.2.2') { - // // Insert queries here required to update to DB version 2.2.3 + if (CURRENT_DATABASE_VERSION == '2.2.2') { + mysqli_query($mysqli, "CREATE TABLE `payment_methods` ( + `payment_method_id` INT(11) NOT NULL AUTO_INCREMENT, + `payment_method_name` VARCHAR(200) NOT NULL, + `payment_method_description` VARCHAR(250) DEFAULT NULL, + `payment_method_provider_id` INT(1) DEFAULT 0, + `payment_method_created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, + `payment_method_updated_at` DATETIME NULL ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`payment_method_id`) + )"); + + mysqli_query($mysqli, "CREATE TABLE `payment_providers` ( + `payment_provider_id` INT(11) NOT NULL AUTO_INCREMENT, + `payment_provider_name` VARCHAR(200) NOT NULL, + `payment_provider_description` VARCHAR(250) DEFAULT NULL, + `payment_provider_public_key` VARCHAR(250) DEFAULT NULL, + `payment_provider_private_key` VARCHAR(250) DEFAULT NULL, + `payment_provider_threshold` DECIMAL(15,2) DEFAULT NULL, + `payment_provider_active` TINYINT(1) NOT NULL DEFAULT 1, + `payment_provider_account` INT(11) NOT NULL, + `payment_provider_expense_vendor` INT(11) NOT NULL DEFAULT 0, + `payment_provider_expense_category` INT(11) NOT NULL DEFAULT 0, + `payment_provider_expense_percentage_fee` DECIMAL(4,4) DEFAULT NULL, + `payment_provider_expense_flat_fee` DECIMAL(15,2) DEFAULT NULL, + `payment_provider_created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, + `payment_provider_updated_at` DATETIME NULL ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`payment_provider_id`) + )"); + + mysqli_query($mysqli, "CREATE TABLE `cient_saved_payment_methods` ( + `saved_payment_id` INT(11) NOT NULL AUTO_INCREMENT, + `saved_payment_provider_client` VARCHAR(200) NOT NULL, + `saved_payment_provider_method` VARCHAR(200) NOT NULL, + `saved_payment_details` VARCHAR(200) DEFAULT NULL, + `saved_payment_client_id` INT(11) NOT NULL, + `saved_payment_provider_id` INT(11) NOT NULL, + `saved_payment_created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, + `saved_payment_updated_at` DATETIME NULL ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`saved_payment_id`) + )"); + + mysqli_query($mysqli, "UPDATE `settings` SET `config_current_database_version` = '2.2.3'"); + } + + // if (CURRENT_DATABASE_VERSION == '2.2.3') { + // // Insert queries here required to update to DB version 2.2.4 // // Then, update the database to the next sequential version - // mysqli_query($mysqli, "UPDATE `settings` SET `config_current_database_version` = '2.2.3'"); + // mysqli_query($mysqli, "UPDATE `settings` SET `config_current_database_version` = '2.2.4'"); // } } else { diff --git a/db.sql b/db.sql index d73df616..a226a229 100644 --- a/db.sql +++ b/db.sql @@ -486,6 +486,26 @@ CREATE TABLE `certificates` ( ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; /*!40101 SET character_set_client = @saved_cs_client */; +-- +-- Table structure for table `cient_saved_payment_methods` +-- + +DROP TABLE IF EXISTS `cient_saved_payment_methods`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `cient_saved_payment_methods` ( + `saved_payment_id` int(11) NOT NULL AUTO_INCREMENT, + `saved_payment_provider_client` varchar(200) NOT NULL, + `saved_payment_provider_method` varchar(200) NOT NULL, + `saved_payment_details` varchar(200) DEFAULT NULL, + `saved_payment_client_id` int(11) NOT NULL, + `saved_payment_provider_id` int(11) NOT NULL, + `saved_payment_created_at` datetime NOT NULL DEFAULT current_timestamp(), + `saved_payment_updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(), + PRIMARY KEY (`saved_payment_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + -- -- Table structure for table `client_notes` -- @@ -1300,6 +1320,50 @@ CREATE TABLE `notifications` ( ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; /*!40101 SET character_set_client = @saved_cs_client */; +-- +-- Table structure for table `payment_methods` +-- + +DROP TABLE IF EXISTS `payment_methods`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `payment_methods` ( + `payment_method_id` int(11) NOT NULL AUTO_INCREMENT, + `payment_method_name` varchar(200) NOT NULL, + `payment_method_description` varchar(250) DEFAULT NULL, + `payment_method_provider_id` int(1) DEFAULT 0, + `payment_method_created_at` datetime NOT NULL DEFAULT current_timestamp(), + `payment_method_updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(), + PRIMARY KEY (`payment_method_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `payment_providers` +-- + +DROP TABLE IF EXISTS `payment_providers`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `payment_providers` ( + `payment_provider_id` int(11) NOT NULL AUTO_INCREMENT, + `payment_provider_name` varchar(200) NOT NULL, + `payment_provider_description` varchar(250) DEFAULT NULL, + `payment_provider_public_key` varchar(250) DEFAULT NULL, + `payment_provider_private_key` varchar(250) DEFAULT NULL, + `payment_provider_threshold` decimal(15,2) DEFAULT NULL, + `payment_provider_active` tinyint(1) NOT NULL DEFAULT 1, + `payment_provider_account` int(11) NOT NULL, + `payment_provider_expense_vendor` int(11) NOT NULL DEFAULT 0, + `payment_provider_expense_category` int(11) NOT NULL DEFAULT 0, + `payment_provider_expense_percentage_fee` decimal(4,4) DEFAULT NULL, + `payment_provider_expense_flat_fee` decimal(15,2) DEFAULT NULL, + `payment_provider_created_at` datetime NOT NULL DEFAULT current_timestamp(), + `payment_provider_updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(), + PRIMARY KEY (`payment_provider_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + -- -- Table structure for table `payments` -- @@ -2628,4 +2692,4 @@ CREATE TABLE `vendors` ( /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; --- Dump completed on 2025-07-04 15:39:35 +-- Dump completed on 2025-07-04 16:50:41 diff --git a/includes/database_version.php b/includes/database_version.php index 023e9a12..e9eef2e5 100644 --- a/includes/database_version.php +++ b/includes/database_version.php @@ -5,4 +5,4 @@ * It is used in conjunction with database_updates.php */ -DEFINE("LATEST_DATABASE_VERSION", "2.2.2"); +DEFINE("LATEST_DATABASE_VERSION", "2.2.3"); diff --git a/modals/admin_ai_add_ai_model_modal.php b/modals/admin_ai_add_ai_model_modal.php new file mode 100644 index 00000000..ea8b8e9a --- /dev/null +++ b/modals/admin_ai_add_ai_model_modal.php @@ -0,0 +1,58 @@ +
+ \ No newline at end of file diff --git a/modals/admin_ai_add_provider_modal.php b/modals/admin_ai_add_provider_modal.php new file mode 100644 index 00000000..5ad9d46c --- /dev/null +++ b/modals/admin_ai_add_provider_modal.php @@ -0,0 +1,69 @@ +
+