#!/usr/bin/env python3
"""
BambuLuc - Librería completa para control de impresoras Bambu Lab
===============================================================

Desarrollada por Angel Luis Barbero Guerras
Copyright (c) 2025 Angel Luis Barbero Guerras

Características:
- ✅ Socket SSL directo para archivos grandes
- ✅ Protocolo MQTT en tiempo real
- ✅ Configuración anti-SD automática
- ✅ Monitoreo completo de estados
- ✅ Control total de impresión
- ✅ Gestión de múltiples impresoras
- ✅ Callbacks personalizables
- ✅ Manejo robusto de errores

Ejemplo de uso:
    from bambuluc import BambuLabPrinter
    
    printer = BambuLabPrinter("192.168.20.76", "93481864", "device_id")
    if printer.connect():
        printer.send_file("archivo.gcode.3mf")
        printer.disconnect()

Licencia:
    Uso gratuito para proyectos personales y educativos.
    Uso comercial requiere licencia comercial.
    Ver LICENSE para más detalles.
"""

__version__ = "1.0.0"
__author__ = "Angel Luis Barbero Guerras"
__email__ = ""
__license__ = "Custom Commercial License"
__url__ = "https://github.com/AngelBarbero/bambuluc"

# Importar clases principales
from .core import (
    BambuLabPrinter,
    BambuLabManager,
    PrinterStatus,
    FileInfo,
    calculate_md5,
    format_time,
    format_size
)

# Definir qué se exporta con "from bambuluc import *"
__all__ = [
    # Clases principales
    "BambuLabPrinter",
    "BambuLabManager",
    
    # Clases de datos
    "PrinterStatus", 
    "FileInfo",
    
    # Funciones de utilidad
    "calculate_md5",
    "format_time",
    "format_size",
    
    # Metadatos
    "__version__",
    "__author__",
    "__license__",
    "__url__"
]

# Información de la librería
def get_version():
    """Obtener versión de BambuLuc"""
    return __version__

def get_info():
    """Obtener información de BambuLuc"""
    return {
        "name": "BambuLuc",
        "version": __version__,
        "author": __author__,
        "license": __license__,
        "url": __url__,
        "description": "Librería completa para control de impresoras Bambu Lab"
    }

# Verificar dependencias al importar
try:
    import paho.mqtt.client as mqtt
except ImportError:
    raise ImportError(
        "BambuLuc requiere paho-mqtt. Instala con: pip install paho-mqtt"
    )

try:
    import ssl
except ImportError:
    raise ImportError(
        "BambuLuc requiere soporte SSL. Actualiza tu instalación de Python."
    )

# Configurar logging básico
import logging
logging.getLogger(__name__).addHandler(logging.NullHandler())

# Mensaje de bienvenida (solo en desarrollo)
import os
if os.environ.get("BAMBULUC_DEBUG"):
    print(f"🖨️ BambuLuc v{__version__} - Desarrollado por {__author__}")
    print("   https://github.com/AngelBarbero/bambuluc")
    print("   Licencia: Custom Commercial License")
    print("   Uso comercial requiere licencia comercial\n")
