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


import cn.axzo.workflow.common.enums.BpmnProcessInstanceResultEnum;
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskDelegateAssigner;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Date;
import java.util.Map;

/**
 * 流程实例详情响应模型
 */
@ApiModel("流程实例详情响应模型")
@Data
public class BpmnProcessInstanceVO {

    @ApiModelProperty(value = "流程实例的编号", example = "1024")
    private String id;

    @ApiModelProperty(value = "流程名称", example = "芋道")
    private String name;

    @ApiModelProperty(value = "流程分类", notes = "参见 bpm_model_category 数据字典", example = "1")
    private String category;

    @ApiModelProperty(value = "审核状态(PROCESSING:审核中,APPROVED:已通过,REJECTED:已拒绝,CANCELLED:已取消)", example = "APPROVED")
    private BpmnProcessInstanceResultEnum result;

    @ApiModelProperty(value = "提交时间")
    private Date createAt;

    @ApiModelProperty(value = "结束时间")
    private Date endTime;

    @ApiModelProperty(value = "流程定义 KEY")
    private String processDefinitionKey;

    @ApiModelProperty(value = "流程定义 ID")
    private String processDefinitionId;

    @ApiModelProperty(value = "业务的唯一标识", example = "1", notes = "例如说，请假申请的编号")
    private String businessKey;

    @ApiModelProperty(value = "流程变量")
    private Map<String, Object> variables;

    @ApiModelProperty("发起人标识")
    private String startUserId;

    @ApiModelProperty(value = "流程最终状态")
    private String businessStatus;

    @ApiModelProperty(value = "发起人信息")
    private BpmnTaskDelegateAssigner initiator;

}
