using NadekoBot.Db.Models;
namespace NadekoBot.Modules.Utility;
public interface IQuoteService
{
///
/// Delete all quotes created by the author in a guild
///
/// ID of the guild
/// ID of the user
/// Number of deleted qutoes
Task DeleteAllAuthorQuotesAsync(ulong guildId, ulong userId);
///
/// Delete all quotes in a guild
///
/// ID of the guild
/// Number of deleted qutoes
Task DeleteAllQuotesAsync(ulong guildId);
Task> GetAllQuotesAsync(ulong guildId, int page, OrderType order);
Task GetQuoteByKeywordAsync(ulong guildId, string keyword);
Task> SearchQuoteKeywordTextAsync(
ulong guildId,
string? keyword,
string text);
Task<(IReadOnlyCollection quotes, int totalCount)> FindQuotesAsync(ulong guildId, string query, int page);
Task> GetGuildQuotesAsync(ulong guildId);
Task RemoveAllByKeyword(ulong guildId, string keyword);
Task GetQuoteByIdAsync(ulong guildId, int quoteId);
Task AddQuoteAsync(
ulong guildId,
ulong authorId,
string authorName,
string keyword,
string text);
Task EditQuoteAsync(ulong authorId, int quoteId, string text);
Task EditQuoteAsync(ulong guildId, int quoteId, string keyword, string text);
Task DeleteQuoteAsync(
ulong guildId,
ulong authorId,
bool isQuoteManager,
int quoteId);
Task ImportQuotesAsync(ulong guildId, string input);
}