modules/HomeLab.Core/Public/Configuration/Restore-Configuration.ps1

function Restore-Configuration {
    [CmdletBinding()]
    param(
        [Parameter(Mandatory = $true)]
        [string]$BackupFile,
        
        [Parameter(Mandatory = $false)]
        [string]$ConfigFile = $Global:Config.ConfigFile
    )
    
    if (Test-Path $BackupFile) {
        try {
            # Create a backup of the current configuration before restoring
            Backup-Configuration -ConfigFile $ConfigFile | Out-Null
            
            # Restore from the backup file
            Copy-Item -Path $BackupFile -Destination $ConfigFile -Force
            
            # Reload the configuration
            Initialize-Configuration -ConfigFile $ConfigFile | Out-Null
            
            Write-SafeLog -Message "Configuration restored from $BackupFile." -Level Info
            return $true
        }
        catch {
            Write-SafeLog -Message "Error restoring configuration: $_" -Level Error
            return $false
        }
    }
    else {
        Write-SafeLog -Message "Backup file not found at $BackupFile." -Level Error
        return $false
    }
}