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

import cn.axzo.workflow.common.model.dto.UploadFieldDTO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Map;

/**
 * 创建工作流实例同时携带表单的入参模型
 *
 * @author wangli
 * @since 2023/7/20 15:49
 */
@ApiModel("创建工作流实例同时携带表单的入参模型")
@Data
public class BpmnProcessInstanceCreateWithFormDTO {

    /**
     * 审批使用了表单，请一定注意传参
     * <p>
     * 图片类型和附件类型组件：请用 @see {@link UploadFieldDTO} 对象集合传入
     * <pre>
     *     // form_image 为表单项的 key， value 为 UploadFileDTO 对象集合，如果前端使用了组件，一般建议回传所有属性；特殊情况下可以只传 fileUrl
     *     "form_image": [{
     *          "fileName": "",
     *          "fileUrl": "http://gips2.baidu.com/it/u=195724436,3554684702&fm=3028&app=3028&f=JPEG&fmt=auto?w=1280&h=960",
     *          "fileKey": 123
     *      }]
     * </pre>
     */
    @ApiModelProperty(value = "通过表单创建流程时传入的初始表单数据")
    private Map<String, Object> startFormVariables;
    /**
     * 工作流实例集成表单后,可以通过表单 key 组装成的变量存入该变量的值,可用于后续流程的流转
     * <p>
     * 一般不用设置
     */
    @ApiModelProperty(value = "用于接入外部传入的信息, 类似于 Bpmn 的 BusinessKey", hidden = true)
    private String outcome;

}
