namespace WalletService.Domain.AggregatesModel.WalletAggregate;

using WalletService.Domain.SeedWork;

/// <summary>
/// EN: Wallet status enumeration
/// VI: Enumeration trạng thái ví
/// </summary>
public class WalletStatus : Enumeration
{
    /// <summary>
    /// EN: Wallet is active and can perform transactions
    /// VI: Ví đang hoạt động và có thể thực hiện giao dịch
    /// </summary>
    public static WalletStatus Active = new(1, nameof(Active));

    /// <summary>
    /// EN: Wallet is frozen and cannot perform transactions
    /// VI: Ví bị đóng băng và không thể thực hiện giao dịch
    /// </summary>
    public static WalletStatus Frozen = new(2, nameof(Frozen));

    /// <summary>
    /// EN: Wallet is closed permanently
    /// VI: Ví đã bị đóng vĩnh viễn
    /// </summary>
    public static WalletStatus Closed = new(3, nameof(Closed));

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