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

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

/**
 * 创建机器人节点的入参模型
 *
 * @author wangli
 * @since 2023/12/18 15:26
 */
@ApiModel("创建机器人节点的入参模型")
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class BpmnRobotTaskCreateDTO {
    /**
     * 流程实例 ID
     */
    @ApiModelProperty(value = "流程实例 ID")
    @NotBlank(message = "流程实例 ID 不能为空")
    private String processInstanceId;

    /**
     * 当前审核人信息
     *
     * @since 暂不支持传人员信息
     */
    @ApiModelProperty(value = "当前审核人信息", notes = "可为空,则该任务不验证用户归属", hidden = true)
    @Deprecated
    private BpmnTaskDelegateAssigner approver;

    /**
     * 机器人节点信息
     */
    @ApiModelProperty(value = "机器人节点信息")
    @Valid
    @NotNull(message = "机器人节点信息不能为空")
    private BpmnFlowNodeDTO robotNode;

    /**
     * 是否异步执行
     */
    @ApiModelProperty(value = "是否异步", notes = "异步时,只接收请求便返回数据")
    @Builder.Default
    private Boolean async = false;
}
