"""Initial-Seeds fuer 3d.lehrstun.de. Idempotent — laeuft bei jeder Ausfuehrung ohne Schaden. Aktuell befuellt: - ag_mitgliedschaft: 'lessing-3d-ag' (die eine, dauerhafte AG) - drucker: 4 Bambu-Lab-Drucker (3 geschlossen + 1 A1 mini) Spaeter folgen Seeds fuer: - lektion: L1-L3 Onboarding (Etappe 3, mit Markus inhaltlich) - einstellung: Default-Werte fuer Tag-Vorschlaege etc. """ from database import get_db, init_db def seed_ag(): """Die eine dauerhafte AG.""" conn = get_db() conn.execute( "INSERT OR IGNORE INTO ag_mitgliedschaft (id, name, start_datum, status) " "VALUES (?, ?, ?, ?)", ("lessing-3d-ag", "3D-Druck-AG Lessing-Gymnasium", "2026-05-24", "aktiv") ) conn.commit() conn.close() print("[seed] AG 'lessing-3d-ag' angelegt (oder bereits da).") def seed_drucker(): """4 Bambu-Lab-Drucker mit Default-Namen. Konkrete Serial-Numbers + Namen werden vom Admin per Inline-Edit gepflegt. Hier nur Platzhalter, damit die Drucker-Verwaltung was zum Anzeigen hat. """ drucker = [ ("P1S #1", "P1S", None, 1, "geschlossenes Gehäuse"), ("P1S #2", "P1S", None, 1, "geschlossenes Gehäuse"), ("X1C", "X1C", None, 1, "geschlossen + HEPA"), ("A1 mini", "A1 mini", None, 0, "offen — Hände weg vom Hotend!"), ] conn = get_db() for name, modell, serial, geschlossen, notiz in drucker: conn.execute( "INSERT OR IGNORE INTO drucker (name, modell, serial_nr, geschlossenes_gehaeuse, aktiv, notiz) " "VALUES (?, ?, ?, ?, 1, ?)", (name, modell, serial, geschlossen, notiz) ) conn.commit() conn.close() print(f"[seed] {len(drucker)} Drucker angelegt (oder bereits da).") def seed_einstellungen(): """Default-Einstellungen, die spaeter inline editiert werden koennen.""" werte = [ ("tag_vorschlaege", "schluesselanhaenger,organizer,werkzeug,spiel,dekoration,ersatzteil,geschenk,figur", "text", "Komma-getrennte Liste der vorgeschlagenen Tags im Projekt-Katalog"), ("default_lockout_dauer_min", "15", "integer", "Minuten, die ein Profil bei zu vielen Fehlversuchen gesperrt wird"), ("feedback_widget_aktiv", "0", "integer", "Soft-Schalter fuer das Alph-PummelHummel-Widget (kommt in Etappe 9)"), ] conn = get_db() for schluessel, wert, typ, beschreibung in werte: conn.execute( "INSERT OR IGNORE INTO einstellung (schluessel, wert, typ, beschreibung) " "VALUES (?, ?, ?, ?)", (schluessel, wert, typ, beschreibung) ) conn.commit() conn.close() print(f"[seed] {len(werte)} Default-Einstellungen angelegt.") def main(): init_db() seed_ag() seed_drucker() seed_einstellungen() print("[seed] Fertig.") if __name__ == "__main__": main()