0; }; mysqli_query($mysqli, "CREATE TABLE IF NOT EXISTS `portal_invites` ( `invite_id` int(11) NOT NULL AUTO_INCREMENT, `invite_kind` varchar(10) NOT NULL DEFAULT 'invite', `invite_email` varchar(200) NOT NULL, `invite_name` varchar(200) DEFAULT NULL, `invite_billing` tinyint(1) NOT NULL DEFAULT 0, `invite_technical` tinyint(1) NOT NULL DEFAULT 0, `invite_token_hash` char(64) NOT NULL DEFAULT '', `invite_expires_at` datetime NOT NULL, `invite_sent_at` datetime DEFAULT NULL, `invite_sent_count` int(11) NOT NULL DEFAULT 0, `invite_created_by` int(11) NOT NULL DEFAULT 0, `invite_created_by_contact_id` int(11) NOT NULL DEFAULT 0, `invite_created_at` datetime NOT NULL DEFAULT current_timestamp(), `invite_accepted_at` datetime DEFAULT NULL, `invite_contact_id` int(11) NOT NULL DEFAULT 0, `invite_cancelled_at` datetime DEFAULT NULL, `invite_client_id` int(11) NOT NULL, PRIMARY KEY (`invite_id`), KEY `invite_client_id` (`invite_client_id`, `invite_email`), KEY `invite_contact_id` (`invite_contact_id`), CONSTRAINT `portal_invites_ibfk_1` FOREIGN KEY (`invite_client_id`) REFERENCES `clients` (`client_id`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci"); if (!$itflow_column('clients', 'client_portal_signup')) { mysqli_query($mysqli, "ALTER TABLE `clients` ADD `client_portal_signup` tinyint(1) NOT NULL DEFAULT 0 AFTER `client_reminders`"); } if (!$itflow_column('settings', 'config_client_portal_signup')) { mysqli_query($mysqli, "ALTER TABLE `settings` ADD `config_client_portal_signup` tinyint(1) NOT NULL DEFAULT 0 AFTER `config_client_portal_require_mfa`"); } unset($itflow_column);