namespace MiningService.Domain.AggregatesModel.MinerAggregate;

/// <summary>
/// EN: Miner role determines bonus multiplier.
/// VI: Vai trò thợ đào xác định hệ số thưởng.
/// </summary>
public enum MinerRole
{
    /// <summary>Base user, no bonus / Người dùng cơ bản, không có thưởng</summary>
    Pioneer = 0,
    
    /// <summary>Has valid circle, +10% / Có vòng tròn hợp lệ, +10%</summary>
    Contributor = 1,
    
    /// <summary>5+ referrals, +25% / 5+ giới thiệu, +25%</summary>
    Ambassador = 2,
    
    /// <summary>Runs node software, +50% / Chạy phần mềm node, +50%</summary>
    NodeOperator = 3
}

/// <summary>
/// EN: Miner account status.
/// VI: Trạng thái tài khoản thợ đào.
/// </summary>
public enum MinerStatus
{
    /// <summary>Normal active account / Tài khoản hoạt động bình thường</summary>
    Active = 0,
    
    /// <summary>Temporarily suspended / Tạm ngừng</summary>
    Suspended = 1,
    
    /// <summary>Permanently banned / Cấm vĩnh viễn</summary>
    Banned = 2
}

/// <summary>
/// EN: Mining session status.
/// VI: Trạng thái phiên đào.
/// </summary>
public enum MiningSessionStatus
{
    /// <summary>Session is currently active / Phiên đang hoạt động</summary>
    Active = 0,
    
    /// <summary>Session completed, ready to claim / Phiên hoàn thành, sẵn sàng nhận thưởng</summary>
    Completed = 1,
    
    /// <summary>Session claimed / Phiên đã nhận thưởng</summary>
    Claimed = 2,
    
    /// <summary>Session expired without claim / Phiên hết hạn chưa nhận</summary>
    Expired = 3
}
