using System;
using Knot.Shared.Kernel;

namespace Knot.Contracts.Messaging.Domain;

public sealed class Reaction : Entity<Guid>
{
    public Guid MessageId { get; private set; }
    public Guid UserId { get; private set; }
    public string Emoji { get; private set; }

    internal Reaction(Guid messageId, Guid userId, string emoji) : base(Guid.NewGuid())
    {
        MessageId = messageId;
        UserId = userId;
        Emoji = emoji;
    }

    private Reaction() : base(Guid.Empty)
    {
        Emoji = string.Empty;
    }
}
