package com.xinelu.manage.dto.signpatientmanageroutenode;

import com.xinelu.common.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;

import java.time.LocalDateTime;
import java.util.List;
import lombok.Data;

/**
 * @description: 患者任务节点查询传输对象
 * @author: haown
 * @create: 2024-04-17 15:59
 **/
@Data
public class SignPatientManageRouteNodeDto {

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

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

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

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

	/** 任务类型，电话外呼：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;

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

	/** 任务状态 */
	@ApiModelProperty(value = "任务状态")
	private String taskStatus;

	/**
	 * 任务类型列表
	 * */
	@ApiModelProperty(value = "任务类型列表")
	private List<String> taskTypeList;

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

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

	@ApiModelProperty(value = "签约患者管理路径表主键列表")
	private List<Long> manageRouteIdList;

	/**
	 * AI：自动 或  COMMON：手动
	 */
	@ApiModelProperty(value = "AI：自动 或  COMMON：手动")
	private String phoneDialMethod;

	/**
	 * 专病路径节点id列表
	 */
	@ApiModelProperty(value = "专病路径节点id列表")
	private List<Long> routeNodeIds;


	/**
	 * 任务执行类型（批量还是单个执行，'批量任务：BATCH_TASK,单个实时拔打任务：ACTUAL_TIME_TASK'）
	 */
	@ApiModelProperty(value = "任务执行类型（批量还是单个执行，'批量任务：BATCH_TASK,单个实时拔打任务：ACTUAL_TIME_TASK'）")
	private String taskExcuteType;
	/**
	 * 拨打状态：DIALED,已拨打：NODIALED:未拨打；默认NULL表示未拨打
	 */
	@ApiModelProperty(value = "拨打状态：DIALED,已拨打：NODIALED:未拨打；默认NULL表示未拨打")
	private String dialStatus;

	private LocalDateTime nodePlanTime;

	private String createBy;
}
