-- 078_prep_tracks.sql
-- Система «подготовка к направлению» (ЦТ и др.): флаг ученика + коллекция колод.
--
-- МАСТЕР-ФЛАГ: запись student_prep(user_id, track) открывает ученику ВЕСЬ контент
-- трека сразу — коллекцию флешкарт (flashcard_decks.collection), курс и пробники
-- (content_type='course'/'exam'). Маппинг трек→контент — services/prepTracks.js;
-- динамический резолв доступа — services/contentAccess.js (без материализации
-- правил content_access) и flashcardController.deckAccess/listDecks.
--
-- Управление флагом — учитель (своим ученикам) и админ (см. prepController.js).

-- 1) Флаг подготовки ученика по треку. track — ключ направления ('ct-math', …).
CREATE TABLE IF NOT EXISTS student_prep (
  id         INTEGER PRIMARY KEY AUTOINCREMENT,
  user_id    INTEGER NOT NULL REFERENCES users(id) ON DELETE CASCADE,
  track      TEXT    NOT NULL,
  created_by INTEGER REFERENCES users(id) ON DELETE SET NULL,
  created_at TEXT    NOT NULL DEFAULT (datetime('now')),
  UNIQUE (user_id, track)
);
CREATE INDEX IF NOT EXISTS idx_student_prep_user  ON student_prep(user_id);
CREATE INDEX IF NOT EXISTS idx_student_prep_track ON student_prep(track);

-- 2) Коллекция (папка/направление) колоды. NULL = вне коллекции (поведение как раньше).
ALTER TABLE flashcard_decks ADD COLUMN collection TEXT;

-- 3) Разметить существующие ЦТ-колоды коллекцией 'ct-math' (заголовки «ЦТ · …»).
UPDATE flashcard_decks SET collection = 'ct-math' WHERE title LIKE 'ЦТ ·%';
