package cn.iocoder.hake.module.agent.enums.agent;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 代理商审核状态的枚举值
 *
 * @author hake
 */
@Getter
/**
 * 审核状态枚举类
 * 定义了系统中各种审核相关的状态
 */
public enum AuditStatusEnum {
    /**
     * 禁用状态
     */
    DISABLED(0, "禁用"),

    /**
     * 未认证状态
     */
    UNVERIFIED(1, "未认证"),

    /**
     * 审核中状态
     */
    UNDER_REVIEW(2, "审核中"),

    /**
     * 审核驳回状态
     */
    REJECTED(3, "审核驳回"),

    /**
     * 启用状态
     */
    ENABLED(4, "启用");

    /**
     * 状态编码
     */
    private final Integer code;

    /**
     * 状态描述
     */
    private final String description;

    /**
     * 构造方法
     * @param code 状态编码
     * @param description 状态描述
     */
    AuditStatusEnum(Integer code, String description) {
        this.code = code;
        this.description = description;
    }

    /**
     * 获取状态编码
     * @return 状态编码
     */
    public Integer getCode() {
        return code;
    }

    /**
     * 获取状态描述
     * @return 状态描述
     */
    public String getDescription() {
        return description;
    }

    /**
     * 根据编码获取枚举实例
     * @param code 状态编码
     * @return 对应的枚举实例，如果没有匹配的则返回null
     */
    public static AuditStatusEnum getByCode(Integer code) {
        for (AuditStatusEnum status : values()) {
            if (status.code == code) {
                return status;
            }
        }
        return null;
    }
}

