using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using PolyTrader.Modules.ResolutionFarming.Models;

namespace PolyTrader.Modules.ResolutionFarming.Services
{
    /// <summary>
    /// Quelle der zu bewertenden Märkte für den Scanner. Trennt die (live-/API-gebundene) Beschaffung
    /// der Marktdaten von der reinen Bewertungs-Pipeline, damit die Scanner-Orchestrierung ohne echte
    /// Gamma-/CLOB-API testbar ist. Die Live-Implementierung (Gamma-API endDate-Fenster + CLOB-Book
    /// für den Ask) ist Zielland-Arbeit.
    /// </summary>
    public interface IFarmingMarketSource
    {
        /// <summary>
        /// Liefert Favoriten-Ausgänge von Märkten, die innerhalb des Settings-Fensters auflösen.
        /// Vorfilterung (endDate, nicht closed) darf hier passieren; die fachliche Filterung macht der Scanner.
        /// </summary>
        Task<IReadOnlyList<ScannedMarket>> GetNearResolutionFavoritesAsync(RfSettings settings, CancellationToken ct);
    }
}
