namespace WindowsGotify.Models; public sealed class AppConfig { public GotifyConfig Gotify { get; set; } = new(); public NotificationConfig Notification { get; set; } = new(); public ReconnectConfig Reconnect { get; set; } = new(); public HistoryConfig History { get; set; } = new(); public StartupConfig Startup { get; set; } = new(); public UiConfig Ui { get; set; } = new(); } public sealed class UiConfig { /// "Light" / "Dark" / "System" public string Theme { get; set; } = "System"; } public sealed class GotifyConfig { public string Url { get; set; } = "http://127.0.0.1:8080"; public string ClientToken { get; set; } = ""; } public sealed class NotificationConfig { public bool Enabled { get; set; } = true; public bool Sound { get; set; } = true; public int MaxMessageLength { get; set; } = 2000; } public sealed class ReconnectConfig { public int InitialDelaySeconds { get; set; } = 2; public int MaxDelaySeconds { get; set; } = 60; } public sealed class HistoryConfig { public bool Enabled { get; set; } = true; public int StartupSyncCount { get; set; } = 20; public int ViewerLimit { get; set; } = 50; } public sealed class StartupConfig { public bool Enabled { get; set; } = true; }