|
|
@@ -39,6 +39,8 @@ CREATE TABLE IF NOT EXISTS assessment_period (
|
|
|
self_review_due_date TEXT,
|
|
|
manager_review_due_date TEXT,
|
|
|
confirmation_due_date TEXT,
|
|
|
+ peer_invitation_deadline TEXT,
|
|
|
+ peer_review_deadline TEXT,
|
|
|
company_owner_user_id INTEGER,
|
|
|
status VARCHAR(20) NOT NULL DEFAULT 'DRAFT',
|
|
|
created_by INTEGER,
|
|
|
@@ -311,3 +313,43 @@ CREATE TABLE IF NOT EXISTS performance_score_item (
|
|
|
);
|
|
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_score_item_score ON performance_score_item(score_id, sort_order);
|
|
|
+
|
|
|
+CREATE TABLE IF NOT EXISTS peer_review_request (
|
|
|
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
|
+ period_id INTEGER NOT NULL,
|
|
|
+ subject_user_id INTEGER NOT NULL,
|
|
|
+ leader_id INTEGER NOT NULL,
|
|
|
+ status VARCHAR(32) NOT NULL DEFAULT 'DRAFT',
|
|
|
+ rejection_reason TEXT,
|
|
|
+ submitted_at TEXT,
|
|
|
+ approved_at TEXT,
|
|
|
+ deleted INTEGER NOT NULL DEFAULT 0,
|
|
|
+ created_at TEXT NOT NULL,
|
|
|
+ updated_at TEXT NOT NULL
|
|
|
+);
|
|
|
+CREATE UNIQUE INDEX IF NOT EXISTS uk_peer_review_request_subject
|
|
|
+ ON peer_review_request(period_id, subject_user_id);
|
|
|
+
|
|
|
+CREATE TABLE IF NOT EXISTS peer_review_invitation (
|
|
|
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
|
+ request_id INTEGER NOT NULL,
|
|
|
+ reviewer_id INTEGER NOT NULL,
|
|
|
+ reviewer_department_id_snapshot INTEGER,
|
|
|
+ relation_type_snapshot VARCHAR(24) NOT NULL,
|
|
|
+ status VARCHAR(24) NOT NULL DEFAULT 'PROPOSED',
|
|
|
+ decline_reason TEXT,
|
|
|
+ goal_contribution_score INTEGER,
|
|
|
+ collaboration_score INTEGER,
|
|
|
+ accountability_score INTEGER,
|
|
|
+ strengths TEXT,
|
|
|
+ improvement_suggestion TEXT,
|
|
|
+ responded_at TEXT,
|
|
|
+ submitted_at TEXT,
|
|
|
+ deleted INTEGER NOT NULL DEFAULT 0,
|
|
|
+ created_at TEXT NOT NULL,
|
|
|
+ updated_at TEXT NOT NULL
|
|
|
+);
|
|
|
+CREATE UNIQUE INDEX IF NOT EXISTS uk_peer_review_invitation_reviewer
|
|
|
+ ON peer_review_invitation(request_id, reviewer_id);
|
|
|
+CREATE INDEX IF NOT EXISTS idx_peer_review_invitation_reviewer
|
|
|
+ ON peer_review_invitation(reviewer_id, status);
|