// Creates ScheduledTaskDefinitions table if not exists // Public endpoint for setup function apiAbort(required struct payload) { writeOutput(serializeJSON(payload)); abort; } try { // Create ScheduledTaskDefinitions table queryExecute(" CREATE TABLE IF NOT EXISTS ScheduledTaskDefinitions ( ScheduledTaskID INT AUTO_INCREMENT PRIMARY KEY, ScheduledTaskBusinessID INT NOT NULL, ScheduledTaskName VARCHAR(100) NOT NULL, ScheduledTaskCategoryID INT NULL, ScheduledTaskTypeID INT NULL, ScheduledTaskTitle VARCHAR(255) NOT NULL, ScheduledTaskDetails TEXT NULL, ScheduledTaskCronExpression VARCHAR(100) NOT NULL, ScheduledTaskIsActive BIT(1) DEFAULT b'1', ScheduledTaskLastRunOn DATETIME NULL, ScheduledTaskNextRunOn DATETIME NULL, ScheduledTaskCreatedOn DATETIME DEFAULT CURRENT_TIMESTAMP, ScheduledTaskCreatedByUserID INT NULL, INDEX idx_business (ScheduledTaskBusinessID), INDEX idx_active_next (ScheduledTaskIsActive, ScheduledTaskNextRunOn) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ", [], { datasource: "payfrit" }); apiAbort({ "OK": true, "MESSAGE": "ScheduledTaskDefinitions table created/verified" }); } catch (any e) { apiAbort({ "OK": false, "ERROR": "server_error", "MESSAGE": e.message }); }