# Install GuruRMM Agent as Service on AD2
# This script installs the agent as a Windows service

Write-Host "[INFO] Installing GuruRMM agent as service on AD2..."

# Configuration
$serverUrl = "wss://rmm-api.azcomputerguru.com/ws"
$apiKey = "SWIFT-CLOUD-6910"  # Main Office site code
$agentPath = "C:\Program Files\GuruRMM\gururmm-agent.exe"

# Check if agent binary exists
if (!(Test-Path $agentPath)) {
    Write-Host "[ERROR] Agent binary not found at $agentPath"
    exit 1
}

Write-Host "[OK] Agent binary found"

# Check if service already exists
$existingService = Get-Service -Name "gururmm-agent" -ErrorAction SilentlyContinue
if ($existingService) {
    Write-Host "[WARNING] Service already exists - uninstalling first..."
    & $agentPath uninstall
    Start-Sleep -Seconds 2
}

# Install the agent as a service
Write-Host "[INFO] Installing agent as service..."
Write-Host "  Server URL: $serverUrl"
Write-Host "  API Key: $apiKey"

& $agentPath install --server-url $serverUrl --api-key $apiKey

if ($LASTEXITCODE -ne 0) {
    Write-Host "[ERROR] Installation failed with exit code: $LASTEXITCODE"
    exit 1
}

Start-Sleep -Seconds 2

# Verify service was created
$service = Get-Service -Name "gururmm-agent" -ErrorAction SilentlyContinue
if ($service) {
    Write-Host "[OK] Service created successfully"
    Write-Host "  Name: $($service.Name)"
    Write-Host "  Status: $($service.Status)"
    Write-Host "  Start Type: $($service.StartType)"

    # Start the service if not running
    if ($service.Status -ne "Running") {
        Write-Host "[INFO] Starting service..."
        Start-Service -Name "gururmm-agent"
        Start-Sleep -Seconds 2

        $service = Get-Service -Name "gururmm-agent"
        Write-Host "[OK] Service status: $($service.Status)"
    }
} else {
    Write-Host "[ERROR] Service was not created"
    exit 1
}

Write-Host ""
Write-Host "[SUCCESS] GuruRMM agent installed and running on AD2!"
