# Script para ejecutar el Contenedor Cuántico
# Asegúrese de ejecutar este script como administrador

# Verificar privilegios de administrador
if (-NOT ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")) {
    Write-Warning "¡Este script requiere privilegios de administrador!"
    Write-Warning "Por favor, ejecute PowerShell como administrador e intente de nuevo."
    exit
}

Write-Host "=== Iniciando el Contenedor Cuántico ==="

# Ruta al entorno virtual
$venvPath = "c:\contenedor_cuantico_1\.venv"

# Verificar si el entorno virtual existe
if (-Not (Test-Path "$venvPath\Scripts\activate")) {
    Write-Host "❌ El entorno virtual no existe. Creándolo..."
    python -m venv $venvPath
    if (-Not (Test-Path "$venvPath\Scripts\activate")) {
        Write-Host "❌ Error al crear el entorno virtual. Verifique su instalación de Python."
        exit
    }
}

# Activar el entorno virtual
Write-Host "Activando el entorno virtual..."
& "$venvPath\Scripts\activate"

# Instalar dependencias si es necesario
Write-Host "Instalando dependencias necesarias..."
pip install -r c:\contenedor_cuantico_1\.venv\src\requirements.txt

# Preparar el punto de montaje
$mountpoint = "c:\contenedor_cuantico_1\.venv\mountpoint"
if (-Not (Test-Path $mountpoint)) {
    Write-Host "Creando el punto de montaje en $mountpoint..."
    New-Item -ItemType Directory -Path $mountpoint | Out-Null
}

# Ejecutar el driver
Write-Host "Ejecutando el Quantum Driver..."
python c:\contenedor_cuantico_1\.venv\src\quantum_driver.py $mountpoint

Write-Host "=== Contenedor Cuántico iniciado correctamente ==="
Write-Host "Puede acceder a los archivos en el punto de montaje: $mountpoint"
