package cn.axzo.workflow.common.enums;

/**
 * 审批人指定枚举
 *
 * @author wangli
 * @since 2023/11/16 10:16
 */
public enum ApproverSpecifyEnum {

    position("position", "指定岗位", 1),
    role("role", "指定角色", 1),
    identity("identity", "指定身份", 1),
    initiatorLeader("initiatorLeader", "发起人主管", 1),
    initiatorLeaderRecursion("initiatorLeaderRecursion", "发起人多级主管", 1),
    fixedPerson("fixedPerson", "固定人员", 1),
    preNodeSpecified("preNodeSpecified", "上级节点指定", 1),
    initiatorSpecified("initiatorSpecified", "发起时指定", 1),
    // 该枚举，目前主要为了区别签署业务与审批业务的不同配法，选择该项时，意味着该节点是由二方后端自由消费 BpmnSignApproverLimit 配置
    signerRelated("signerRelated", "签署人相关组织", 1),

    // 新配置规则的审批人指定方式
    position_v2("position_v2", "指定岗位", 2),
    role_v2("role_v2", "指定角色", 2),
    identity_v2("identity_v2", "指定身份", 2),
    initiatorSpecified_v2("initiatorSpecified_v2", "发起人自选", 2),
    initiator_v2("initiator_v2", "发起人自己", 2),
    initiatorLeader_v2("initiatorLeader_v2", "发起人主管", 2),
    fixedPerson_v2("fixedPerson_v2", "固定人员", 2),
    preAllNodeApprover_v2("preAllNodeApprover_v2", "所有前序节点审批人", 2),
    ;

    private String type;
    private String desc;
    private Integer version;

    ApproverSpecifyEnum(String type, String desc, Integer version) {
        this.type = type;
        this.desc = desc;
        this.version = version;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getDesc() {
        return desc;
    }

    public void setDesc(String desc) {
        this.desc = desc;
    }

    public Integer getVersion() {
        return version;
    }

    public void setVersion(Integer version) {
        this.version = version;
    }
}
