Private/get-clusterHealthScore.ps1

function Get-ClusterHealthScore {
    param (
        [array]$Checks
    )

    $validChecks = $Checks | Where-Object {
        $_.Weight -ne $null -and $_.Total -ne $null
    }


    if (-not $validChecks) {
        Write-Host "⚠️ No valid checks found." -ForegroundColor Red
        return 0
    }

    $maxScore = ($validChecks | Measure-Object -Property Weight -Sum).Sum
    $earnedScore = ($validChecks | Where-Object { $_.Total -eq 0 } | Measure-Object -Property Weight -Sum).Sum

    $score = [math]::Round(($earnedScore / $maxScore) * 100)
    return $score
}