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); } }