namespace KArtSell.Modules.ModelOperations.ShadowRun.Services;

public interface IKisDataService
{
    /// <summary>
    /// Fetch trading orders for an account within date range.
    /// </summary>
    Task<IReadOnlyList<OrderItem>> GetTradingOrdersAsync(
        string accountNumber,
        DateOnly startDate,
        DateOnly endDate,
        CancellationToken cancellationToken);

    /// <summary>
    /// Fetch current portfolio holdings for position reconciliation.
    /// </summary>
    Task<IReadOnlyList<PositionItem>> GetPortfolioHoldingsAsync(
        string accountNumber,
        CancellationToken cancellationToken);

    /// <summary>
    /// Execute a buy/sell order (production only, not used in shadow run).
    /// </summary>
    Task<OrderExecutionResult> ExecuteOrderAsync(
        string accountNumber,
        OrderRequest request,
        CancellationToken cancellationToken);
}
