Public/Set-UnifiDefaultSite.ps1

function Set-UnifiDefaultSite {
    [CmdletBinding()]
    param(
        [Parameter(Mandatory, Position = 0)]
        [string]$Site,

        # Persist the selection to disk so it survives reconnects
        [switch]$Save
    )

    if (-not $script:UnifiSession -or -not $script:UnifiConfig) {
        Write-Error "Not connected. Run Connect-UnifiController first."
        return
    }

    $previous = $script:UnifiConfig.DefaultSite
    $script:UnifiConfig.DefaultSite = $Site

    if ($Save) {
        Write-UnifiConfig -Config $script:UnifiConfig
        Write-Verbose "Site selection saved to $(Get-UnifiConfigPath)"
    }

    Write-Host "Default site: " -NoNewline -ForegroundColor White
    if ($previous -ne $Site) {
        Write-Host "$previous" -NoNewline -ForegroundColor DarkGray
        Write-Host " -> " -NoNewline -ForegroundColor DarkGray
    }
    Write-Host $Site -ForegroundColor Cyan
}