feat: Implement LTI deep linking, live sessions, predictive analytics, and portfolios with associated UI and database migrations.
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
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();
|
||||
Reference in New Issue
Block a user