using FacebookService.Domain.SeedWork;

namespace FacebookService.Domain.AggregatesModel.ConversationAggregate;

/// <summary>
/// EN: Represents the type of a message.
/// VI: Đại diện cho loại tin nhắn.
/// </summary>
public class MessageType : Enumeration
{
    /// <summary>
    /// EN: Text message. / VI: Tin nhắn văn bản.
    /// </summary>
    public static MessageType Text = new(1, nameof(Text));

    /// <summary>
    /// EN: Image message. / VI: Tin nhắn hình ảnh.
    /// </summary>
    public static MessageType Image = new(2, nameof(Image));

    /// <summary>
    /// EN: Video message. / VI: Tin nhắn video.
    /// </summary>
    public static MessageType Video = new(3, nameof(Video));

    /// <summary>
    /// EN: Audio message. / VI: Tin nhắn âm thanh.
    /// </summary>
    public static MessageType Audio = new(4, nameof(Audio));

    /// <summary>
    /// EN: File attachment. / VI: File đính kèm.
    /// </summary>
    public static MessageType File = new(5, nameof(File));

    /// <summary>
    /// EN: Template message (buttons, cards, etc.).
    /// VI: Tin nhắn template (buttons, cards, v.v.).
    /// </summary>
    public static MessageType Template = new(6, nameof(Template));

    /// <summary>
    /// EN: Quick reply response. / VI: Phản hồi quick reply.
    /// </summary>
    public static MessageType QuickReply = new(7, nameof(QuickReply));

    public MessageType(int id, string name) : base(id, name)
    {
    }
}
