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

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

import java.util.List;

/**
 * 流程关联文档搜索入参模型
 *
 * @author wangli
 * @since 2025-03-31 09:46
 */
@ApiModel("流程关联文档搜索入参模型")
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class DocQueryDTO {

    /**
     * 流程实例 ID
     * 该参数与 processDefinitionKey 二选一, 如果有值，则优先使用实例 ID，仅查询实例下使用的文档
     */
    @ApiModelProperty(value = "流程实例 ID")
    private String processInstanceId;

    /**
     * 流程定义 KEY（业务 ID）
     */
    @ApiModelProperty(value = "流程定义 KEY（业务 ID）")
    private String processDefinitionKey;

    /**
     * 流程定义 KEY 列表（业务 ID 列表）
     * 当选择使用 processDefinitionKey/s 时，则查询模板对应默认的文档列表
     */
    @ApiModelProperty(value = "流程定义 KEY 列表（业务 ID 列表）")
    private List<String> processDefinitionKeys;

    /**
     * 租户 ID，对应工作台 ID
     */
    @ApiModelProperty(value = "租户 ID，对应工作台 ID")
    private String tenantId;

    @ApiModelProperty(value = "是否包含临时文档")
    @Builder.Default
    private Boolean tempFile = false;
}
