PRAGMA foreign_keys = off;

BEGIN TRANSACTION;

ALTER TABLE simulations
	ADD testCaseMode BOOLEAN DEFAULT FALSE;

ALTER TABLE simulations
	ADD generateResults BOOLEAN DEFAULT FALSE;

ALTER TABLE simulations
	ADD testCaseReportName VARCHAR(128) DEFAULT NULL;

ALTER TABLE simulations
	ADD runtimeTemplateType VARCHAR(512) DEFAULT NULL;

ALTER TABLE simulations
	ADD testCaseFile VARCHAR(1024) DEFAULT NULL;

ALTER TABLE simulations
	ADD testCaseBridge VARCHAR(512) DEFAULT NULL;

DROP TABLE IF EXISTS testresults;
CREATE TABLE testresults (
	id INTEGER PRIMARY KEY,
	created DATETIME DEFAULT NOW,
	name VARCHAR(128) NOT NULL,
	owner VARCHAR(512) DEFAULT NULL,
	runtimeTemplateType VARCHAR(512),
	simulation INTEGER,
  	success BOOL DEFAULT FALSE,
	status VARCHAR(64),
	iterations INTEGER DEFAULT 0,
	result TEXT,

	FOREIGN KEY (simulation) REFERENCES simulations(id) ON DELETE SET NULL,
	FOREIGN KEY (owner) REFERENCES users(username)
);

CREATE INDEX testresults_id_index ON testresults (id);
CREATE INDEX testresults_created_index ON testresults (created);
CREATE INDEX testresults_owner_index ON testresults (owner);
CREATE INDEX testresults_name_index ON testresults (name);
CREATE INDEX testresults_simulation_index ON testresults (simulation);
CREATE INDEX testresults_runtimeTemplateType_index ON testresults (runtimeTemplateType);
CREATE INDEX testresults_success_index ON testresults (success);

COMMIT;

PRAGMA foreign_keys=on;