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;
}