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

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import java.util.List;

/**
 * 转交审批任务的入参模型
 *
 * @author wangli
 * @since 2023/7/27 11:50
 */
@ApiModel("转交审批任务的入参模型")
@Data
public class BpmnTaskTransferDTO {

    /**
     * 审批任务 ID
     */
    @ApiModelProperty(value = "审批任务 ID")
    @NotBlank(message = "任务 ID 不能为空")
    private String taskId;

    /**
     * 转交意见
     */
    @ApiModelProperty(value = "转交意见")
    private String advice;

    /**
     * 附件列表
     */
    @ApiModelProperty(value = "附件列表")
    private List<AttachmentDTO> attachmentList;

    @ApiModelProperty(value = "审批任务原审批人", notes = "可以为空,意义在于可以将没有指派给任何人的任务转交给其他人")
    @Valid
    private BpmnTaskDelegateAssigner originAssigner;

    @ApiModelProperty(value = "审批任务转发给谁", notes = "可以为空,意义在于如果分配给某离职的人,可能需要置为空")
    private BpmnTaskDelegateAssigner targetAssigner;

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

}
