using FacebookService.Domain.SeedWork;

namespace FacebookService.Domain.AggregatesModel.ChatbotAggregate;

/// <summary>
/// EN: Flow trigger type enumeration.
/// VI: Enumeration loại trigger cho flow.
/// </summary>
public class FlowTriggerType : Enumeration
{
    /// <summary>
    /// EN: Triggered when user clicks Get Started button.
    /// VI: Kích hoạt khi người dùng click nút Get Started.
    /// </summary>
    public static FlowTriggerType GetStarted = new(1, nameof(GetStarted));

    /// <summary>
    /// EN: Triggered by keyword match in user message.
    /// VI: Kích hoạt bằng từ khóa khớp trong tin nhắn.
    /// </summary>
    public static FlowTriggerType Keyword = new(2, nameof(Keyword));

    /// <summary>
    /// EN: Triggered by postback payload from button click.
    /// VI: Kích hoạt bằng postback payload từ click button.
    /// </summary>
    public static FlowTriggerType Postback = new(3, nameof(Postback));

    /// <summary>
    /// EN: Default fallback trigger when no other matches.
    /// VI: Trigger fallback mặc định khi không có trigger nào khớp.
    /// </summary>
    public static FlowTriggerType Fallback = new(4, nameof(Fallback));

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