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 DeleteTokensAsync(IEnumerable tokenIds);
///
/// Finds and filters tokens.
///
/// Filters object for filtering results.
/// A list of tokens matching the filters.
public Task> FindAsync(TokenListFilters filters);
///
/// Deletes tokens, by their associated FeedbackReceiverId.
///
/// A list of FeedbackReceiverIDs.
/// The result of the delete operation.
public Task DeleteManyByFeedbackReceiverIdAsync(IEnumerable feedbackReceiverIds);
///
/// Marks the token as being used.
///
/// The token.
public Task MarkTokenAsUsedAsync(Token token);
}
}