package cn.axzo.workflow.common.model.response.es;

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

import java.util.Date;

/**
 * 搜索 ES 的流程任务相关数据模型
 *
 * @author wangli
 * @since 2024-10-12 21:53
 */
@Data
@ApiModel("搜索 ES 的流程任务相关数据模型")
public class ProcessTaskDocumentVO {

    /**
     * 任务 ID
     */
    private String taskId;

    /**
     * 所属实例 ID
     */
    private String processInstanceId;

    /**
     * 任务定义 KEY,对应节点 ID
     */
    private String taskDefinitionKey;

    /**
     * 任务名称
     */
    private String taskName;

    /**
     * 任务状态:审批中/通过/驳回/转交/加签...
     */
    private String taskStatus;

    /**
     * 操作建议
     */
    private String advice;

    /**
     * 操作描述
     */
    private String operationDesc;

    /**
     * 流程实例的发起时间
     */
    private Date taskStartTime;

    /**
     * 流程实例的结束时间
     */
    private Date taskEndTime;

    /**
     * 流程实例的持续时间 ms
     */
    private Long duration;

    /**
     * 归属租户,与 processInstance#tenantId 一致
     */
    private String taskTenantId;

    /**
     * 审批人姓名
     */
    private String assigneeName;

    /**
     * 审批人自然人 ID
     */
    private String assigneePersonId;

    /**
     * 审批人所属单位 ID
     */
    private String assigneeOuId;

    /**
     * 审批人所属租户 ID
     */
    private String assigneeTenantId;

    /**
     * 审批方式:配置审批人/业务指定/业务触发(不含人)
     */
    private String approvalMethod;

    /**
     * 节点类型:审批节点/业务节点/评论节点/抄送节点
     */
    private String nodeType;

    /**
     * 节点模式:会签/或签
     */
    private String nodeMode;
}
