package com.youchain.aspect;

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

/**
 * 默认数据工具类
 */
public class DefaultOperDataUtil {

    // 私有静态Map，用于存储默认数据
    private static final Map<String, String> DEFAULT_DATA_MAP = new HashMap<>();

    // 静态初始化块，在类加载时初始化默认数据
    static {
        initDefaultData();
    }

    /**
     * 初始化默认数据
     */
    private static void initDefaultData() {
        // 添加默认数据
        DEFAULT_DATA_MAP.put("com.youchain.businessdata.rest.XppRecordController.putawayXppApp", "现品票上架");
        DEFAULT_DATA_MAP.put("com.youchain.businessdata.rest.XppRecordController.zzjlPickApp", "制造叫料拣货");
        // 可以继续添加更多默认数据
        // DEFAULT_DATA_MAP.put("key2", "value2");
        // DEFAULT_DATA_MAP.put("key3", "value3");
    }

    /**
     * 根据key获取对应的value
     * @param key 要查找的键
     * @return 对应的值，如果key不存在则返回null
     */
    public static String getValue(String key) {
        return DEFAULT_DATA_MAP.get(key);
    }

    /**
     * 根据key获取对应的value，如果不存在则返回默认值
     * @param key 要查找的键
     * @param defaultValue 默认值
     * @return 对应的值，如果key不存在则返回默认值
     */
    public static String getValueOrDefault(String key, String defaultValue) {
        return DEFAULT_DATA_MAP.getOrDefault(key, defaultValue);
    }

    /**
     * 检查是否包含指定的key
     * @param key 要检查的键
     * @return 如果包含则返回true，否则返回false
     */
    public static boolean containsKey(String key) {
        return DEFAULT_DATA_MAP.containsKey(key);
    }

    /**
     * 获取所有默认数据的副本（防止外部修改内部数据）
     * @return 默认数据的副本
     */
    public static Map<String, String> getAllData() {
        return new HashMap<>(DEFAULT_DATA_MAP);
    }

    // 私有构造方法，防止实例化
    private DefaultOperDataUtil() {
        throw new UnsupportedOperationException("工具类不能实例化");
    }
}