get_charset_collate(); // aaPanel server instances. $servers_sql = "CREATE TABLE {$wpdb->prefix}wooaapanel_servers ( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(100) NOT NULL, url VARCHAR(500) NOT NULL, api_key VARCHAR(500) NOT NULL, active TINYINT(1) NOT NULL DEFAULT 1, created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (id) ) $charset;"; // Site (PHP project) assignments per customer. $sites_sql = "CREATE TABLE {$wpdb->prefix}wooaapanel_site_assignments ( id INT NOT NULL AUTO_INCREMENT, customer_id BIGINT NOT NULL, server_id INT NOT NULL, site_name VARCHAR(255) NOT NULL, domain VARCHAR(255) NOT NULL, created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (id), KEY idx_customer (customer_id), KEY idx_server (server_id), UNIQUE KEY uniq_site (server_id, site_name) ) $charset;"; // Database assignments per customer. $dbs_sql = "CREATE TABLE {$wpdb->prefix}wooaapanel_db_assignments ( id INT NOT NULL AUTO_INCREMENT, customer_id BIGINT NOT NULL, server_id INT NOT NULL, db_name VARCHAR(255) NOT NULL, created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (id), KEY idx_customer (customer_id), KEY idx_server (server_id), UNIQUE KEY uniq_db (server_id, db_name) ) $charset;"; require_once ABSPATH . 'wp-admin/includes/upgrade.php'; dbDelta( $servers_sql ); dbDelta( $sites_sql ); dbDelta( $dbs_sql ); update_option( 'wooaapanel_db_version', WOOAAPANEL_VERSION ); } }