// SPDX-License-Identifier: AGPL-3.0-or-later // Copyright (C) 2022-2026 Aykut Alparslan KOC using Ferrite.TL.baseLayer.dto; namespace Ferrite.Data.Repositories; public static class MessageReactionBox { public const int Common = 0; public const int Channel = 1; } public interface IMessageReactionsRepository { bool PutReaction(TLMessageReactionInfo reaction); ValueTask GetReactionAsync(int boxType, long boxId, int messageId, long userId); ValueTask> GetReactionsAsync(int boxType, long boxId, int messageId); ValueTask> GetBoxReactionsAsync(int boxType, long boxId); ValueTask> GetUserReactionsAsync(int boxType, long boxId, long userId); bool DeleteReaction(int boxType, long boxId, int messageId, long userId); bool DeleteReactions(int boxType, long boxId, int messageId); bool DeleteBoxReactions(int boxType, long boxId); bool PutMessageCopy(TLMessageCopyInfo copy); ValueTask> GetMessageCopiesAsync(long logicalId); ValueTask GetCopyByOwnerMessageAsync(long userId, int messageId); bool DeleteMessageCopies(long logicalId); bool PutReactionSettings(TLReactionSettingsInfo settings); ValueTask GetReactionSettingsAsync(long userId); }