Files
Adminator 1e51ef7def Nachtrag: alle bisher untracked Ordner + hängende Änderungen mit-committen
- Konzept/, didaktik_geografie/, didaktik_simulation/, v2-modules/, v2-platform/
- 12 code-workspace-Files
- STATUS-*.md
- viele M/D/R-Änderungen an bereits getrackten Files
- .gitignore verstärkt: **/.humaninput/, **/secret_keys.txt

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-07-08 02:27:02 +02:00

68 lines
3.5 KiB
SQL

-- 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';