using SocialService.Domain.SeedWork;

namespace SocialService.Domain.AggregatesModel.RelationshipAggregate;

/// <summary>
/// EN: Enumeration for relationship statuses.
/// VI: Enumeration cho các trạng thái quan hệ.
/// </summary>
public class RelationshipStatus : Enumeration
{
    /// <summary>
    /// EN: Pending - waiting for acceptance.
    /// VI: Đang chờ - chờ được chấp nhận.
    /// </summary>
    public static RelationshipStatus Pending = new(1, nameof(Pending));

    /// <summary>
    /// EN: Accepted - relationship is active.
    /// VI: Đã chấp nhận - quan hệ đang hoạt động.
    /// </summary>
    public static RelationshipStatus Accepted = new(2, nameof(Accepted));

    /// <summary>
    /// EN: Rejected - request was rejected.
    /// VI: Đã từ chối - yêu cầu bị từ chối.
    /// </summary>
    public static RelationshipStatus Rejected = new(3, nameof(Rejected));

    /// <summary>
    /// EN: Cancelled - request was cancelled by requester.
    /// VI: Đã hủy - yêu cầu bị hủy bởi người gửi.
    /// </summary>
    public static RelationshipStatus Cancelled = new(4, nameof(Cancelled));

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