namespace VoiceCat.App.Models; public enum AuthMode { Guest, Password, } /// One entry in the saved-server list (%AppData%\VoiceCat\servers.json). public sealed class SavedServer { public string DisplayName { get; set; } = ""; public string Host { get; set; } = ""; public ushort Port { get; set; } = 8384; public string LastNickname { get; set; } = ""; public AuthMode AuthMode { get; set; } = AuthMode.Guest; public string? SavedUsername { get; set; } /// DPAPI-protected (CurrentUser scope), base64 — only set when the user opts in /// via the "Remember my password on this computer" checkbox. Never plaintext, never the /// default. See PasswordProtector. public string? ProtectedPasswordBase64 { get; set; } public override string ToString() => string.IsNullOrWhiteSpace(DisplayName) ? $"{Host}:{Port}" : $"{DisplayName} ({Host}:{Port})"; }