namespace MktZaloService.Domain.Enums;

/// <summary>
/// EN: Status of a conversation.
/// VI: Trạng thái của cuộc hội thoại.
/// </summary>
public enum ConversationStatus
{
    /// <summary>
    /// EN: Conversation is active and can receive messages.
    /// VI: Cuộc hội thoại đang hoạt động và có thể nhận tin nhắn.
    /// </summary>
    Active = 0,

    /// <summary>
    /// EN: Conversation has been closed.
    /// VI: Cuộc hội thoại đã đóng.
    /// </summary>
    Closed = 1
}

/// <summary>
/// EN: Type of message content.
/// VI: Loại nội dung tin nhắn.
/// </summary>
public enum MessageType
{
    Text = 0,
    Image = 1,
    Link = 2,
    Sticker = 3,
    Audio = 4
}

/// <summary>
/// EN: Direction of message flow.
/// VI: Hướng của luồng tin nhắn.
/// </summary>
public enum MessageDirection
{
    /// <summary>
    /// EN: Message from customer to OA.
    /// VI: Tin nhắn từ khách hàng đến OA.
    /// </summary>
    Incoming = 0,

    /// <summary>
    /// EN: Message from OA to customer.
    /// VI: Tin nhắn từ OA đến khách hàng.
    /// </summary>
    Outgoing = 1
}

/// <summary>
/// EN: Customer segmentation based on engagement.
/// VI: Phân khúc khách hàng dựa trên mức độ tương tác.
/// </summary>
public enum CustomerSegment
{
    New = 0,
    Regular = 1,
    Active = 2,
    VIP = 3
}

/// <summary>
/// EN: Type of chatbot rule matching.
/// VI: Loại khớp quy tắc chatbot.
/// </summary>
public enum RuleType
{
    /// <summary>
    /// EN: Match by keyword presence.
    /// VI: Khớp theo từ khóa có trong tin nhắn.
    /// </summary>
    Keyword = 0,

    /// <summary>
    /// EN: Match by regex pattern.
    /// VI: Khớp theo mẫu regex.
    /// </summary>
    Regex = 1,

    /// <summary>
    /// EN: Match by AI intent detection.
    /// VI: Khớp theo phát hiện ý định AI.
    /// </summary>
    Intent = 2
}

/// <summary>
/// EN: Type of action to take when rule matches.
/// VI: Loại hành động khi quy tắc khớp.
/// </summary>
public enum ActionType
{
    /// <summary>
    /// EN: Send a text message response.
    /// VI: Gửi phản hồi tin nhắn văn bản.
    /// </summary>
    SendText = 0,

    /// <summary>
    /// EN: Send a ZNS template message.
    /// VI: Gửi tin nhắn mẫu ZNS.
    /// </summary>
    SendTemplate = 1,

    /// <summary>
    /// EN: Forward to human agent.
    /// VI: Chuyển tiếp đến nhân viên.
    /// </summary>
    ForwardToHuman = 2
}

/// <summary>
/// EN: Status of ZNS message template.
/// VI: Trạng thái mẫu tin nhắn ZNS.
/// </summary>
public enum TemplateStatus
{
    Pending = 0,
    Approved = 1,
    Rejected = 2
}
