using FacebookService.Domain.SeedWork;

namespace FacebookService.Domain.AggregatesModel.ConversationAggregate;

/// <summary>
/// EN: Represents the status of a conversation.
/// VI: Đại diện cho trạng thái của một cuộc hội thoại.
/// </summary>
public class ConversationStatus : Enumeration
{
    /// <summary>
    /// EN: Active conversation - can receive/send messages.
    /// VI: Cuộc hội thoại đang hoạt động - có thể nhận/gửi tin nhắn.
    /// </summary>
    public static ConversationStatus Active = new(1, nameof(Active));

    /// <summary>
    /// EN: Closed conversation - no more messages allowed.
    /// VI: Cuộc hội thoại đã đóng - không cho phép thêm tin nhắn.
    /// </summary>
    public static ConversationStatus Closed = new(2, nameof(Closed));

    /// <summary>
    /// EN: Archived conversation - hidden but preserved.
    /// VI: Cuộc hội thoại đã lưu trữ - ẩn nhưng vẫn giữ lại.
    /// </summary>
    public static ConversationStatus Archived = new(3, nameof(Archived));

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