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();
}
}