-- Test-User für V2-Plattform-Test (LOKAL).
-- Idempotent: nutzt INSERT IGNORE und alte Inserts werden bei zweitem Lauf einfach übersprungen.
--
-- Lehrperson:  username "v2admin"  email "v2admin@local"  password "geheim"  is_admin=1
-- Klasse:      name "V2-Demo 1A"   join_code "V2DEMO"
-- Schüler*innen in V2-Demo 1A:
--   lina   / password "kind"  / avatar fuchs-explorer
--   yusuf  / password "kind"  / avatar eule-prof       / easy_language=1
--   sofia  / password "kind"  / avatar astronaut       / nachteilsausgleich=1 + voll-A11y
--
-- Passwort-Hashes wurden mit PHP password_hash(..., PASSWORD_DEFAULT) generiert
-- am 2026-05-18. Bcrypt — niemand sollte sie auf Prod kopieren.

INSERT IGNORE INTO teachers (username, email, password, display_name, school_name, is_admin)
VALUES (
  'v2admin', 'v2admin@local',
  '$2y$10$ilqIFLGZvvjQIi9Y8/lXIOuO6.AlucfOFOSCr.hosm0sb/qZ0kweG',
  'V2 Admin', 'Lokale V2-Test-Schule', 1
);

INSERT IGNORE INTO classes (teacher_id, name, school_year, join_code)
SELECT id, 'V2-Demo 1A', '2025/26', 'V2DEMO' FROM teachers WHERE username = 'v2admin';

-- Schüler*innen — gleicher Passwort-Hash für alle drei
INSERT IGNORE INTO students (class_id, username, password, display_name, avatar_slug, easy_language)
SELECT c.id, 'lina', '$2y$10$5zP6BcyoCDzXQBfjZ01WCOtfYIUh6TKeuz5Fe3Sl45xAEJYfjwuo.', 'Lina', 'fuchs-explorer', 0
FROM classes c WHERE c.join_code = 'V2DEMO';

INSERT IGNORE INTO students (class_id, username, password, display_name, avatar_slug, easy_language)
SELECT c.id, 'yusuf', '$2y$10$5zP6BcyoCDzXQBfjZ01WCOtfYIUh6TKeuz5Fe3Sl45xAEJYfjwuo.', 'Yusuf', 'eule-prof', 1
FROM classes c WHERE c.join_code = 'V2DEMO';

INSERT IGNORE INTO students (class_id, username, password, display_name, avatar_slug, easy_language,
                              high_contrast, reduced_motion, screen_reader, nachteilsausgleich, text_scale)
SELECT c.id, 'sofia', '$2y$10$5zP6BcyoCDzXQBfjZ01WCOtfYIUh6TKeuz5Fe3Sl45xAEJYfjwuo.', 'Sofia', 'astronaut',
       0, 1, 1, 1, 1, 'large'
FROM classes c WHERE c.join_code = 'V2DEMO';

-- Beispiel-Modul-Registrierung (damit Cockpit nicht leer ist)
INSERT IGNORE INTO module_info_v2
  (slug, display_name, display_name_easy, version, spec_version, icon,
   short_description, short_description_easy, long_description, long_description_easy,
   estimated_duration_min, entry_url, maintainer_instance, status)
VALUES (
  'hallo-welt', 'Hallo Welt', 'Erste Aufgabe', '1.0.0', '1.0', '👋',
  'Beispiel-Modul: zeigt wie ein V2-Modul die Spec erfüllt.',
  'Ein erstes Beispiel zum Anschauen.',
  'Mini-Modul mit drei Schritten: Begrüßung, eine Multiple-Choice-Frage, Geschafft-Screen.',
  'Eine kleine Aufgabe zum Schauen.',
  2, '/v2beta/sims/hallo-welt/public/game.html', 'atlas', 'stable'
);

INSERT IGNORE INTO module_levels_v2 (module_slug, level_id, label, label_easy, display_order)
VALUES ('hallo-welt', 'L1', 'Einsteiger', 'Leicht', 0);

INSERT IGNORE INTO module_milestones_v2 (module_slug, milestone_id, label, display_order)
VALUES
  ('hallo-welt', 'welcome-shown',     'Begrüßung gesehen',     0),
  ('hallo-welt', 'question-answered', 'Frage beantwortet',     1),
  ('hallo-welt', 'module-completed',  'Modul abgeschlossen',   2);

-- V1-Freigabe in class_modules: damit das Modul im freien Modus auftaucht.
-- Wenn class_modules-Tabelle nicht existiert, ignoriert MySQL den Insert-Fehler nicht selber —
-- deshalb in try/catch-Manier separat ausführen (siehe Skript-Aufruf).

INSERT IGNORE INTO class_modules (class_id, module_id, enabled)
SELECT c.id, 'hallo-welt', 1 FROM classes c WHERE c.join_code = 'V2DEMO';
