using BankSampahApp.Models;

namespace BankSampahApp.Services;

/// <summary>
/// Interface untuk service yang menangani statistik aplikasi
/// </summary>
public interface IStatisticsService
{
    /// <summary>
    /// Mendapatkan statistik terkini dari aplikasi
    /// </summary>
    /// <returns>Model statistik terkini</returns>
    Task<StatisticsModel> GetCurrentStatisticsAsync();

    /// <summary>
    /// Mendapatkan statistik berdasarkan periode waktu
    /// </summary>
    /// <param name="startDate">Tanggal mulai</param>
    /// <param name="endDate">Tanggal akhir</param>
    /// <returns>Model statistik untuk periode tertentu</returns>
    Task<StatisticsModel> GetStatisticsByPeriodAsync(DateTime startDate, DateTime endDate);

    /// <summary>
    /// Update statistik dengan data baru
    /// </summary>
    /// <param name="statistics">Data statistik baru</param>
    /// <returns>True jika berhasil update</returns>
    Task<bool> UpdateStatisticsAsync(StatisticsModel statistics);
}