Rustelo/resources/activities/migrations/008_activity_completions_sqlite.sql
Jesús Pérez f1010e9d07
chore: update
2026-07-18 20:16:16 +01:00

25 lines
1.1 KiB
SQL

-- Migration: 008 — Activity completions (charlas, talleres, presentaciones)
-- Database: SQLite
CREATE TABLE IF NOT EXISTS activity_completions (
id TEXT PRIMARY KEY DEFAULT (lower(hex(randomblob(16)))),
user_id TEXT NOT NULL REFERENCES users(id) ON DELETE CASCADE,
activity_id TEXT NOT NULL,
completed_at TEXT NOT NULL DEFAULT (datetime('now')),
questionnaire_type TEXT NOT NULL DEFAULT 'external',
notes TEXT,
UNIQUE(user_id, activity_id)
);
CREATE INDEX IF NOT EXISTS idx_activity_completions_user ON activity_completions(user_id);
CREATE INDEX IF NOT EXISTS idx_activity_completions_activity ON activity_completions(activity_id);
CREATE TABLE IF NOT EXISTS activity_responses (
id TEXT PRIMARY KEY DEFAULT (lower(hex(randomblob(16)))),
completion_id TEXT NOT NULL REFERENCES activity_completions(id) ON DELETE CASCADE,
question_key TEXT NOT NULL,
answer TEXT NOT NULL,
UNIQUE(completion_id, question_key)
);
CREATE INDEX IF NOT EXISTS idx_activity_responses_completion ON activity_responses(completion_id);