using System.Threading;
using System.Threading.Tasks;

namespace PolyTrader.Modules.ResolutionFarming.Services
{
    /// <summary>
    /// Quelle für den Auflösungsstatus eines Marktes. Trennt den (live-/API-gebundenen) Resolution-Check
    /// von der Close-Orchestrierung, damit der Monitor ohne echte API testbar ist. Live-Implementierung
    /// wickelt <c>PolymarketApiService.CheckMarketResolutionAsync</c> um (Zielland-Verdrahtung).
    /// </summary>
    public interface IMarketResolutionSource
    {
        Task<(bool isClosed, bool isWinner)> CheckAsync(string marketSlug, string tokenId, CancellationToken ct);
    }

    /// <summary>Platzhalter: nie aufgelöst. Hält den Monitor lauffähig, bis die Live-Quelle registriert ist.</summary>
    public sealed class NullMarketResolutionSource : IMarketResolutionSource
    {
        public Task<(bool isClosed, bool isWinner)> CheckAsync(string marketSlug, string tokenId, CancellationToken ct)
            => Task.FromResult((false, false));
    }
}
