package com.sundot.airport.system.domain;

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

/**
 * 资质等级枚举转换工具类
 * 处理数据库存储的枚举值与前端显示的中文之间的转换
 *
 * @author wangxx
 */
public class QualificationLevelConverter {

    /**
     * 数据库枚举值到中文显示的映射
     */
    private static final Map<String, String> DB_TO_DISPLAY = new HashMap<>();

    /**
     * 中文显示到数据库枚举值的映射
     */
    private static final Map<String, String> DISPLAY_TO_DB = new HashMap<>();

    static {
        // 初始化映射关系
        DB_TO_DISPLAY.put("LEVEL_ONE", "一级");
        DB_TO_DISPLAY.put("LEVEL_TWO", "二级");
        DB_TO_DISPLAY.put("LEVEL_THREE", "三级");
        DB_TO_DISPLAY.put("LEVEL_FOUR", "四级");
        DB_TO_DISPLAY.put("LEVEL_FIVE", "五级");

        // 反向映射
        for (Map.Entry<String, String> entry : DB_TO_DISPLAY.entrySet()) {
            DISPLAY_TO_DB.put(entry.getValue(), entry.getKey());
        }
    }

    /**
     * 将数据库枚举值转换为中文显示
     *
     * @param dbValue 数据库存储的枚举值（如 LEVEL_ONE）
     * @return 中文显示（如 一级）
     */
    public static String toDisplay(String dbValue) {
        if (dbValue == null || dbValue.trim().isEmpty()) {
            return "";
        }
        return DB_TO_DISPLAY.getOrDefault(dbValue.toUpperCase(), dbValue);
    }

    /**
     * 将中文显示转换为数据库枚举值
     *
     * @param displayValue 中文显示（如 一级）
     * @return 数据库枚举值（如 LEVEL_ONE）
     */
    public static String toDatabase(String displayValue) {
        if (displayValue == null || displayValue.trim().isEmpty()) {
            return "";
        }
        return DISPLAY_TO_DB.getOrDefault(displayValue, displayValue);
    }


}