enhanced questionnaire version handling and handling uploads from outdated questionnaires through automatic revisioning and checks
Some checks failed
PHPUnit / test (push) Has been cancelled
Some checks failed
PHPUnit / test (push) Has been cancelled
This commit is contained in:
70
schema.sql
70
schema.sql
@ -45,24 +45,37 @@ CREATE TABLE IF NOT EXISTS questionnaire_category (
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS questionnaire (
|
||||
questionnaireID TEXT NOT NULL PRIMARY KEY,
|
||||
name TEXT NOT NULL DEFAULT '',
|
||||
version TEXT NOT NULL DEFAULT '',
|
||||
state TEXT NOT NULL DEFAULT '',
|
||||
orderIndex INTEGER NOT NULL DEFAULT 0,
|
||||
showPoints INTEGER NOT NULL DEFAULT 0,
|
||||
conditionJson TEXT NOT NULL DEFAULT '{}',
|
||||
categoryKey TEXT NOT NULL DEFAULT ''
|
||||
questionnaireID TEXT NOT NULL PRIMARY KEY,
|
||||
name TEXT NOT NULL DEFAULT '',
|
||||
version TEXT NOT NULL DEFAULT '',
|
||||
state TEXT NOT NULL DEFAULT '',
|
||||
orderIndex INTEGER NOT NULL DEFAULT 0,
|
||||
showPoints INTEGER NOT NULL DEFAULT 0,
|
||||
conditionJson TEXT NOT NULL DEFAULT '{}',
|
||||
categoryKey TEXT NOT NULL DEFAULT '',
|
||||
structureRevision INTEGER NOT NULL DEFAULT 1,
|
||||
structureChangedAt INTEGER NOT NULL DEFAULT 0
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS questionnaire_structure_snapshot (
|
||||
questionnaireID TEXT NOT NULL,
|
||||
structureRevision INTEGER NOT NULL,
|
||||
createdAt INTEGER NOT NULL,
|
||||
manifestJson TEXT NOT NULL DEFAULT '{}',
|
||||
PRIMARY KEY (questionnaireID, structureRevision),
|
||||
FOREIGN KEY(questionnaireID) REFERENCES questionnaire(questionnaireID) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS question (
|
||||
questionID TEXT NOT NULL PRIMARY KEY,
|
||||
questionnaireID TEXT NOT NULL,
|
||||
defaultText TEXT NOT NULL DEFAULT '',
|
||||
type TEXT NOT NULL DEFAULT '',
|
||||
orderIndex INTEGER NOT NULL DEFAULT 0,
|
||||
isRequired INTEGER NOT NULL DEFAULT 0,
|
||||
configJson TEXT NOT NULL DEFAULT '{}',
|
||||
questionID TEXT NOT NULL PRIMARY KEY,
|
||||
questionnaireID TEXT NOT NULL,
|
||||
defaultText TEXT NOT NULL DEFAULT '',
|
||||
type TEXT NOT NULL DEFAULT '',
|
||||
orderIndex INTEGER NOT NULL DEFAULT 0,
|
||||
isRequired INTEGER NOT NULL DEFAULT 0,
|
||||
configJson TEXT NOT NULL DEFAULT '{}',
|
||||
retiredAt INTEGER NOT NULL DEFAULT 0,
|
||||
retiredInRevision INTEGER NOT NULL DEFAULT 0,
|
||||
FOREIGN KEY(questionnaireID) REFERENCES questionnaire(questionnaireID)
|
||||
);
|
||||
|
||||
@ -73,6 +86,7 @@ CREATE TABLE IF NOT EXISTS answer_option (
|
||||
points INTEGER NOT NULL DEFAULT 0,
|
||||
orderIndex INTEGER NOT NULL DEFAULT 0,
|
||||
nextQuestionId TEXT NOT NULL DEFAULT '',
|
||||
retiredAt INTEGER NOT NULL DEFAULT 0,
|
||||
FOREIGN KEY(questionID) REFERENCES question(questionID)
|
||||
);
|
||||
|
||||
@ -142,18 +156,20 @@ CREATE TABLE IF NOT EXISTS session (
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS questionnaire_submission (
|
||||
submissionID TEXT NOT NULL PRIMARY KEY,
|
||||
clientCode TEXT NOT NULL,
|
||||
questionnaireID TEXT NOT NULL,
|
||||
version INTEGER NOT NULL,
|
||||
submittedAt INTEGER NOT NULL,
|
||||
submittedByUserID TEXT NOT NULL DEFAULT '',
|
||||
submittedByRole TEXT NOT NULL DEFAULT '',
|
||||
assignedByCoach TEXT,
|
||||
status TEXT NOT NULL DEFAULT '',
|
||||
startedAt INTEGER,
|
||||
completedAt INTEGER,
|
||||
sumPoints INTEGER,
|
||||
submissionID TEXT NOT NULL PRIMARY KEY,
|
||||
clientCode TEXT NOT NULL,
|
||||
questionnaireID TEXT NOT NULL,
|
||||
version INTEGER NOT NULL,
|
||||
submittedAt INTEGER NOT NULL,
|
||||
submittedByUserID TEXT NOT NULL DEFAULT '',
|
||||
submittedByRole TEXT NOT NULL DEFAULT '',
|
||||
assignedByCoach TEXT,
|
||||
status TEXT NOT NULL DEFAULT '',
|
||||
startedAt INTEGER,
|
||||
completedAt INTEGER,
|
||||
sumPoints INTEGER,
|
||||
structureRevision INTEGER NOT NULL DEFAULT 1,
|
||||
structureSnapshotJson TEXT NOT NULL DEFAULT '{}',
|
||||
FOREIGN KEY(clientCode) REFERENCES client(clientCode),
|
||||
FOREIGN KEY(questionnaireID) REFERENCES questionnaire(questionnaireID),
|
||||
FOREIGN KEY(assignedByCoach) REFERENCES coach(coachID),
|
||||
|
||||
Reference in New Issue
Block a user