namespace Nexus.Api.Services;
public sealed class StaleTaskRecoveryOptions
{
public const string SectionName = "TaskRecovery";
/// Schwelle (Minuten) ohne Aktivität, ab der ein In-progress-Task als hängend gilt.
public int StalledMinutes { get; set; } = 40;
/// Prüfintervall des Watchdogs.
public int IntervalMinutes { get; set; } = 10;
/// Nur für den manuellen Hard-Reset-Endpoint: Alter (Stunden) ab dem hart zurückgesetzt wird.
public int StaleHours { get; set; } = 2;
public TimeSpan GetStalledThreshold() => TimeSpan.FromMinutes(Math.Max(1, StalledMinutes));
public TimeSpan GetStaleThreshold() => TimeSpan.FromHours(Math.Max(1, StaleHours));
public TimeSpan GetInterval() => TimeSpan.FromMinutes(Math.Max(1, IntervalMinutes));
}