#!/usr/bin/env python3.11 """ Script zum Erstellen von Test-Druckern mit Tapo-Steckdosen """ from models import get_db_session, Printer from datetime import datetime def create_test_printers(): """Erstellt Test-Drucker mit Tapo-Steckdosen.""" db = get_db_session() # Test-Drucker mit Tapo-Steckdosen test_printers = [ { 'name': 'Ender 3 Pro', 'ip': '192.168.0.100', 'plug_ip': '192.168.0.103', 'location': 'Werkstatt A', 'description': 'Creality Ender 3 Pro - Einsteigermodell' }, { 'name': 'Prusa i3 MK3S', 'ip': '192.168.0.101', 'plug_ip': '192.168.0.104', 'location': 'Werkstatt B', 'description': 'Prusa i3 MK3S+ - Profi-Drucker' }, { 'name': 'Artillery Sidewinder', 'ip': '192.168.0.102', 'plug_ip': '192.168.0.100', 'location': 'Labor', 'description': 'Artillery Sidewinder X1 - Großformat' }, { 'name': 'Bambu Lab A1 mini', 'ip': '192.168.0.106', 'plug_ip': '192.168.0.101', 'location': 'Entwicklung', 'description': 'Bambu Lab A1 mini - Kompakt und schnell' }, { 'name': 'Ultimaker S3', 'ip': '192.168.0.106', 'plug_ip': '192.168.0.102', 'location': 'Prototyping', 'description': 'Ultimaker S3 - Dual-Extruder' } ] created_count = 0 updated_count = 0 for printer_data in test_printers: existing = db.query(Printer).filter_by(name=printer_data['name']).first() if not existing: printer = Printer( name=printer_data['name'], ip=printer_data['ip'], plug_ip=printer_data['plug_ip'], location=printer_data['location'], description=printer_data['description'], active=True, created_at=datetime.now() ) db.add(printer) created_count += 1 print(f"✅ Erstellt: {printer_data['name']} mit Tapo {printer_data['plug_ip']}") else: existing.plug_ip = printer_data['plug_ip'] existing.location = printer_data['location'] existing.description = printer_data['description'] existing.active = True updated_count += 1 print(f"🔄 Aktualisiert: {printer_data['name']} mit Tapo {printer_data['plug_ip']}") try: db.commit() print(f"\n🎯 Erfolgreich abgeschlossen:") print(f" - {created_count} neue Drucker erstellt") print(f" - {updated_count} Drucker aktualisiert") print(f" - Gesamt: {created_count + updated_count} Drucker mit Tapo-Steckdosen") except Exception as e: db.rollback() print(f"❌ Fehler beim Speichern: {e}") finally: db.close() if __name__ == "__main__": print("🔧 Erstelle Test-Drucker mit Tapo-Steckdosen...") create_test_printers()