From 474109a5df0a06f5343ab184838fe2d80e3872a8 Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Sun, 11 Jan 2026 19:23:20 +0000
Subject: [PATCH] =Fixed timeline CRUD.js issue where this.activeItem was set null when we still needed it

---
 inc/registry/CheckCustomTables.php |  263 ++++++++++++++++++++++++++--------------------------
 1 files changed, 132 insertions(+), 131 deletions(-)

diff --git a/inc/registry/CheckCustomTables.php b/inc/registry/CheckCustomTables.php
index 8980dd6..e587f0d 100644
--- a/inc/registry/CheckCustomTables.php
+++ b/inc/registry/CheckCustomTables.php
@@ -44,7 +44,6 @@
 		$this->userIDType = $this->getColumnType($this->userTable, 'ID');
 		$this->termIDType = $this->getColumnType($this->wpdb->terms, 'term_id');
 		$this->postIDType = $this->getColumnType($this->wpdb->posts, 'ID');
-		error_log("JVB FK Types: users.ID={$this->userIDType}, terms.term_id={$this->termIDType}, posts.ID={$this->postIDType}");
 	}
 
 	protected function getMultisiteUsersTable():string
@@ -368,73 +367,70 @@
 		}
 	}
 
-    public function createTables(array $tables)
-    {
-        $charset_collate = $this->wpdb->get_charset_collate();
-        require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
+	public function createTables(array $tables)
+	{
+		require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
 
-        $errors = [];
-        $created = [];
+		// Match collation from existing WP tables for FK compatibility
+		$usersStatus = $this->wpdb->get_row("SHOW TABLE STATUS LIKE '{$this->wpdb->users}'");
+		$parentCollation = $usersStatus->Collation ?? 'utf8mb4_general_ci';
+		$charset_collate = "DEFAULT CHARACTER SET utf8mb4 COLLATE {$parentCollation}";
 
-        foreach ($tables as $name => $schema) {
-            $table_name = $this->prefix . BASE . $name;
-            $full_schema = "CREATE TABLE IF NOT EXISTS {$table_name} {$schema} {$charset_collate};";
+		error_log("JVB: Using charset_collate: " . $charset_collate);
 
-            // Clear any previous errors
-            $this->wpdb->flush();
+		$errors = [];
+		$created = [];
 
-            try {
-                $result = dbDelta($full_schema);
+		foreach ($tables as $name => $schema) {
+			$table_name = $this->prefix . BASE . $name;
 
-                // Check for SQL errors
-                if ($this->wpdb->last_error) {
-                    $error_msg = "SQL Error creating table {$table_name}: " . $this->wpdb->last_error;
-                    error_log($error_msg);
-                    error_log("Failed SQL Query: " . $full_schema);
-                    $errors[] = $error_msg;
+			// Skip if exists
+			if ($this->wpdb->get_var("SHOW TABLES LIKE '{$table_name}'")) {
+				$created[] = $table_name . ' (exists)';
+				continue;
+			}
 
-                    // Don't throw exception, just log and continue
-                    continue;
-                }
+			$full_schema = "CREATE TABLE IF NOT EXISTS {$table_name} {$schema} {$charset_collate}";
 
-                // Verify table was actually created
-                $table_exists = $this->wpdb->get_var("SHOW TABLES LIKE '{$table_name}'");
-                if ($table_exists) {
-                    $created[] = $table_name;
-                    error_log("Successfully created table: {$table_name}");
-                } else {
-                    $error_msg = "Table {$table_name} was not created (no error reported)";
-                    error_log($error_msg);
-                    error_log("Schema used: " . $full_schema);
-                    $errors[] = $error_msg;
-                }
+			$this->wpdb->flush();
 
-            } catch (Exception $e) {
-                $error_msg = "Exception creating table {$table_name}: " . $e->getMessage();
-                error_log($error_msg);
-                error_log("Exception SQL Query: " . $full_schema);
-                $errors[] = $error_msg;
-            }
-        }
+			// Use direct query - dbDelta mangles FK constraints
+			$hasForeignKey = stripos($schema, 'FOREIGN KEY') !== false;
 
-        // Log summary
-        if (!empty($created)) {
-            error_log("JVB Tables Created Successfully: " . implode(', ', $created));
-        }
+			if ($hasForeignKey) {
+				$result = $this->wpdb->query($full_schema);
+				$success = ($result !== false && !$this->wpdb->last_error);
+			} else {
+				dbDelta($full_schema . ';');
+				$success = !$this->wpdb->last_error;
+			}
 
-        if (!empty($errors)) {
-            error_log("JVB Table Creation Errors (" . count($errors) . " total):");
-            foreach ($errors as $error) {
-                error_log("  - " . $error);
-            }
+			if (!$success) {
+				$error_msg = "SQL Error creating table {$table_name}: " . $this->wpdb->last_error;
+				error_log($error_msg);
+				error_log("Failed SQL Query: " . $full_schema);
+				$errors[] = $error_msg;
+			} elseif ($this->wpdb->get_var("SHOW TABLES LIKE '{$table_name}'")) {
+				$created[] = $table_name;
+				error_log("Successfully created table: {$table_name}");
+			}
+		}
 
-            // Optionally store errors for admin display
-            update_option(BASE . 'table_creation_errors', $errors);
-        } else {
-            // Clear any previous errors
-            delete_option(BASE . 'table_creation_errors');
-        }
-    }
+		// Log summary
+		if (!empty($created)) {
+			error_log("JVB Tables Created Successfully: " . implode(', ', $created));
+		}
+
+		if (!empty($errors)) {
+			error_log("JVB Table Creation Errors (" . count($errors) . " total):");
+			foreach ($errors as $error) {
+				error_log("  - " . $error);
+			}
+			update_option(BASE . 'table_creation_errors', $errors);
+		} else {
+			delete_option(BASE . 'table_creation_errors');
+		}
+	}
 
     /******************************************************
      * Table Definitions
@@ -497,25 +493,30 @@
         ];
     }
 
-    protected function errorLogTables():array
-    {
-
-        return [
-            'error_log'=> "(
-            `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
-            `error_type` varchar(50) NOT NULL,
-            `component` varchar(50) NOT NULL,
-            `message` text NOT NULL,
-            `context` JSON,
-            `severity` varchar(20) NOT NULL,
-            `user_id` {$this->userIDType} NOT NULL,
-            `created_at` timestamp DEFAULT CURRENT_TIMESTAMP,
-            PRIMARY KEY (`id`),
-            KEY `error_lookup` (`error_type`, `severity`, `created_at`),
-            KEY `component_errors` (`component`, `created_at`)
-        )"
-        ];
-    }
+	protected function errorLogTables():array
+	{
+		return [
+			'error_log'=> "(
+				`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+				`error_type` varchar(50) NOT NULL,
+				`component` varchar(100) NOT NULL,
+				`method` varchar(100) DEFAULT NULL,
+				`page_url` varchar(255) DEFAULT NULL,
+				`message` text NOT NULL,
+				`context` JSON,
+				`severity` varchar(20) NOT NULL,
+				`user_id` {$this->userIDType} DEFAULT NULL,
+				`user_was_logged_in` tinyint(1) NOT NULL,
+				`source` enum('frontend','backend') NOT NULL,
+				`created_at` timestamp DEFAULT CURRENT_TIMESTAMP,
+				PRIMARY KEY (`id`),
+				KEY `created_at` (`created_at`),
+				KEY `component_severity_date` (`component`, `severity`, `created_at`),
+				KEY `error_type_date` (`error_type`, `created_at`),
+				KEY `severity_date` (`severity`, `created_at`)
+			)"
+		];
+	}
 
 	protected function userIntegrationsTable():array
 	{
@@ -570,9 +571,9 @@
             KEY `requires_action` (`owner_id`, `requires_action`, `action_taken`),
             KEY `acting_user_lookup` (`owner_id`, `action_user_id`, `type`, `status`, `created_at`),
             CONSTRAINT `{$this->base}notify_owner` FOREIGN KEY (`owner_id`)
-            REFERENCES {$this->userTable} (`ID`) ON DELETE CASCADE,
+            REFERENCES `{$this->userTable}` (`ID`) ON DELETE CASCADE,
             CONSTRAINT `{$this->base}action_id` FOREIGN KEY (`action_user_id`)
-            REFERENCES {$this->userTable} (`ID`) ON DELETE CASCADE
+            REFERENCES `{$this->userTable}` (`ID`) ON DELETE CASCADE
         )",
 
 
@@ -612,7 +613,7 @@
             UNIQUE KEY `user_content_notif` (`user_id`, `content_notification_id`),
             KEY `user_status` (`user_id`, `status`),
             CONSTRAINT `{$this->base}user_content_user` FOREIGN KEY (`user_id`)
-            REFERENCES {$this->userTable} (`ID`) ON DELETE CASCADE,
+            REFERENCES `{$this->userTable}` (`ID`) ON DELETE CASCADE,
             CONSTRAINT `{$this->base}user_content_notification` FOREIGN KEY (`content_notification_id`)
             REFERENCES `{$this->prefixed}notifications_content` (`id`) ON DELETE CASCADE
         )",
@@ -632,7 +633,7 @@
             KEY `user_frequency` (`user_id`, `frequency`),
             KEY `frequency_lookup` (`frequency`, `last_sent`),
             CONSTRAINT `{$this->base}notification_pref_user` FOREIGN KEY (`user_id`)
-                REFERENCES {$this->userTable} (`ID`) ON DELETE CASCADE
+                REFERENCES `{$this->userTable}` (`ID`) ON DELETE CASCADE
         )",
 
             // Notification digest scheduling and tracking
@@ -649,7 +650,7 @@
             KEY `scheduled_digests` (`frequency`, `scheduled_at`, `status`),
             KEY `user_digests` (`user_id`, `frequency`),
             CONSTRAINT `{$this->base}digest_user` FOREIGN KEY (`user_id`)
-                REFERENCES {$this->userTable} (`ID`) ON DELETE CASCADE
+                REFERENCES `{$this->userTable}` (`ID`) ON DELETE CASCADE
         )",
 
             // Analytics on notification interactions
@@ -666,9 +667,9 @@
             KEY `user_actions` (`user_id`, `action`),
             KEY `action_analysis` (`action`, `action_source`),
             CONSTRAINT `{$this->base}metrics_user` FOREIGN KEY (`user_id`)
-                REFERENCES {$this->userTable} (`ID`) ON DELETE CASCADE,
+                REFERENCES `{$this->userTable}` (`ID`) ON DELETE CASCADE,
             CONSTRAINT `{$this->base}metrics_notification` FOREIGN KEY (`notification_id`)
-                REFERENCES {$this->prefixed}notifications (`id`) ON DELETE CASCADE
+                REFERENCES `{$this->prefixed}notifications` (`id`) ON DELETE CASCADE
         )"
         ];
     }
@@ -697,7 +698,7 @@
                 KEY `status` (`status`),
                 KEY `expiring_requests` (`status`, `expires_at`),
                 CONSTRAINT `{$this->base}{$type}_approval_requester` FOREIGN KEY (`user_id`)
-                    REFERENCES {$this->userTable} (`ID`) ON DELETE CASCADE
+                    REFERENCES `{$this->userTable}` (`ID`) ON DELETE CASCADE
             )";
             $tables['approval_'.$type.'_votes'] = "(
                 `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
@@ -710,9 +711,9 @@
                 UNIQUE KEY `unique_vote` (`request_id`, `user_id`),
                 KEY `user_votes` (`user_id`),
                 CONSTRAINT `{$this->base}{$type}_user_approval_request` FOREIGN KEY (`request_id`)
-                    REFERENCES {$this->prefixed}approval_{$type}_requests (`id`) ON DELETE CASCADE,
+                    REFERENCES `{$this->prefixed}approval_{$type}_requests` (`id`) ON DELETE CASCADE,
                 CONSTRAINT `{$this->base}{$type}_user_approval_voter` FOREIGN KEY (`user_id`)
-                    REFERENCES {$this->userTable} (`ID`) ON DELETE CASCADE
+                    REFERENCES `{$this->userTable}` (`ID`) ON DELETE CASCADE
             )";
         }
         if (!empty($save)) {
@@ -742,9 +743,9 @@
 		KEY `related_taxonomy` (`related_taxonomy`),
 		UNIQUE KEY `term_relation` (`term_id`, `related_term_id`, `taxonomy`, `related_taxonomy`),
 		CONSTRAINT `{$this->base}tax_rel_term_id` FOREIGN KEY (`term_id`)
-			REFERENCES {$this->wpdb->terms} (`term_id`) ON DELETE CASCADE,
+			REFERENCES `{$this->wpdb->terms}` (`term_id`) ON DELETE CASCADE,
 		CONSTRAINT `{$this->base}tax_rel_related_id` FOREIGN KEY (`related_term_id`)
-			REFERENCES {$this->wpdb->terms} (`term_id`) ON DELETE CASCADE
+			REFERENCES `{$this->wpdb->terms}` (`term_id`) ON DELETE CASCADE
 	)"
 		];
 
@@ -762,9 +763,9 @@
 		KEY `user_taxonomy` (`user_id`, `taxonomy`),
 		KEY `taxonomy` (`taxonomy`),
 		CONSTRAINT `{$this->base}user_term_user_fk` FOREIGN KEY (`user_id`)
-			REFERENCES {$this->userTable} (`ID`) ON DELETE CASCADE,
+			REFERENCES `{$this->userTable}` (`ID`) ON DELETE CASCADE,
 		CONSTRAINT `{$this->base}user_term_term_fk` FOREIGN KEY (`term_id`)
-			REFERENCES {$this->wpdb->terms} (`term_id`) ON DELETE CASCADE
+			REFERENCES `{$this->wpdb->terms}` (`term_id`) ON DELETE CASCADE
 	)";
 		}
 
@@ -787,7 +788,7 @@
             KEY `user_type` (`user_id`, `type`),
             KEY `target_type` (`target_id`, `type`),
             CONSTRAINT `{$this->base}favourites_user` FOREIGN KEY (`user_id`)
-                REFERENCES {$this->userTable} (`ID`) ON DELETE CASCADE
+                REFERENCES `{$this->userTable}` (`ID`) ON DELETE CASCADE
         )",
             'favourites_lists'  => "(
             `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
@@ -799,7 +800,7 @@
             PRIMARY KEY (`id`),
             KEY `user_lists` (`user_id`),
             CONSTRAINT `{$this->base}list_user` FOREIGN KEY (`user_id`)
-                REFERENCES {$this->userTable} (`ID`) ON DELETE CASCADE
+                REFERENCES `{$this->userTable}` (`ID`) ON DELETE CASCADE
         )",
             'favourites_list_items' => "(
             `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
@@ -813,9 +814,9 @@
             KEY `list_items` (`list_id`),
             KEY `favourite_id` (`favourite_id`),
             CONSTRAINT `{$this->base}list_items` FOREIGN KEY (`list_id`)
-                REFERENCES {$this->prefixed}favourites_lists (`id`) ON DELETE CASCADE,
+                REFERENCES 	`{$this->prefixed}favourites_lists` (`id`) ON DELETE CASCADE,
             CONSTRAINT `{$this->base}list_favourite` FOREIGN KEY (`favourite_id`)
-                REFERENCES {$this->prefixed}favourites (`id`) ON DELETE SET NULL
+                REFERENCES `{$this->prefixed}favourites` (`id`) ON DELETE SET NULL
         )",
             'favourites_list_shares' => "(
             `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
@@ -833,9 +834,9 @@
             KEY `list_shares` (`list_id`),
             KEY `status_index` (`status`),
             CONSTRAINT `{$this->base}share_list` FOREIGN KEY (`list_id`)
-                REFERENCES {$this->prefixed}favourites_lists (`id`) ON DELETE CASCADE,
+                REFERENCES `{$this->prefixed}favourites_lists` (`id`) ON DELETE CASCADE,
             CONSTRAINT `{$this->base}share_user` FOREIGN KEY (`user_id`)
-                REFERENCES {$this->userTable} (`ID`) ON DELETE CASCADE
+                REFERENCES `{$this->userTable}` (`ID`) ON DELETE CASCADE
         )",
             'favourites_list_stats'    => "(
             `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
@@ -867,11 +868,11 @@
                 KEY `user_id` (`user_id`),
                 KEY `artist_id` (`artist_id`),
             CONSTRAINT `{$this->base}nr_shop_news_shop` FOREIGN KEY (`shop_id`)
-                REFERENCES {$this->wpdb->terms} (`term_id`) ON DELETE CASCADE,
+                REFERENCES `{$this->wpdb->terms}` (`term_id`) ON DELETE CASCADE,
             CONSTRAINT `{$this->base}nr_shop_news_user` FOREIGN KEY (`user_id`)
-                REFERENCES {$this->userTable} (`ID`) ON DELETE CASCADE,
+                REFERENCES `{$this->userTable}` (`ID`) ON DELETE CASCADE,
             CONSTRAINT `{$this->base}nr_shop_news_artist` FOREIGN KEY (`artist_id`)
-                REFERENCES {$this->wpdb->posts} (`ID`) ON DELETE SET NULL
+                REFERENCES `{$this->wpdb->posts}` (`ID`) ON DELETE SET NULL
         )"
         ];
     }
@@ -899,9 +900,9 @@
             KEY `parent_child` (`parent_id`),
             KEY `karma_order` (`karma`),
             CONSTRAINT `{$this->base}re_responses_news` FOREIGN KEY (`item_id`)
-                REFERENCES {$this->wpdb->posts} (`ID`) ON DELETE CASCADE,
+                REFERENCES `{$this->wpdb->posts}` (`ID`) ON DELETE CASCADE,
             CONSTRAINT `{$this->base}re_responses_parent` FOREIGN KEY (`parent_id`)
-                REFERENCES {$this->prefixed}responses (`id`) ON DELETE SET NULL
+                REFERENCES `{$this->prefixed}responses` (`id`) ON DELETE SET NULL
         )",
             'karma_response' => "(
                 `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
@@ -914,9 +915,9 @@
                 KEY `item_id` (`item_id`),
                 KEY `user_id` (`user_id`),
             CONSTRAINT `{$this->base}_response_item_id` FOREIGN KEY (`item_id`)
-                REFERENCES {$this->prefixed}responses (`id`) ON DELETE CASCADE,
+                REFERENCES `{$this->prefixed}responses` (`id`) ON DELETE CASCADE,
             CONSTRAINT `{$this->base}_response_user_id` FOREIGN KEY (`user_id`)
-                REFERENCES {$this->userTable} (`ID`) ON DELETE CASCADE
+                REFERENCES `{$this->userTable}` (`ID`) ON DELETE CASCADE
                 )"
         ];
     }
@@ -967,9 +968,9 @@
                 KEY `item_id` (`item_id`),
                 KEY `user_id` (`user_id`),
                 CONSTRAINT `{$this->base}kt_{$type}_item_id` FOREIGN KEY (`item_id`)
-                    REFERENCES {$reference_table} ({$reference_column}) ON DELETE CASCADE,
+                    REFERENCES `{$reference_table}` (`{$reference_column}`) ON DELETE CASCADE,
                 CONSTRAINT `{$this->base}kt_{$type}_user_id` FOREIGN KEY (`user_id`)
-                    REFERENCES {$this->userTable} (`ID`) ON DELETE CASCADE
+                    REFERENCES `{$this->userTable}` (`ID`) ON DELETE CASCADE
             )";
 
         }
@@ -1046,13 +1047,13 @@
                 KEY `rsvp_events` (`rsvp_required`, `rsvp_deadline`),
 
                 CONSTRAINT `{$this->base}cal_{$type}_type` FOREIGN KEY (`event_type`)
-                    REFERENCES {$this->wpdb->terms} (`term_id`) ON DELETE CASCADE,
+                    REFERENCES `{$this->wpdb->terms}` (`term_id`) ON DELETE CASCADE,
                 CONSTRAINT `{$this->base}cal_{$type}_post` FOREIGN KEY (`post_id`)
-                    REFERENCES {$this->wpdb->posts} (`ID`) ON DELETE CASCADE,
+                    REFERENCES `{$this->wpdb->posts}` (`ID`) ON DELETE CASCADE,
                 CONSTRAINT `{$this->base}cal_{$type}_shop` FOREIGN KEY (`shop_id`)
-                    REFERENCES {$this->wpdb->terms} (`term_id`) ON DELETE SET NULL,
+                    REFERENCES `{$this->wpdb->terms}` (`term_id`) ON DELETE SET NULL,
                 CONSTRAINT `{$this->base}cal_{$type}_user` FOREIGN KEY (`user_id`)
-                    REFERENCES {$this->userTable} (`ID`) ON DELETE SET NULL
+                    REFERENCES `{$this->userTable}` (`ID`) ON DELETE SET NULL
             )";
 
             $tables['calendar_'.$type.'_participants'] = "(
@@ -1064,9 +1065,9 @@
                 PRIMARY KEY (`id`),
                 UNIQUE KEY `event_user` (`event_id`, `user_id`),
                 CONSTRAINT `{$this->base}cal_{$type}_participant_event` FOREIGN KEY (`event_id`)
-                    REFERENCES {$this->prefixed}calendar_{$type} (`id`) ON DELETE CASCADE,
+                    REFERENCES `{$this->prefixed}calendar_{$type}` (`id`) ON DELETE CASCADE,
                 CONSTRAINT `{$this->base}cal_{$type}_participant_user` FOREIGN KEY (`user_id`)
-                    REFERENCES {$this->userTable} (`ID`) ON DELETE CASCADE
+                    REFERENCES `{$this->userTable}` (`ID`) ON DELETE CASCADE
             )";
 
             $tables['calendar_'.$type.'_recurrence_exceptions'] = "(
@@ -1112,9 +1113,9 @@
             KEY `user_idx` (`user_id`),
             KEY `owner_idx` (`owner_id`),
             CONSTRAINT `{$this->base}umami_user_id_link` FOREIGN KEY (`user_id`)
-                REFERENCES {$this->userTable} (`ID`) ON DELETE CASCADE,
+                REFERENCES `{$this->userTable}` (`ID`) ON DELETE CASCADE,
             CONSTRAINT `{$this->base}umami_owner_id_link` FOREIGN KEY (`owner_id`)
-                REFERENCES {$this->userTable} (`ID`) ON DELETE CASCADE
+                REFERENCES `{$this->userTable}` (`ID`) ON DELETE CASCADE
         )",
             'stats_performance' => "(
             `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
@@ -1132,7 +1133,7 @@
             PRIMARY KEY (`id`),
             KEY `user_date_idx` (`user_id`, `date`),
             CONSTRAINT `{$this->base}performance_user_id_link` FOREIGN KEY (`user_id`)
-                REFERENCES {$this->userTable} (`ID`) ON DELETE CASCADE
+                REFERENCES `{$this->userTable}` (`ID`) ON DELETE CASCADE
         )"
         ];
     }
@@ -1165,7 +1166,7 @@
             )";
 			foreach($config['to_terms']??[] as $term) {
 				$definitions .= "CONSTRAINT `{$this->base}_{$term}_link` FOREIGN KEY (`to_{$term}`)
-                REFERENCES {$this->wpdb->terms} (`term_id`) ON DELETE CASCADE";
+                REFERENCES `{$this->wpdb->terms}` (`term_id`) ON DELETE CASCADE";
 			}
 
 			$tables['invitations_'.$role] = $definitions;
@@ -1194,9 +1195,9 @@
                     UNIQUE KEY `content_term` (`content_id`, `term_id`),
                     KEY content_role (`term_id`, `role`),
                     CONSTRAINT `{$this->base}{$content}_{$type}_history_user` FOREIGN KEY (`user_id`)
-                        REFERENCES {$this->userTable} (`ID`) ON DELETE CASCADE,
+                        REFERENCES `{$this->userTable}` (`ID`) ON DELETE CASCADE,
                     CONSTRAINT `{$this->base}{$content}_{$type}_history_term` FOREIGN KEY (`term_id`)
-                        REFERENCES {$this->wpdb->terms} (`term_id`) ON DELETE CASCADE
+                        REFERENCES `{$this->wpdb->terms}` (`term_id`) ON DELETE CASCADE
                 )";
             }
         }
@@ -1223,9 +1224,9 @@
                     PRIMARY KEY (`id`),
                     UNIQUE KEY `{$this->base}content_term` (`content_id`, `term_id`),
                     CONSTRAINT `{$this->base}{$content}_{$type}_request_user` FOREIGN KEY (`user_id`)
-                        REFERENCES {$this->userTable} (`ID`) ON DELETE CASCADE,
+                        REFERENCES `{$this->userTable}` (`ID`) ON DELETE CASCADE,
                     CONSTRAINT `{$this->base}{$content}_{$type}_request_term` FOREIGN KEY (`term_id`)
-                        REFERENCES {$this->wpdb->terms} (`term_id`) ON DELETE CASCADE
+                        REFERENCES `{$this->wpdb->terms}` (`term_id`) ON DELETE CASCADE
                 )";
             }
         }
@@ -1266,9 +1267,9 @@
 	KEY `date_idx` (`referred_at`),
 	KEY `consult_idx` (`consulted_at`),
 	CONSTRAINT `{$this->base}referral_referrer_fk` FOREIGN KEY (`referrer_id`)
-		REFERENCES {$this->userTable} (`ID`) ON DELETE CASCADE,
+		REFERENCES `{$this->userTable}` (`ID`) ON DELETE CASCADE,
 	CONSTRAINT `{$this->base}referral_referee_fk` FOREIGN KEY (`referee_id`)
-		REFERENCES {$this->userTable} (`ID`) ON DELETE CASCADE
+		REFERENCES `{$this->userTable}` (`ID`) ON DELETE CASCADE
 )";
 
 		// Create the main referrals table first
@@ -1292,7 +1293,7 @@
 	KEY `user_idx` (`user_id`),
 	KEY `email_idx` (`email`),
 	CONSTRAINT `{$this->base}jane_client_user_fk` FOREIGN KEY (`user_id`)
-		REFERENCES {$this->userTable} (`ID`) ON DELETE CASCADE
+		REFERENCES `{$this->userTable}` (`ID`) ON DELETE CASCADE
 )";
 
 		// Third: referral_treatments (depends on referrals AND wp_users)
@@ -1312,9 +1313,9 @@
 	KEY `date_idx` (`treatment_date`),
 	KEY `type_idx` (`treatment_type`),
 	CONSTRAINT `{$this->base}treatment_referral_fk` FOREIGN KEY (`referral_id`)
-		REFERENCES {$this->prefixed}referrals (`id`) ON DELETE CASCADE,
+		REFERENCES `{$this->prefixed}referrals` (`id`) ON DELETE CASCADE,
 	CONSTRAINT `{$this->base}treatment_user_fk` FOREIGN KEY (`user_id`)
-		REFERENCES {$this->userTable} (`ID`) ON DELETE CASCADE
+		REFERENCES `{$this->userTable}` (`ID`) ON DELETE CASCADE
 )";
 
 		// Fourth: referral_rewards (depends on referrals AND wp_users)
@@ -1336,9 +1337,9 @@
 	KEY `status_idx` (`status`),
 	KEY `type_idx` (`reward_type`),
 	CONSTRAINT `{$this->base}reward_referral_fk` FOREIGN KEY (`referral_id`)
-		REFERENCES {$this->prefixed}referrals (`id`) ON DELETE CASCADE,
+		REFERENCES `{$this->prefixed}referrals` (`id`) ON DELETE CASCADE,
 	CONSTRAINT `{$this->base}reward_user_fk` FOREIGN KEY (`user_id`)
-		REFERENCES {$this->userTable} (`ID`) ON DELETE CASCADE
+		REFERENCES `{$this->userTable}` (`ID`) ON DELETE CASCADE
 )";
 
 		return $dependentTables;
@@ -1460,13 +1461,13 @@
 
 			if ($type === 'taxonomy') {
 				$constraints[] = "CONSTRAINT `{$constraintName}` FOREIGN KEY (`{$fieldName}`)
-                REFERENCES {$this->wpdb->terms} (`term_id`) ON DELETE SET NULL";
+                REFERENCES `{$this->wpdb->terms}` (`term_id`) ON DELETE SET NULL";
 			} elseif ($type === 'user') {
 				$constraints[] = "CONSTRAINT `{$constraintName}` FOREIGN KEY (`{$fieldName}`)
-                REFERENCES {$this->userTable} (`ID`) ON DELETE SET NULL";
+                REFERENCES `{$this->userTable}` (`ID`) ON DELETE SET NULL";
 			} elseif ($type === 'image' || $type === 'file') {
 				$constraints[] = "CONSTRAINT `{$constraintName}` FOREIGN KEY (`{$fieldName}`)
-                REFERENCES {$this->wpdb->posts} (`ID`) ON DELETE SET NULL";
+                REFERENCES `{$this->wpdb->posts}` (`ID`) ON DELETE SET NULL";
 			}
 		}
 
@@ -1563,7 +1564,7 @@
 				["PRIMARY KEY (`term_id`)"],
 				$indexes,
 				$constraints,
-				["CONSTRAINT `{$base}_{$type}_term` FOREIGN KEY (`term_id`) REFERENCES {$this->wpdb->terms} (`term_id`) ON DELETE CASCADE"]
+				["CONSTRAINT `{$base}_{$type}_term` FOREIGN KEY (`term_id`) REFERENCES `{$this->wpdb->terms}` (`term_id`) ON DELETE CASCADE"]
 			);
 			$sql = "(\n    " . implode(",\n    ", $allDefinitions) . "\n)";
 			error_log("JVB: Creating content table for type: {$type}");
@@ -1727,7 +1728,7 @@
 
         $constraints = [
             "CONSTRAINT `{$this->base}_{$userType}_stats_user` FOREIGN KEY (`user_id`)
-         REFERENCES {$this->userTable} (`ID`) ON DELETE CASCADE"
+         REFERENCES `{$this->userTable}` (`ID`) ON DELETE CASCADE"
         ];
 
         $allDefinitions = array_merge($columns, $indexes, $constraints);

--
Gitblit v1.10.0