using IdokladSdk.Enums; using Idoklad.Client; namespace Idoklad.Services; /// Agenda statistics and summaries. public sealed class StatisticsService { private readonly IdokladApiAccessor _accessor; public StatisticsService(IdokladApiAccessor accessor) => _accessor = accessor; public async Task InvoicingForPeriodAsync(PeriodType periodType, CancellationToken ct) => (await _accessor.Api.StatisticsClient.InvoicingForPeriodAsync(periodType, null, ct)).Unwrap(); public async Task InvoicingForYearAsync(YearType yearType, CancellationToken ct) => (await _accessor.Api.StatisticsClient.InvoicingForYearAsync(yearType, ct)).Unwrap(); public async Task QuarterSummaryAsync(CancellationToken ct) => (await _accessor.Api.StatisticsClient.QuarterSummaryAsync(ct)).Unwrap(); public async Task TopPartnersAsync(int? count, CancellationToken ct) => (await _accessor.Api.StatisticsClient.TopPartnersAsync(count, ct)).Unwrap(); public async Task AgendaSummaryAsync(CancellationToken ct) => (await _accessor.Api.StatisticsClient.AgendaSummaryAsync(ct)).Unwrap(); public async Task StatisticForContactAsync(int id, CancellationToken ct) => (await _accessor.Api.StatisticsClient.StatisticForContactAsync(id, ct)).Unwrap(); public async Task DebtIntervalsAsync(CancellationToken ct) => (await _accessor.Api.StatisticsClient.DebtIntervals(ct)).Unwrap(); public async Task TopDebtorsAsync(int? count, CancellationToken ct) => (await _accessor.Api.StatisticsClient.TopDebtors(count, ct)).Unwrap(); public async Task VatPayerProgressAsync(CancellationToken ct) => (await _accessor.Api.StatisticsClient.VatPayerProgress(ct)).Unwrap(); }