#!/usr/bin/env python3
"""
Script zum Erstellen von Test-Druckern für die MYP Plattform
"""

import sys
import os
sys.path.append('.')

from models import *
from datetime import datetime

def create_test_printers():
    """Erstellt Test-Drucker in der Datenbank."""
    
    # Verbindung zur Datenbank
    db_session = get_db_session()
    
    # Test-Drucker Daten
    test_printers = [
        {
            'name': 'Mercedes-Benz FDM Pro #01',
            'model': 'Ultimaker S5 Pro',
            'location': 'Werkhalle Sindelfingen',
            'plug_ip': '192.168.10.101',
            'status': 'available',
            'active': True
        },
        {
            'name': 'Mercedes-Benz FDM #02',
            'model': 'Prusa MK3S+',
            'location': 'Entwicklungszentrum Stuttgart',
            'plug_ip': '192.168.10.102',
            'status': 'printing',
            'active': True
        },
        {
            'name': 'Mercedes-Benz SLA #01',
            'model': 'Formlabs Form 3+',
            'location': 'Prototypenlabor',
            'plug_ip': '192.168.10.103',
            'status': 'available',
            'active': True
        },
        {
            'name': 'Mercedes-Benz Industrial #01',
            'model': 'Stratasys F370',
            'location': 'Industriehalle Bremen',
            'plug_ip': '192.168.10.104',
            'status': 'maintenance',
            'active': False
        },
        {
            'name': 'Mercedes-Benz Rapid #01',
            'model': 'Bambu Lab X1 Carbon',
            'location': 'Designabteilung',
            'plug_ip': '192.168.10.105',
            'status': 'offline',
            'active': True
        },
        {
            'name': 'Mercedes-Benz SLS #01',
            'model': 'HP Jet Fusion 5200',
            'location': 'Produktionszentrum Berlin',
            'plug_ip': '192.168.10.106',
            'status': 'available',
            'active': True
        }
    ]
    try:
        created_count = 0
        for printer_data in test_printers:
            # Prüfen ob Drucker bereits existiert
            existing = db_session.query(Printer).filter_by(name=printer_data['name']).first()
            if not existing:
                printer = Printer(
                    name=printer_data['name'],
                    model=printer_data['model'],
                    location=printer_data['location'],
                    plug_ip=printer_data['plug_ip'],
                    status=printer_data['status'],
                    active=printer_data['active'],
                    created_at=datetime.now()
                )
                db_session.add(printer)
                created_count += 1
                print(f"✅ Drucker '{printer_data['name']}' erstellt")
            else:
                print(f"ℹ️  Drucker '{printer_data['name']}' existiert bereits")
        
        db_session.commit()
        
        total_count = db_session.query(Printer).count()
        print(f"\n🎉 {created_count} neue Test-Drucker erstellt!")
        print(f"📊 Insgesamt {total_count} Drucker in der Datenbank.")
        
    except Exception as e:
        print(f"❌ Fehler beim Erstellen der Test-Drucker: {str(e)}")
        db_session.rollback()
    finally:
        db_session.close()

if __name__ == "__main__":
    print("🚀 Erstelle Test-Drucker für MYP Plattform...")
    create_test_printers()
    print("✅ Fertig!") 