
namespace ZuluTradingSampleApp.Trading
{
    /// <summary>
    /// Utility class that converts 
    /// trading requests to the corresponding rest api calls
    /// to ZuluTrade
    /// </summary>
    public interface IZuluTradingRequestGenerator
    {
        string GetOpenMarketRequest(string currencyName, double lots, bool buy, double requestedPrice, string uniqueId);
        string GetCloseMarketRequest(string currencyName, double lots, bool buy, double requestedPrice, string uniqueId);
        string GetOpenOrderRequest(string currencyName, double lots, bool buy, double requestedPrice, string uniqueId);
        string GetCancelOrderRequest(string currencyName, double lots, bool buy, string uniqueId);
        string GetUpdateLimitRequest(string currencyName, double lots, bool isBuy, double limitValue, string uniqueId);
        string GetUpdateStopRequest(string currencyName, double lots, bool isBuy, double stopValue, string uniqueId);
        string GetUpdateTrailingStopRequest(string currencyName, bool isBuy, double lots, string uniqueId, int trailingStopValue);
        string GetUpdateTrailingStopConditionRequest(string currencyName, bool buy, double lots, string uniqueId, int trailingStopValue, int tralingStopConditionPips);
        string GetUpdateEntryRateRequest(string currencyName, double lots, bool isBuy, double entryRate, string uniqueId);
        string GetOpenTradesRequest();
        string GetTradingConfigurationRequest();
        string GetProviderStatisticsRequest();
        string GetHistoryRequest(string startDate, string endDate);
    }
}
