// EN: Verification status enumeration.
// VI: Enumeration trạng thái xác minh.

using MerchantService.Domain.SeedWork;

namespace MerchantService.Domain.AggregatesModel.MerchantAggregate;

/// <summary>
/// EN: Represents the verification status of a merchant.
/// VI: Đại diện cho trạng thái xác minh của merchant.
/// </summary>
public class VerificationStatus : Enumeration
{
    /// <summary>
    /// EN: Merchant has not submitted verification documents.
    /// VI: Merchant chưa nộp tài liệu xác minh.
    /// </summary>
    public static readonly VerificationStatus Unverified = new(1, nameof(Unverified));
    
    /// <summary>
    /// EN: Verification documents are pending review.
    /// VI: Tài liệu xác minh đang chờ xem xét.
    /// </summary>
    public static readonly VerificationStatus Pending = new(2, nameof(Pending));
    
    /// <summary>
    /// EN: Merchant is verified.
    /// VI: Merchant đã được xác minh.
    /// </summary>
    public static readonly VerificationStatus Verified = new(3, nameof(Verified));
    
    /// <summary>
    /// EN: Verification was rejected.
    /// VI: Xác minh bị từ chối.
    /// </summary>
    public static readonly VerificationStatus Rejected = new(4, nameof(Rejected));

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