using Fitness_core_BE.DTOs.Stats; using Fitness_core_BE.Models; namespace Fitness_core_BE.Interfaces { public interface IClientStatRepository { Task GetTotalCustomerCountAsync(Guid clientId, CancellationToken ct = default); Task GetMonthlyCustomerCountAsync(Guid clientId, CancellationToken ct = default); Task GetTotalWorkoutPlanCountAsync(Guid clientId, CancellationToken ct = default); Task GetTotalMealPlanCountAsync(Guid clientId, CancellationToken ct = default); Task GetLastMonthCustomerCountAsync(Guid clientId, CancellationToken ct = default); Task> GetLastFiveAttendancesAsync(Guid clientId, CancellationToken ct = default); Task> GetLastFivePaymentsAsync(Guid clientId, CancellationToken ct = default); Task GetLastMonthRevenueAsync(Guid clientId, CancellationToken ct = default); Task> GetMonthlyRevenueVariationAsync(Guid clientId, DateTime? from = null, DateTime? to = null, CancellationToken ct = default); Task GetTotalRevenueAsync(Guid clientId, CancellationToken ct = default); Task GetClientStatSummaryAsync(Guid clientId, DateTime? from = null, DateTime? to = null, CancellationToken ct = default); Task GetExpiringSoonCountAsync(Guid clientId, DateTime from, DateTime to, CancellationToken ct = default); } }