-- 043_lab_sim_links.sql — Контент-движок лаборатории, Фаза 5 (курикулумная привязка).
-- Связи симуляции с учебной программой: § учебника, тема, узел knowledge-map,
-- задача банка вопросов. Двусторонняя навигация (sim ↔ контент).
--
-- kind:
--   'textbook' — ref_id = textbooks.slug
--   'topic'    — ref_id = topics.id (как текст)
--   'kmap'     — ref_id = id узла графа знаний (свободная строка)
--   'question' — ref_id = questions.id (как текст)
-- label — необязательная человекочитаемая подпись (если не резолвится из БД).

CREATE TABLE IF NOT EXISTS lab_sim_links (
  id         INTEGER PRIMARY KEY AUTOINCREMENT,
  sim_id     TEXT NOT NULL,
  kind       TEXT NOT NULL,            -- textbook | topic | kmap | question
  ref_id     TEXT NOT NULL,
  label      TEXT,
  created_by INTEGER REFERENCES users(id),
  created_at TEXT NOT NULL DEFAULT (datetime('now')),
  UNIQUE (sim_id, kind, ref_id)
);

CREATE INDEX IF NOT EXISTS idx_lab_sim_links_sim  ON lab_sim_links (sim_id);
CREATE INDEX IF NOT EXISTS idx_lab_sim_links_ref  ON lab_sim_links (kind, ref_id);
