namespace SharpChat.Messages;

public interface MessageStorage {
    Task LogMessage(
        long id,
        string type,
        string channelName,
        string senderId,
        string senderName,
        ColourInheritable senderColour,
        int senderRank,
        string senderNick,
        UserPermissions senderPerms,
        object? data = null
    );
    Task DeleteMessage(Message msg);
    Task<Message?> GetMessage(long id);
    Task<IEnumerable<Message>> GetMessages(string channelName, int amount = 20, int offset = 0);
}