using Managing.Domain.Statistics;

namespace Managing.Application.Abstractions.Repositories;

public interface IStatisticRepository
{
    Task InsertTopVolumeTicker(TopVolumeTicker topVolumeTicker);
    IList<TopVolumeTicker> GetTopVolumeTickers(DateTime date);
    Task SaveSpotligthtOverview(SpotlightOverview overview);
    IList<SpotlightOverview> GetSpotlightOverviews(DateTime date);
    void UpdateSpotlightOverview(SpotlightOverview overview);
    List<Trader> GetBestTraders();
    void UpdateBestTrader(Trader trader);
    Task InsertBestTrader(Trader trader);
    Task RemoveBestTrader(Trader trader);
    List<Trader> GetBadTraders();
    void UpdateBadTrader(Trader trader);
    Task InsertBadTrader(Trader trader);
    Task RemoveBadTrader(Trader trader);
    List<FundingRate> GetFundingRates();
    Task RemoveFundingRate(FundingRate oldRate);
    Task InsertFundingRate(FundingRate newRate);
    void UpdateFundingRate(FundingRate oldRate, FundingRate newRate);
}