namespace SharpChat.Events {
    public class MessageCreateEvent(
        long msgId,
        string channelName,
        string senderId,
        string senderName,
        ColourInheritable senderColour,
        int senderRank,
        string senderNickName,
        UserPermissions senderPerms,
        DateTimeOffset msgCreated,
        string msgText,
        bool isPrivate,
        bool isAction,
        bool isBroadcast
    ) : ChatEvent {
        public long MessageId { get; } = msgId;
        public string ChannelName { get; } = channelName;
        public string SenderId { get; } = senderId;
        public string SenderName { get; } = senderName;
        public ColourInheritable SenderColour { get; } = senderColour;
        public int SenderRank { get; } = senderRank;
        public string SenderNickName { get; } = senderNickName;
        public UserPermissions SenderPerms { get; } = senderPerms;
        public DateTimeOffset MessageCreated { get; } = msgCreated;
        public string MessageText { get; } = msgText;
        public bool IsPrivate { get; } = isPrivate;
        public bool IsAction { get; } = isAction;
        public bool IsBroadcast { get; } = isBroadcast;
    }
}