using KLHZ.Trader.Core.Contracts.Declisions.Dtos; using KLHZ.Trader.Core.Contracts.Declisions.Dtos.Enums; using KLHZ.Trader.Core.Contracts.Messaging.Dtos.Interfaces; namespace KLHZ.Trader.Core.Contracts.Declisions.Interfaces { public interface IPriceHistoryCacheUnit { public string Figi { get; } public int Length { get; } public ValueTask AddData(INewPrice priceChange); public ValueTask<(DateTime[] timestamps, decimal[] prices)> GetData(int? length = null); public ValueTask<(DateTime[] timestamps, decimal[] prices, bool isFullIntervalExists)> GetData(TimeSpan period); public ValueTask AddOrderbook(IOrderbook orderbook); public ValueTask AddDataToTimeWindowCache(string key, CachedValue data, TimeWindowCacheType timeWindowCacheType); public ValueTask GetDataFromTimeWindowCache(string key, TimeWindowCacheType timeWindowCacheType); /// /// Число заявок на продаже в стакане. /// public decimal AsksCount { get; } /// /// Число заявок на покупку в стакане. /// public decimal BidsCount { get; } public ValueTask<(DateTime time, decimal price)> GetLastValues(); } }