package com.xinelu.manage.vo.signpatientmanageroutenode;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.xinelu.common.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * @Description 外呼记录返回实体类
 * @Author zh
 * @Date 2024-12-13
 */
@Data
public class UploadRobotPublishRecordVo {

    /**
     * 所属机构id
     */
    @ApiModelProperty(value = "所属机构id")
    private Long hospitalAgencyId;

    /**
     * 所属机构名称
     */
    @ApiModelProperty(value = "所属机构名称")
    @Excel(name = "医院")
    private String hospitalAgencyName;

    /**
     * 所属科室id
     */
    @ApiModelProperty(value = "所属科室id")
    private Long departmentId;

    /**
     * 所属科室名称
     */
    @ApiModelProperty(value = "所属科室名称")
    @Excel(name = "科室名称")
    private String departmentName;

    /**
     * 就诊时间，格式：yyyy-MM-dd HH:mm:ss
     */
    @ApiModelProperty(value = "就诊时间，格式：yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "就诊时间", dateFormat = "yyyy-MM-dd")
    private LocalDateTime visitDate;

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

    /**
     * 患者表id
     */
    @ApiModelProperty(value = "患者表id")
    private Long patientId;

    /**
     * 患者姓名
     */
    @ApiModelProperty(value = "患者姓名")
    @Excel(name = "姓名", width = 10)
    private String patientName;

    /**
     * 患者电话
     */
    @ApiModelProperty(value = "患者电话")
    @Excel(name = "联系电话", width = 12)
    private String patientPhone;

    @ApiModelProperty(value = "年龄")
    @Excel(name = "年龄", width = 8)
    private Integer age;

    /**
     * 主要诊断
     */
    @ApiModelProperty(value = "主要诊断")
    @Excel(name = "诊断")
    private String mainDiagnosis;

    /**
     * 问卷中不满意项;DISCONTENTED:不满意;CONTENTED:满意;默认CONTENTED;
     */
    @ApiModelProperty(value = "问卷中不满意项")
    @Excel(name = "调查结果")
    private String contentedFlag;

    /**
     * 调查分数
     */
    @ApiModelProperty(value = "调查分数")
    @Excel(name = "调查分数", width = 8)
    private BigDecimal totalScore;

    /**
     * 反馈意见
     */
    @ApiModelProperty(value = "反馈意见")
    @Excel(name = "反馈意见")
    private String fillBlanksAnswer;

    /**
     * 随访状态
     */
    @ApiModelProperty(value = "随访状态")
    @Excel(name = "随访状态")
    private String followUpStatus;

    /**
     * 随访人
     */
    @ApiModelProperty(value = "随访人")
    @Excel(name = "随访人")
    private String phoneDialMethod;

    /**
     * 问卷异常项;REMARKABLE:异常的;ROUTINE:正常的;默认ROUTINE
     */
    @ApiModelProperty(name = "异常项")
    private String remarkableFlag;

    /**
     * 执行时间
     */
    @ApiModelProperty(value = "执行时间，格式：yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "随访时间", dateFormat = "yyyy-MM-dd")
    private LocalDateTime nodePlanTime;

    /**
     * 抽样人
     */
    @ApiModelProperty(value = "抽样人")
    @Excel(name = "抽样人")
    private String samplingPersonnel;

    /**
     * 抽样时间
     */
    @ApiModelProperty(value = "抽样时间")
    @Excel(name = "抽样时间", dateFormat = "yyyy-MM-dd")
    private LocalDateTime SampleTime;

    /**
     * 话术表 ID
     */
    @ApiModelProperty(value = "话术表 ID")
    private Long scriptInfoId;

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

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

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

    @ApiModelProperty(value = "默认已接通：CONNECTED；未接通:NOTCONNECTED")
    private String phoneConnectStatus;

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

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

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

    /**
     * 拨打状态
     */
    @ApiModelProperty(value = "拨打状态：DIALED,已拨打：NODIALED:未拨打；默认NULL表示未拨打")
    private String dialStatus;

    /**
     * 问卷关联话术id
     */
    @ApiModelProperty(value = "问卷关联话术id")
    private Long scriptTemplateId;

    /**
     * 问卷关联话术名称
     */
    @ApiModelProperty(value = "问卷关联话术名称")
    private String scriptTemplateName;

    /**
     * 任务执行类型（批量还是单个执行）
     */
    @ApiModelProperty(value = "任务执行类型（批量还是单个执行，'批量任务：BATCH_TASK,单个实时拔打任务：ACTUAL_TIME_TASK'）")
    private String taskExcuteType;

    /**
     * 导入流水号
     */
    @ApiModelProperty(value = "导入流水号")
    private String sn;

    /**
     * 患者问卷提交结果信息表id
     */
    @ApiModelProperty(value = "患者问卷提交结果信息表id")
    private Long taskExecuteRecordId;
}