using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Retroactiune.Core.Entities;
using Retroactiune.Core.Services;
namespace Retroactiune.Core.Interfaces
{
public interface ITokensService
{
///
/// Generates tokens.
///
/// The number of tokens to generate.
/// The feedback receiver guid to reference the tokens.
/// Optional expiry time for the tokens.
/// The result of the generate operation.
public Task GenerateTokensAsync(int numberOfTokens, string feedbackReceiverGuid,
DateTime? expiryTime = null);
///
/// Deletes tokens.
///
/// A list of tokens to delete.
/// The result of the delete operation.
public Task DeleteTokens(IEnumerable tokenIds);
///
/// List and filters tokens.
///
/// Filters object for filtering results.
/// A list of tokens matching the filters.
public Task> ListTokens(TokenListFilters filters);
///
/// Deletes tokens, by their associated FeedbackReceiverId.
///
/// A list of FeedbackReceiverIDs.
/// The result of the delete operation.
public Task DeleteManyByFeedbackReceiverIdAsync(IEnumerable feedbackReceiverIds);
}
}