package com.bonus.common.biz.enums;

import lombok.Getter;

/**
 * 审批状态枚举
 * 
 * @author syruan
 */
@Getter
public enum ApprovalStatusEnum {

    /**
     * 待审批（刚提交，还未开始审批）
     */
    PENDING("0", "待审批"),

    /**
     * 审批中（已有节点审批通过，但未全部完成）
     */
    IN_PROGRESS("1", "审批中"),

    /**
     * 已通过（所有节点审批通过）
     */
    APPROVED("2", "已通过"),

    /**
     * 已驳回（任一节点驳回）
     */
    REJECTED("3", "已驳回"),

    /**
     * 已撤销（申请人撤销）
     */
    CANCELLED("4", "已撤销");

    private final String code;
    private final String desc;

    ApprovalStatusEnum(String code, String desc) {
        this.code = code;
        this.desc = desc;
    }

    /**
     * 根据code获取枚举
     */
    public static ApprovalStatusEnum getByCode(String code) {
        for (ApprovalStatusEnum status : values()) {
            if (status.getCode().equals(code)) {
                return status;
            }
        }
        return null;
    }
}

