using System.ComponentModel; using System.Text.Json.Serialization; namespace ClawdDotNet.Models; [TypeConverter(typeof(ExpandableObjectConverter))] public sealed class AppSettings { [Category("Allgemein")] [DisplayName("Log-Verzeichnis")] [Description("Pfad zum Verzeichnis, in dem Log-Dateien gespeichert werden.")] [JsonPropertyName("logDirectory")] public string LogDirectory { get; set; } = "./Logs"; [Category("Allgemein")] [DisplayName("Instanzen-Verzeichnis")] [Description("Pfad zum Verzeichnis, in dem alle Instanz-Ordner liegen.")] [JsonPropertyName("instancesDirectory")] public string InstancesDirectory { get; set; } = "./Instances"; [Category("Allgemein")] [DisplayName("Standard-Konfigurations-Datei")] [Description("Pfad zur Standard-Instanz-Konfiguration (Legacy). Neue Instanzen nutzen das Instanzen-Verzeichnis.")] [JsonPropertyName("defaultConfigPath")] public string DefaultConfigPath { get; set; } = "./configs/config.json"; [Category("Allgemein")] [DisplayName("Minimaler Log-Level")] [Description("Minimaler Log-Level für die Datei-Logs (Debug, Info, Warn, Error).")] [JsonPropertyName("minimumLogLevel")] public string MinimumLogLevel { get; set; } = "Info"; [Category("UI")] [DisplayName("Max. Log-Zeilen in UI")] [Description("Maximale Anzahl Zeilen in der Log-RichTextBox bevor bereinigt wird.")] [JsonPropertyName("maxLogLinesInUi")] public int MaxLogLinesInUi { get; set; } = 2000; [Category("UI")] [DisplayName("Log-Aktualisierungsintervall (ms)")] [Description("Intervall in Millisekunden, in dem die Log-Anzeige aktualisiert wird.")] [JsonPropertyName("logRefreshIntervalMs")] public int LogRefreshIntervalMs { get; set; } = 500; [Category("API")] [DisplayName("Status-Check-Intervall (Sek)")] [Description("Intervall in Sekunden für den OpenRouter-API-Status-Check.")] [JsonPropertyName("statusCheckIntervalSeconds")] public int StatusCheckIntervalSeconds { get; set; } = 60; [Category("API")] [DisplayName("OpenRouter Base-URL")] [Description("Basis-URL der OpenRouter-API.")] [JsonPropertyName("openRouterBaseUrl")] public string OpenRouterBaseUrl { get; set; } = "https://openrouter.ai/api/v1/"; public override string ToString() => "Anwendungseinstellungen"; }