using System; using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; using Alpaca.Markets; using FinlyticCore.Models.Trades; namespace FinlyticBot.Services; public record BrokerAccountInfo( decimal Equity, decimal BuyingPower, decimal Cash, string Currency, bool IsBlocked ); public interface IAlpacaBrokerService { Task GetAccountInfoAsync(CancellationToken ct = default); Task GetAssetAsync(string symbol, CancellationToken ct = default); Task GetMarketClockAsync(CancellationToken ct = default); Task PlaceBracketOrderAsync(TradeProposalDto proposal, decimal quantity, string orderType = "Limit", CancellationToken ct = default); Task CancelOrderAsync(Guid orderId, CancellationToken ct = default); Task> GetOpenOrdersAsync(CancellationToken ct = default); }