package xtools.boot.task.enums;

import xtools.boot.api.enums.BaseEnum;

/**
 * <p>Title : TaskStatus</p>
 * <p>Description : TaskStatus</p>
 * <p>DevelopTools : Idea_x64_v2026.1</p>
 * <p>DevelopSystem : macOS Sequoia 15.7.5</p>
 * <p>Company : org.xujun</p>
 *
 * @author : XuJun
 * @version : 5.0.0
 * @date : 2026/2/3 10:31
 */
public enum TaskStatus implements BaseEnum {

    // 任务进行中
    ING(0, "进行中"),
    // 任务成功
    SUCCESS(1, "任务成功"),
    // 任务失败
    ERROR(2, "任务失败");

    /**
     * 编码
     */
    private final int code;

    /**
     * 说明
     */
    private final String desc;

    /**
     * 初始化方法
     *
     * @param code Code
     * @param desc 说明
     */
    TaskStatus(int code, String desc) {
        this.code = code;
        this.desc = desc;
    }

    /**
     * 判断枚举值类型
     *
     * @param code 枚举值
     * @return 枚举值类型
     */
    public static TaskStatus valueOf(int code) {
        for (TaskStatus type : values()) {
            if (type.code == code) {
                return type;
            }
        }
        throw new IllegalArgumentException("unknown code, code=" + code);
    }

    /**
     * 获取所有枚举
     *
     * @return 所有枚举
     */
    @Override
    public BaseEnum[] all() {
        return values();
    }

    /**
     * 获取枚举编码
     *
     * @return 枚举编码
     */
    @Override
    public int code() {
        return code;
    }

    /**
     * 获取枚举说明
     *
     * @return 枚举说明
     */
    @Override
    public String desc() {
        return desc;
    }

}