package cn.axzo.workflow.common.model.request.form.instance;

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

import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.util.Map;

/**
 * 更新指定流程表单最后一次操作的表单内容的入参模型
 *
 * @author wangli
 * @since 2025-02-08 10:04
 */
@ApiModel("更新指定流程表单最后一次操作的表单内容")
@Data
public class FormVariablesUpdateDTO implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * 流程实例 ID
     */
    @ApiModelProperty(value = "流程实例ID")
    @NotBlank(message = "流程实例 ID 不能为空")
    private String processInstanceId;

    /**
     * <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> formVariables;
}
