using System.Threading;
using System.Threading.Tasks;
using AutoBidder.Models;
namespace AutoBidder.Services
{
///
/// Legge la pagina delle ricompense di Bidoo e riscuote ciò che è rimasto da prendere.
///
/// È un'interfaccia perché il riscatto è la sola parte di questa funzionalità che
/// dipende dal formato del sito: potendola sostituire, la logica di temporizzazione e i
/// contatori restano verificabili senza toccare la rete.
///
public interface IFreeBidsClaimer
{
/// Guarda cosa c'è da riscuotere, senza riscuotere nulla.
Task ScanAsync(CancellationToken cancellationToken = default);
///
/// Riscuote tutte le ricompense disponibili. Non solleva per un premio fallito:
/// prosegue con gli altri e riporta quanti ne ha presi.
///
Task ClaimAllAsync(CancellationToken cancellationToken = default);
///
/// Riscuote un codice o un collegamento promozionale indicato dall'utente.
///
/// Sta qui e non nel giro automatico perché è l'unica parte che ha bisogno di
/// un dato che l'applicazione non può scoprire da sola: quei premi arrivano per email
/// o per messaggio, e vanno incollati.
///
Task ClaimPromoAsync(string codeOrLink, CancellationToken cancellationToken = default);
}
}