package com.ankaibei.workFlow.common.flow.vo;

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

import java.util.Date;

/**
 * 流程任务Vo对象。
 *
 * @author Buzhanyi
 * @date 2022-09-25
 */
@ApiModel("流程任务Vo对象")
@Data
public class FlowTaskVo {

    /**
     * 流程任务Id。
     */
    @ApiModelProperty(value = "流程任务Id")
    private String taskId;

    /**
     * 流程任务名称。
     */
    @ApiModelProperty(value = "流程任务名称")
    private String taskName;

    /**
     * 流程任务标识。
     */
    @ApiModelProperty(value = "流程任务标识")
    private String taskKey;

    /**
     * 任务的表单信息。
     */
    @ApiModelProperty(value = "任务的表单信息")
    private String taskFormKey;

    /**
     * 流程Id。
     */
    @ApiModelProperty(value = "流程Id")
    private Long entryId;

    /**
     * 流程定义Id。
     */
    @ApiModelProperty(value = "流程定义Id")
    private String processDefinitionId;

    /**
     * 流程定义名称。
     */
    @ApiModelProperty(value = "流程定义名称")
    private String processDefinitionName;

    /**
     * 流程定义标识。
     */
    @ApiModelProperty(value = "流程定义标识")
    private String processDefinitionKey;

    /**
     * 流程定义版本。
     */
    @ApiModelProperty(value = "流程定义版本")
    private Integer processDefinitionVersion;

    /**
     * 流程实例Id。
     */
    @ApiModelProperty(value = "流程实例Id")
    private String processInstanceId;

    /**
     * 流程实例发起人。
     */
    @ApiModelProperty(value = "流程实例发起人")
    private String processInstanceInitiator;

    /**
     * 流程实例发起人显示名。
     */
    @ApiModelProperty(value = "流程实例发起人显示名")
    private String showName;

    /**
     * 流程实例创建时间。
     */
    @ApiModelProperty(value = "流程实例创建时间")
    private Date processInstanceStartTime;

    /**
     * 流程实例主表业务数据主键。
     */
    @ApiModelProperty(value = "流程实例主表业务数据主键")
    private String businessKey;

    /**
     * 是否为草稿状态。
     */
    @ApiModelProperty(value = "是否为草稿状态")
    private Boolean isDraft;


//*******         以下为拓展         ********************************************************************************************************************************************

    /**
     * 流程分类名称。（前端展示用）
     */
    @ApiModelProperty(value = "任务所属流程的流程分类名称")
    private String categoryName;

    /**
     * 每个申请记录中都存在的项目名称（前端展示用）
     * 项目名称。
     */
    @ApiModelProperty(value = "项目名称")
    private String projectName;

    /**
     * 通信费用报销审批流程中的任务变量
     * 申请费用。
     */
    @ApiModelProperty(value = "申请费用")
    private String applicationFee;

    /**
     * 差旅费用报销审批流程中的任务变量
     * 住宿天数。
     */
    @ApiModelProperty(value = "住宿天数")
    private String accommodationDays;

    /**
     * 其他费用报销审批流程 交通费用报销审批流程 餐饮费用报销审批流程 差旅费用报销审批流程 中的任务变量
     * 此次记录的总费用。
     */
    @ApiModelProperty(value = "此次记录的总费用")
    private String totalMoney;

    /**
     * 工作流任务类型
     */
    @ApiModelProperty(value = "工作流任务类型")
    private String flowTaskStatus;

    /**
     * 费用项
     */
    @ApiModelProperty(value = "费用项")
    private String costType;

    /**
     * 每个申请记录中都存在的项目id（根据id和审批类型去修改数据表记录）
     */
    @ApiModelProperty(value = "项目id")
    private Integer projectId;

    /**
     * 每个申请记录在表中的主键id
     */
    @ApiModelProperty(value = "申请数据主键id")
    private Integer applyDataId;
}
