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