Public/Get-BridgeStatus.ps1

function Get-BridgeStatus {
    [CmdletBinding()]
    <#
    .SYNOPSIS
    Ανακτά την τρέχουσα κατάσταση γεφυρών από διαδικτυακή σελίδα.

    .DESCRIPTION
    Η Get-BridgeStatus ανακτά HTML, αναλύει την κατάσταση
    και επιστρέφει λίστα καταστάσεων γεφυρών.

    .PARAMETER OutputFile
    (Προαιρετικό) Το αρχείο όπου θα αποθηκευτεί η τρέχουσα κατάσταση.

    .OUTPUTS
    [object[]] - Λίστα καταστάσεων γεφυρών.

    .EXAMPLE
    Get-BridgeStatus -OutputFile 'C:\Logs\current-status.json'

    .NOTES
    Αν αποτύχει η ανάκτηση HTML, επιστρέφεται κενό array.
    #>


    [OutputType([object[]])]
    param (
        [Parameter()][string]$OutputFile
    )
    begin {
        $timestamp = Get-Date -Format o
        $result    = @()
        $html      = Get-BridgeHtml
    }
    process {
        if (-not $html) {
            $writeBridgeLogSplat = @{
                Stage      = 'Σφάλμα'
                Message    = '❌ Αποτυχία ανάκτησης HTML.'
                Level      = 'Warning'
            }
            Write-BridgeLog @writeBridgeLogSplat
            return @()
        }
        $getBridgeStatusFromHtmlSplat = @{
            Html         = $html
            Timestamp    = $timestamp
        }
        $result    = Get-BridgeStatusFromHtml @getBridgeStatusFromHtmlSplat
    }
    end {
        if ($result.Count -eq 0) {
            $writeBridgeLogSplat = @{
                Stage      = 'Σφάλμα'
                Message    = '⛔ Δεν υπάρχει διαθέσιμο status για αποθήκευση.'
                Level      = 'Warning'
            }
            Write-BridgeLog @writeBridgeLogSplat
        }
        if ($PSBoundParameters.ContainsKey('OutputFile')) {
            if ($result -and $result.Count -gt 0) {
                $splat = @{
                    Data                 = $result
                    Path                 = $OutputFile
                }
                Export-BridgeStatusJson @splat
            } else {
                $writeBridgeLogSplat = @{
                    Stage      = 'Σφάλμα'
                    Message    = '⛔ Δεν υπάρχει διαθέσιμο status για αποθήκευση.'
                    Level      = 'Warning'
                }
                Write-BridgeLog @writeBridgeLogSplat
            }
        }
        return $result
    }
}