using Cleanuparr.Domain.Enums; namespace Cleanuparr.Infrastructure.Stats; /// /// Service for aggregating application statistics /// public interface IStatsService { /// /// Gets aggregated statistics for the given timeframe. Every section except health is scoped to the timeframe and, /// by default, excludes dry-run activity. /// /// Timeframe in hours /// When true, dry-run events are included in the timeframe-scoped sections Task GetStatsV2Async(int hours, bool includeDryRun = false); /// /// Gets a bucketed timeline for a single metric over the given timeframe. /// /// strikesIssued | recovered | removed | malwareBlocked | events /// Timeframe in hours /// Bucket size; when null, defaults to hourly for timeframes up to 24h, daily otherwise /// When true, dry-run events are included Task> GetTimelineAsync(string metric, int hours, TimelineBucketSize? bucket = null, bool includeDryRun = false); }