package com.njzscloud.common.core.log;


import java.util.Arrays;

/**
 * Ansi 颜色
 */
public enum AnsiColor {

    /**
     * 默认前景色
     */
    DEFAULT("39"),

    /**
     * 黑
     */
    BLACK("30"),

    /**
     * 红
     */
    RED("31"),

    /**
     * 绿
     */
    GREEN("32"),

    /**
     * 黄
     */
    YELLOW("33"),

    /**
     * 蓝
     */
    BLUE("34"),

    /**
     * 品红
     */
    MAGENTA("35"),

    /**
     * 青
     */
    CYAN("36"),

    /**
     * 白
     */
    WHITE("37"),

    /**
     * 亮黑（灰）
     */
    BRIGHT_BLACK("90"),

    /**
     * 亮红
     */
    BRIGHT_RED("91"),

    /**
     * 亮绿
     */
    BRIGHT_GREEN("92"),

    /**
     * 亮黄
     */
    BRIGHT_YELLOW("93"),

    /**
     * 亮蓝
     */
    BRIGHT_BLUE("94"),

    /**
     * 亮品红
     */
    BRIGHT_MAGENTA("95"),

    /**
     * 亮青
     */
    BRIGHT_CYAN("96"),

    /**
     * 亮白
     */
    BRIGHT_WHITE("97");

    private final String code;

    AnsiColor(String code) {
        this.code = code;
    }

    public static AnsiColor parse(String name) {
        return Arrays.stream(AnsiColor.values())
            .filter(member -> member.toString().equalsIgnoreCase(name))
            .findFirst()
            .orElse(null);
    }

    @Override
    public String toString() {
        return this.code;
    }
}
