namespace TeleWave.Application.Common.Interfaces;

/// <summary>
/// Сигнал «появилась заставка на рендер» для фонового рендерера. Как и у медиа-конвейера, источник
/// истины — статус ассета в БД (рендерер берёт следующий Pending c Source=Generated), а очередь лишь
/// будит его без задержки; потеря сигнала при рестарте задачи не теряет — они подхватываются из БД.
/// </summary>
public interface IBumperRenderQueue
{
    /// <summary>Разбудить рендерер: появился ассет-заставка в статусе Pending.</summary>
    void Enqueue(Guid assetId);

    /// <summary>Ждать сигнала о новой работе (с дренажом накопленных).</summary>
    ValueTask WaitAsync(CancellationToken cancellationToken);
}
