using System.Text.Json; namespace LehrerApp.Core.Services; internal class PrivacySettingsConfig { public int RetentionYears { get; set; } = 3; } /// /// Löschfristen für Dokumentationseinträge (5.4.2). Löscht nichts automatisch — schlägt /// abgelaufene Einträge nur zur manuellen Prüfung/Löschung vor. /// public class PrivacySettingsService { private readonly string _configPath; private PrivacySettingsConfig _config; public int RetentionYears => _config.RetentionYears; public PrivacySettingsService(string appDataPath) { _configPath = Path.Combine(appDataPath, "privacy.json"); _config = Load(); } public void SetRetentionYears(int years) { _config.RetentionYears = Math.Max(1, years); File.WriteAllText(_configPath, JsonSerializer.Serialize(_config)); } public DateTime RetentionCutoff(DateTime? now = null) => (now ?? DateTime.UtcNow).AddYears(-RetentionYears); private PrivacySettingsConfig Load() { try { if (File.Exists(_configPath)) return JsonSerializer.Deserialize(File.ReadAllText(_configPath)) ?? new PrivacySettingsConfig(); } catch { /* beschädigte Konfiguration -> Standardwert */ } return new PrivacySettingsConfig(); } }