Files
openccb/services/lms-service/migrations/20260226010000_dropout_risks.sql
T

30 lines
964 B
PL/PgSQL

CREATE OR REPLACE FUNCTION update_updated_at_column()
RETURNS TRIGGER AS $$
BEGIN
NEW.updated_at = NOW();
RETURN NEW;
END;
$$ language 'plpgsql';
CREATE TYPE dropout_risk_level AS ENUM ('low', 'medium', 'high', 'critical');
CREATE TABLE IF NOT EXISTS dropout_risks (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
organization_id UUID NOT NULL REFERENCES organizations(id),
course_id UUID NOT NULL REFERENCES courses(id),
user_id UUID NOT NULL REFERENCES users(id),
risk_level dropout_risk_level NOT NULL DEFAULT 'low',
score REAL NOT NULL DEFAULT 0.0,
reasons JSONB,
last_calculated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
UNIQUE(course_id, user_id)
);
-- Trigger for updated_at
CREATE TRIGGER update_dropout_risks_updated_at
BEFORE UPDATE ON dropout_risks
FOR EACH ROW
EXECUTE FUNCTION update_updated_at_column();