using Managing.Domain.Backtests; using Managing.Domain.Statistics; using Managing.Domain.Trades; using Managing.Domain.Users; using static Managing.Common.Enums; namespace Managing.Application.Abstractions.Services; public interface IMessengerService { Task SendSignal(string message, TradingExchanges exchange, Ticker ticker, TradeDirection direction, Timeframe timeframe); Task SendPosition(Position position); void SendClosingPosition(Position position); Task SendMessage(string message); Task SendMessage(string message, string channelId); Task SendTradeMessage(string message, bool isBadBehavior = false, User user = null); Task SendIncreasePosition(string address, Trade trade, string copyAccountName, Trade? oldTrade = null); Task SendClosedPosition(string address, Trade oldTrade); Task SendDecreasePosition(string address, Trade newTrade, decimal decreaseAmount); Task SendBestTraders(List traders); Task SendBadTraders(List filteredTrader); Task SendDowngradedFundingRate(FundingRate oldRate); Task SendNewTopFundingRate(FundingRate newRate); Task SendFundingRateUpdate(FundingRate oldRate, FundingRate newRate); Task SendBacktestNotification(Backtest backtest); Task SendGeneticAlgorithmNotification(GeneticRequest request, double bestFitness, object? bestChromosome); Task SendClosedPosition(Position position, User user); }