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

import cn.axzo.workflow.common.enums.BpmnProcessInstanceResultEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotBlank;

/**
 * 用于查询审批日志的人的模型
 *
 * @author wangli
 * @since 2025-07-07 19:40
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class LogApproveSearchDTO {

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

    /**
     * 审批任务 ID，如果有值，优先使用 taskId 查询
     * <p>
     * 如果没有值，则 personId、tenantId、ouId 一定不能为 null
     */
    @ApiModelProperty("审批任务 ID")
    private String taskId;

    /**
     * 如果没传 taskId，那么该属性必有值
     */
    @ApiModelProperty("审批人 PersonId")
    private String personId;

    /**
     * 如果没传 taskId，那么该属性必有值
     */
    @ApiModelProperty("审批人 tenantId")
    private String tenantId;

    /**
     * 如果没传 taskId，那么该属性应该有值，如果是“工人”可以没有值
     */
    @ApiModelProperty("审批人 ouId")
    private String ouId;

    @ApiModelProperty("指定状态，如果为空，默认指定审批中状态的数据")
    private BpmnProcessInstanceResultEnum status;

}
