package digital.laboratory.platform.inspection.enums;

import lombok.Getter;

/**
 * 转换化合物名称和大数据平台上传的名称一致
 */
@Getter
public enum SewageCompoundNameTransform {

    Methamphetamine("MA,AM","冰毒"), // 甲基苯丙胺、苯丙胺（甲基苯丙胺代谢物）

    Heroin("Mor,O6", "海洛因"), // 吗啡（海洛因二级代谢产物）、O6-单乙酰吗啡（海洛因一级代谢产物）

    Codeine("Cod","可待因"), // 可待因

    Cocaine("Coc,BZE", "可卡因"), // 可卡因、苯甲酰爱康宁（可卡因代谢物）

    MDMA("MDMA,MDA","摇头丸"), // 3,4－亚甲基二氧甲基苯丙胺（摇头丸MDMA）、3,4－亚甲基二氧基苯丙胺（摇头丸代谢物）

    Ketamine("Keta,NK","氯胺酮"), // 氯胺酮、去甲氯胺酮（氯胺酮代谢物）

    Fentanyl("Fen", "芬太尼"),

    ;

    private String targetName;
    private String describe;

    SewageCompoundNameTransform(String targetName, String describe) {
        this.targetName = targetName;
        this.describe = describe;
    }

    /**
     * 根据sourceName 获取转换的大数据平台化合物名称，如果没有，则返回原始值
     * @param sourceName
     * @return
     */
    public static String transferName(String sourceName) {
        for (SewageCompoundNameTransform enumObj : SewageCompoundNameTransform.values()) {
            if (enumObj.getTargetName().contains(sourceName)) {
                return enumObj.describe;
            }
        }
        return null;
    }

    /**
     * 根据sourceName 获取枚举
     * @param sourceName
     * @return
     */
    public static SewageCompoundNameTransform getEnumBySourceName(String sourceName) {
        for (SewageCompoundNameTransform enumObj : SewageCompoundNameTransform.values()) {
            if (enumObj.getTargetName().equals(sourceName)) {
                return enumObj;
            }
        }
        return null;
    }
}
