namespace Cleanuparr.Infrastructure.Stats;
///
/// Downloads cleaned by the download cleaner in the timeframe (DownloadCleaned events), broken down by reason.
/// Cleaning is distinct from a removal: it happens when a download meets its seeding goals, not because it
/// was struck out. Excludes dry-run activity unless the caller opts in.
///
public class CleanedV2Stats
{
///
/// Total downloads cleaned in the timeframe (all reasons). Equal to the sum of .
///
public int Total { get; set; }
///
/// Cleaned downloads grouped by clean reason (MaxRatioReached, MaxSeedTimeReached).
/// Keys are PascalCase clean-reason names; only reasons with activity are present.
///
public Dictionary ByReason { get; set; } = new();
}