This commit is contained in:
55
schema.sql
55
schema.sql
@ -184,3 +184,58 @@ CREATE TABLE IF NOT EXISTS client_followup_note (
|
||||
FOREIGN KEY(clientCode) REFERENCES client(clientCode)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS question_score_rule (
|
||||
ruleID TEXT NOT NULL PRIMARY KEY,
|
||||
questionID TEXT NOT NULL,
|
||||
scopeKey TEXT NOT NULL DEFAULT '',
|
||||
levelKey TEXT NOT NULL,
|
||||
points INTEGER NOT NULL DEFAULT 0,
|
||||
FOREIGN KEY(questionID) REFERENCES question(questionID) ON DELETE CASCADE,
|
||||
UNIQUE(questionID, scopeKey, levelKey)
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_score_rule_question
|
||||
ON question_score_rule(questionID);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS scoring_profile (
|
||||
profileID TEXT NOT NULL PRIMARY KEY,
|
||||
name TEXT NOT NULL DEFAULT '',
|
||||
description TEXT NOT NULL DEFAULT '',
|
||||
isActive INTEGER NOT NULL DEFAULT 1,
|
||||
greenMin INTEGER NOT NULL DEFAULT 0,
|
||||
greenMax INTEGER NOT NULL DEFAULT 12,
|
||||
yellowMin INTEGER NOT NULL DEFAULT 13,
|
||||
yellowMax INTEGER NOT NULL DEFAULT 36,
|
||||
redMin INTEGER NOT NULL DEFAULT 37,
|
||||
createdAt INTEGER NOT NULL DEFAULT 0,
|
||||
updatedAt INTEGER NOT NULL DEFAULT 0
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS scoring_profile_questionnaire (
|
||||
profileID TEXT NOT NULL,
|
||||
questionnaireID TEXT NOT NULL,
|
||||
weight REAL NOT NULL DEFAULT 1.0,
|
||||
orderIndex INTEGER NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (profileID, questionnaireID),
|
||||
FOREIGN KEY(profileID) REFERENCES scoring_profile(profileID) ON DELETE CASCADE,
|
||||
FOREIGN KEY(questionnaireID) REFERENCES questionnaire(questionnaireID) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS client_scoring_profile_result (
|
||||
clientCode TEXT NOT NULL,
|
||||
profileID TEXT NOT NULL,
|
||||
weightedTotal REAL NOT NULL DEFAULT 0,
|
||||
band TEXT NOT NULL DEFAULT '',
|
||||
computedAt INTEGER NOT NULL DEFAULT 0,
|
||||
questionnaireSnapshot TEXT NOT NULL DEFAULT '{}',
|
||||
coachBand TEXT NOT NULL DEFAULT '',
|
||||
coachReviewedAt INTEGER NOT NULL DEFAULT 0,
|
||||
coachReviewedByUserID TEXT NOT NULL DEFAULT '',
|
||||
PRIMARY KEY (clientCode, profileID),
|
||||
FOREIGN KEY(clientCode) REFERENCES client(clientCode) ON DELETE CASCADE,
|
||||
FOREIGN KEY(profileID) REFERENCES scoring_profile(profileID) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_client_profile_result_profile
|
||||
ON client_scoring_profile_result(profileID);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user