package com.hz.pm.api.staging.utils;

import com.google.common.collect.Maps;

import java.util.HashMap;
import java.util.Map;

/**
 * @Classname ProjectStatusFlowMapUtil
 * @Description 状态流转 事件函数MAP
 * @Date 2023/2/15 11:19
 * @Author PoffyZhang
 */
public class ProjectStatusFlowUtil {

    private ProjectStatusFlowUtil() {
    }

    /**
     * key 重试的次数 , value 是增加是描述
     */
    private static final Map<Integer, Integer> INTERVAL_TIME_MAP;

    /*
     * 初始化业务分派逻辑,代替了if-else部分
     * key: 枚举 状态值
     * value: lambda表达式,最终会获取发起实例的函数
     */
    static {
        INTERVAL_TIME_MAP = new HashMap<>(16);
        INTERVAL_TIME_MAP.put(0, 60);
        INTERVAL_TIME_MAP.put(1, 60 * 2);
        INTERVAL_TIME_MAP.put(2, 60 * 6);
        INTERVAL_TIME_MAP.put(3, 60 * 15);
        INTERVAL_TIME_MAP.put(4, 60 * 30);
        INTERVAL_TIME_MAP.put(5, 60 * 60);
        INTERVAL_TIME_MAP.put(6, 60 * 60 * 2);
        INTERVAL_TIME_MAP.put(7, 60 * 60 * 5);
        INTERVAL_TIME_MAP.put(8, 60 * 60 * 12);
        INTERVAL_TIME_MAP.put(9, 60 * 60 * 24);
        INTERVAL_TIME_MAP.put(10, 60 * 60 * 72);
        INTERVAL_TIME_MAP.put(11, 60 * 60 * 216);
    }

    public static Integer get(Integer interval) {
        return INTERVAL_TIME_MAP.get(interval);
    }

}
