package com.xinelu.manage.dto.aiob;

import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
import java.util.List;
import lombok.Data;

/**
 * @description: 任务单通电话回调传输data
 * @author: haown
 * @create: 2024-08-29 09:36
 **/
@Data
public class TaskCallbackDataDto {

	/**
	 * 通话唯一标识
	 */
	private String sessionId;

	/**
	 * 租户唯一标识
	 */
	private Long tenantId;

	/**
	 * 任务标识
	 */
	private String taskId;

	/**
	 * 任务名称
	 */
	private String taskName;

	/**
	 * 机器人ID
	 */
	private String robotId;

	/**
	 * 外呼机器人名称
	 */
	private String robotName;

	/**
	 * 号码组唯一标识，导入名单后，返回的名单号码组对应标识
	 */
	private Long memberId;

	/**
	 * 被叫号码
	 */
	private String mobile;

	/**
	 * 拨打次数
	 */
	private Integer callTimes;

	/**
	 * 主叫号码
	 */
	private String callerNum;

	/**
	 * 接通状态，1-已接通 0-未接通
	 */
	private Integer endType;
	/**
	 * 呼叫类型，0-首次呼叫；1-重试；2-预约呼叫；3-实时呼叫
	 */
	private Integer callType;

	/**
	 * 未接通原因
	 */
	private String endTypeReason;

	/**
	 * 生成通话录音唯一标识,可通过该标识，获取录音
	 */
	private String contactUUID;

	/**
	 * 文件id，名单导入任务时生成的文件ID
	 */
	private Long field;

	/**
	 * 信息收集内容
	 */
	private JSONObject collectInfo;

	/**
	 * 会话还原记录
	 */
	private JSONArray record;

	/**
	 * 拨号总时长，单位为秒
	 */
	private Integer durationTimeLen;

	/**
	 * 振铃时长，单位为秒
	 */
	private Integer ringingTimeLen;

	/**
	 * 对话时长，单位为秒
	 */
	private Integer talkingTimeLen;

	/**
	 * 呼叫开始时间-Unix时间戳(单位:毫秒)
	 */
	private Long startTime;

	/**
	 * 振铃开始时间-Unix时间戳(单位:毫秒)
	 */
	private Long ringStartTime;

	/**
	 * 通话开始时间-Unix时间戳(单位:毫秒)，未接通显示'-'，已接通会有值
	 */
	private Long talkingStartTime;

	/**
	 * 呼叫结束时间-Unix时间戳(单位:毫秒)
	 */
	private Long endTime;

	/**
	 * 意向，在外呼机器人-流程节点-信息收集，配置key为「意向」，对应的value值
	 */
	private String intent;

	/**
	 * 动作，HUNGUP：挂机
	 */
	private List<String> action;

	/**
	 * 是否机器人主动挂机
	 */
	private Boolean isRobotHangup;

	/**
	 * 变量，导入名单的变量
	 */
	private JSONObject dialogVar;

	/**
	 * 短信变量
	 */
	private JSONObject smsVar;

	/**
	 * 来自导入信息
	 */
	private String extJson;

	/**
	 * 转接结果,字段为空或值为0未发起，1成功，-1失败
	 */
	private Integer transResult;
}
