package com.m2pool.lease.constant;

import java.math.BigDecimal;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;

/**
 * @Description 出块间隔数
 * @Date 2025/8/18 16:19
 * @Author yyb
 */
public class BlockInterval {
    // GRS 出块间隔时间单位s
    public static final BigDecimal GRS_BLOCK_INTERVAL = BigDecimal.valueOf(60);
    // Mona 出块间隔时间单位s
    public static final BigDecimal MONA_BLOCK_INTERVAL = BigDecimal.valueOf(90);
    // NEXA 出块间隔时间单位s
    public static final BigDecimal NEXA_BLOCK_INTERVAL = BigDecimal.valueOf(120);
    // RXD 出块间隔时间单位s
    public static final BigDecimal RXD_BLOCK_INTERVAL= BigDecimal.valueOf(300);

    private static final Map<String, BigDecimal> BLOCK_MAP;

    static {
        HashMap<String, BigDecimal> map = new HashMap<>();
        map.put("grs", GRS_BLOCK_INTERVAL);
        map.put("mona", MONA_BLOCK_INTERVAL);
        map.put("nexa", NEXA_BLOCK_INTERVAL);
        map.put("rxd", RXD_BLOCK_INTERVAL);
        BLOCK_MAP = Collections.unmodifiableMap(map);
    }

    /**
     * 根据币种名称获取对应的每日理论出块数
     * @param coinName 币种名称，不区分大小写
     * @return 对应的每日理论出块数，如果未找到则返回 null
     */
    public static BigDecimal getBlockCountByCoinName(String coinName) {
        if (coinName == null) {
            return BigDecimal.ZERO;
        }
        return BLOCK_MAP.get(coinName.toLowerCase());
    }
}
