package com.xinelu.manage.vo.signpatientmanageroutenode;

import com.alibaba.fastjson2.JSONObject;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.xinelu.common.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import java.time.LocalDateTime;
import java.time.LocalTime;
import lombok.Data;

/**
 * @description: 患者康复计划及记录返回视图类
 * @author: haown
 * @create: 2024-07-31 17:41
 **/
@Data
public class SignPatientTaskVo {

	/** 任务创建类型，手动创建：MANUAL_CREATE，自动匹配：MANUAL_MATCHE */
	@ApiModelProperty(value = "任务创建类型，手动创建：MANUAL_CREATE，自动匹配：MANUAL_MATCHE")
	private String taskCreateType;

	/** 主键id */
	private Long id;

	/** 签约患者管理任务表id */
	@ApiModelProperty(value = "签约患者管理任务表id")
	private Long manageRouteId;

	/** 路径名称 */
	@ApiModelProperty(value = "路径名称")
	private String manageRouteName;

	/** 管理路径节点id */
	@ApiModelProperty(value = "管理路径节点id")
	private Long routeNodeId;

	/** 管理路径节点名称 */
	@ApiModelProperty(value = "管理路径节点名称")
	private String routeNodeName;

	/** 管理路径节点名称中文 */
	@ApiModelProperty(value = "管理路径节点名称中文")
	private String routeNodeNameCN;

	/** 管理路径节点时间，时间单位为：天 */
	@ApiModelProperty(value = "管理路径节点时间，时间单位为：天")
	private Integer routeNodeDay;

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

	/** 任务类型，电话外呼：PHONE_OUTBOUND，问卷量表：QUESTIONNAIRE_SCALE，宣教文章：PROPAGANDA_ARTICLE，文字提醒：TEXT_REMIND，人工随访：ARTIFICIAL_FOLLOW_UP */
	@ApiModelProperty(value = "任务类型，电话外呼：PHONE_OUTBOUND，问卷量表：QUESTIONNAIRE_SCALE，宣教文章：PROPAGANDA_ARTICLE，文字提醒：TEXT_REMIND，人工随访：ARTIFICIAL_FOLLOW_UP")
	private String taskType;

	/**
	 * 任务类型名称
	 */
	@ApiModelProperty(value = "任务类型名称")
	private String taskTypeName;

	/** 任务细分 */
	@ApiModelProperty(value = "任务细分")
	private String taskSubdivision;

	/** 任务细分名称 */
	@ApiModelProperty(value = "任务细分名称")
	private String taskPartitionDictName;

	/** 二级分类描述 */
	@ApiModelProperty(value = "二级分类描述")
	private String secondClassifyDescribe;

	/** 执行时间，格式：HH:mm */
	@ApiModelProperty(value = "执行时间，格式：HH:mm")
	@JsonFormat(pattern = "HH:mm")
	private LocalTime executeTime;

	/** 执行时间，格式：yyyy-MM-dd */
	@ApiModelProperty(value = "执行时间，格式：yyyy-MM-dd")
	@JsonFormat(pattern = "yyyy-MM-dd")
	private LocalDateTime executeDateTime;

	/** 电话话术表id */
	@ApiModelProperty(value = "电话话术表id")
	@Excel(name = "电话话术表id")
	private Long scriptInfoId;

	/** 电话模板ID */
	@ApiModelProperty(value = "电话模板ID")
	@Excel(name = "电话模板ID")
	private String phoneTemplateId;

	/** 电话模板名称 */
	@ApiModelProperty(value = "电话模板名称")
	@Excel(name = "电话模板名称")
	private String phoneTemplateName;

	/** 电话内容（富文本存放整个节点的信息，包含标签画像的名称以及其它，标签画像名称使用特殊符号进行标记） */
	@ApiModelProperty(value = "电话内容")
	@Excel(name = "电话内容", readConverterExp = "富文本存放整个节点的信息，包含标签画像的名称以及其它，标签画像名称使用特殊符号进行标记")
	private String phoneNodeContent;

	/** 问卷表id */
	@ApiModelProperty(value = "问卷表id")
	@Excel(name = "问卷表id")
	private Long questionInfoId;

	/** 问卷模板名称 */
	@ApiModelProperty(value = "问卷模板名称")
	private String questionnaireName;

	/** 问卷模板内容（富文本存放整个节点的信息，包含标签画像的名称以及其它，标签画像名称使用特殊符号进行标记） */
	@ApiModelProperty(value = "问卷模板内容")
	private String questionnaireContent;

	/** 宣教文章表id */
	@ApiModelProperty(value = "宣教文章表id")
	private Long propagandaInfoId;

	/** 宣教文章模板标题（宣教模板名称） */
	@ApiModelProperty(value = "宣教文章模板标题")
	private String propagandaTitle;

	/** 宣教文章内容（富文本存放整个节点的信息，包含标签画像的名称以及其它，标签画像名称使用特殊符号进行标记） */
	@ApiModelProperty(value = "宣教文章内容")
	private String propagandaContent;

	/** 任务处理信息 */
	@ApiModelProperty(value = "任务处理信息")
	private String routeHandleRemark;

	@ApiModelProperty(value = "消息状态：已读：READ；未读：UNREAD。")
	private String messageStatus;

	/**
	 * 节点内容
	 */
	@ApiModelProperty(value = "节点内容")
	private String nodeContent;

	/**
	 * 任务节点类型：PHONE_OUTBOUND：电话外呼(默认自动。人工或自动)；QUESTIONNAIRE_SCALE：问卷量表（消息推送或人工随访）；PROPAGANDA_ARTICLE：宣教文章；TEXT_REMIND：文字提醒（微信、短信、公众号）
	 */
	@ApiModelProperty(value = "任务节点类型")
	private String taskNodeType;

	/**
	 * 任务节点类型：PHONE_OUTBOUND：电话外呼(默认自动。人工或自动)；QUESTIONNAIRE_SCALE：问卷量表（消息推送或人工随访）；PROPAGANDA_ARTICLE：宣教文章；TEXT_REMIND：文字提醒（微信、短信、公众号）
	 */
	@ApiModelProperty(value = "任务节点类型-中文")
	private String taskNodeTypeName;

	/** 节点任务执行状态，已执行：EXECUTED，未执行：UNEXECUTED */
	@ApiModelProperty(value = "节点任务执行状态，已执行：EXECUTED，未执行：UNEXECUTED")
	private String nodeExecuteStatus;

	/** 电话拨通情况；SUCCESS：成功；FAILURE：失败；EXPIRED：超期自动作废（如超期一周）；NULL或空字符串：缺省值，表示未执行； */
	@ApiModelProperty(value = "电话拨通情况")
	private String phoneNodeExecuteResultStatus;

	/** 患者宣教阅读或问卷提交的时间；null表示尚未阅读或提交 */
	@ApiModelProperty(value = "患者宣教阅读或问卷提交的时间")
	private LocalDateTime nodeFinishDate;

	@ApiModelProperty(value = "患者问卷提交状态")
	private LocalDateTime nodeFinishStatus;
	/**
	 * 任务状态
	 */
	@ApiModelProperty(value = "任务状态，NOT_CONNECTED：未接通，CONNECTED：已接通，EXPIRED：任务已超时，UNREAD：未阅读，READ：已阅读")
	private String taskStatus;

	/** 详细信息 */
	@ApiModelProperty(value = "详细信息")
	private JSONObject detailInfo;
}
