#!/usr/bin/env python3 """ Drucker-Datenbank Setup für MYP Platform Trägt die hardkodierten Drucker in die Datenbank ein. """ import os import sys sys.path.append('.') from utils.settings import PRINTERS from database.db_manager import DatabaseManager from models import Printer from datetime import datetime def setup_drucker(): """Trägt die hardkodierten Drucker in die Datenbank ein.""" print("=== MYP Platform - Drucker-Setup ===") print(f"Hardkodierte Drucker: {len(PRINTERS)}") try: db = DatabaseManager() session = db.get_session() # Alle existierenden Drucker löschen existing_printers = session.query(Printer).all() if existing_printers: print(f"Lösche {len(existing_printers)} existierende Drucker...") for printer in existing_printers: session.delete(printer) session.commit() print("✅ Alle alten Drucker gelöscht") else: print("Keine existierenden Drucker gefunden") # Neue Drucker hinzufügen added_count = 0 for printer_name, config in PRINTERS.items(): # Neuen Drucker erstellen new_printer = Printer( name=printer_name, model="P115", # Standard-Modell location="Werk 040 - Berlin - TBA", # Aktualisierter Standort ip_address=config["ip"], mac_address=f"98:25:4A:E1:{printer_name[-1]}0:0{printer_name[-1]}", # Dummy MAC plug_ip=config["ip"], plug_username="admin", plug_password="admin", status="available", # Verfügbar, da in Konfiguration active=True, created_at=datetime.now() ) session.add(new_printer) print(f"✅ {printer_name}: Hinzugefügt (IP: {config['ip']})") added_count += 1 # Änderungen speichern session.commit() session.close() print(f"\n✅ {added_count} neue Drucker erfolgreich hinzugefügt") return True except Exception as e: print(f"❌ Fehler beim Setup der Drucker: {e}") import traceback traceback.print_exc() if 'session' in locals(): session.rollback() session.close() return False def list_drucker(): """Zeigt alle Drucker in der Datenbank an.""" print("\n=== Drucker in der Datenbank ===") try: db = DatabaseManager() session = db.get_session() printers = session.query(Printer).all() if not printers: print("Keine Drucker in der Datenbank gefunden.") return True print(f"{'ID':<5} {'Name':<15} {'Status':<12} {'IP-Adresse':<15} {'Aktiv':<8}") print("-" * 60) for printer in printers: active_str = "✅" if printer.active else "❌" print(f"{printer.id:<5} {printer.name:<15} {printer.status:<12} {printer.ip_address:<15} {active_str:<8}") session.close() print(f"\nGesamt: {len(printers)} Drucker") return True except Exception as e: print(f"❌ Fehler beim Abrufen der Drucker: {e}") if 'session' in locals(): session.close() return False if __name__ == "__main__": print("MYP Platform - Drucker-Datenbank Setup") print("=" * 40) success = setup_drucker() if success: list_drucker() print("\n✅ Drucker-Setup erfolgreich abgeschlossen!") else: print("\n❌ Drucker-Setup fehlgeschlagen!") sys.exit(1)