try { // Create TaskRatings table queryExecute(" CREATE TABLE IF NOT EXISTS TaskRatings ( ID INT AUTO_INCREMENT PRIMARY KEY, TaskID INT NOT NULL, ByUserID INT NOT NULL, ForUserID INT NOT NULL, Direction VARCHAR(25) NOT NULL, -- Customer/Admin rates Worker OnTime TINYINT(1) NULL, CompletedScope TINYINT(1) NULL, RequiredFollowup TINYINT(1) NULL, ContinueAllow TINYINT(1) NULL, -- Worker rates Customer Prepared TINYINT(1) NULL, Respectful TINYINT(1) NULL, WouldAutoAssign TINYINT(1) NULL, -- For rating links in receipts AccessToken VARCHAR(64) NOT NULL UNIQUE, ExpiresOn DATETIME NOT NULL, -- Timestamps CreatedOn DATETIME DEFAULT CURRENT_TIMESTAMP, CompletedOn DATETIME NULL, INDEX idx_task (TaskID), INDEX idx_for_user (ForUserID), INDEX idx_by_user (ByUserID), INDEX idx_token (AccessToken) ) ", {}, { datasource: "payfrit" }); // Verify table was created cols = queryExecute("DESCRIBE TaskRatings", {}, { datasource: "payfrit" }); colNames = []; for (c in cols) { arrayAppend(colNames, c.Field); } writeOutput(serializeJSON({ "OK": true, "MESSAGE": "TaskRatings table created successfully", "COLUMNS": colNames })); } catch (any e) { writeOutput(serializeJSON({ "OK": false, "ERROR": e.message })); }