namespace SharpChat.EventStorage;

public interface EventStorage {
    void AddEvent(
        long id,
        string type,
        string channelName,
        string senderId,
        string senderName,
        ColourInheritable senderColour,
        int senderRank,
        string senderNick,
        UserPermissions senderPerms,
        object? data = null,
        StoredEventFlags flags = StoredEventFlags.None
    );
    void RemoveEvent(StoredEventInfo evt);
    StoredEventInfo? GetEvent(long seqId);
    IEnumerable<StoredEventInfo> GetChannelEventLog(string channelName, int amount = 20, int offset = 0);
}