package cn.axzo.workflow.common.model.request.bpmn;

import cn.axzo.workflow.common.enums.SignApproverOrgLimitEnum;
import cn.axzo.workflow.common.enums.SignApproverRoleLimitEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

/**
 * JSON 版本的 BPMN 协议模型中的确认人限定规则
 *
 * @author wangli
 * @since 2025-03-26 20:05
 */
@ApiModel("JSON 版本的 BPMN 协议模型中的确认人限定规则")
@Data
@NoArgsConstructor
@Accessors(chain = true)
public class BpmnSignApproverLimit {

    /**
     * 签署确认节点下人的组织限定规则
     * <p>
     * LV_0("LV_0", "当前组织"),
     * LV_1("LV_1", "上1级组织"),
     * LV_2("LV_2", "上2级组织"),
     * LV_3("LV_3", "上3级组织"),
     * LV_4("LV_4", "上4级组织"),
     * LV_5("LV_5", "上5级组织"),
     */
    @ApiModelProperty(value = "签署确认节点下人的组织限定规则")
    private SignApproverOrgLimitEnum orgLimit;

    /**
     * 签署确认节点下人的角色限定规则
     * <p>
     * INITIATOR_SPECIFIED("INITIATOR_SPECIFIED", "发起人自选"),
     * LEADER("LEADER", "负责人"),
     */
    @ApiModelProperty(value = "签署确认节点下人的角色限定规则")
    private SignApproverRoleLimitEnum roleLimit;
}
