package com.unis.detectionnum.common.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * @author yangkaifeng
 * @version 1.0
 * @Title RobotCallRecordVO
 * @ProjectName 通话记录回调对象
 * @Description  TODO
 * @date 2019/12/17 17点26分
 */

@SuppressWarnings("serial")
@Data
@ApiModel(value="通话记录回调对象")
public class RobotCallRecordVO implements Serializable {
    @ApiModelProperty(value="recordId主键id")
    private Long recordId;

    @ApiModelProperty(value="dataType回调类型（始终为 ROBOT_CALL_RECORD ）")
    private String dataType;

    @ApiModelProperty(value="callRecordId通话记录id")
    private Long callRecordId;

    @ApiModelProperty(value="tenantId公司id")
    private Long tenantId;

    @ApiModelProperty(value="dialogFlowId话术id")
    private Long dialogFlowId;

    @ApiModelProperty(value="robotCallJobId任务id")
    private Long robotCallJobId;

    @ApiModelProperty(value="calledPhoneNumber电话号码")
    private String calledPhoneNumber;

    @ApiModelProperty(value="resultStatus通话结果 (ANSWERED, 已接听),(NO_ANSWER, 未接),(BUSY, 占线),(POWER_OFF, 关机),(OUT_OF_SERVICE, 被叫停机),(REFUSED, 拒接),(VACANT_NUMBER, 空号),(CAN_NOT_CONNECT, 无法接通), (FROM_PHONE_ERROR, 主叫号码不可用),(SYSTEM_ERROR, 外呼失败)")
    private String resultStatus;

    @ApiModelProperty(value="intentLevel意向等级, (A, A级(较强)),(B, B级(一般)),(C, C级(无法判断)),(D, D级(很少)),(E, E级别(需要再次跟进)),(F, F级别(无需再次跟进))")
    private String intentLevel;

    @ApiModelProperty(value="customerConcern用户关注点")
    private List<String> customerConcern;

    @ApiModelProperty(value="fullAudioUrl用户和AI合成的录音")
    private String fullAudioUrl;

    @ApiModelProperty(value="customerAudioUrl用户的录音")
    private String customerAudioUrl;

    @ApiModelProperty(value="analysisBasis意向分析判断依据")
    private String analysisBasis;

    @ApiModelProperty(value="startTime拨打开始时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Date startTime;

    @ApiModelProperty(value="endTime拨打结束时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Date endTime;

    @ApiModelProperty(value="chatDuration通话时长(单位秒)")
    private Integer chatDuration;

    @ApiModelProperty(value="chatRound通话轮次")
    private Integer chatRound;

    @ApiModelProperty(value="attributes用户属性")
    private List<String> attributes;

    @ApiModelProperty(value="properties自定义字段")
    private Map<String,String> properties;

    @ApiModelProperty(value="intentLevelTagId自定义标签分组id")
    private Long intentLevelTagId;

    @ApiModelProperty(value="intentLevelCode自定义标签组code")
    private Integer intentLevelCode;

    @ApiModelProperty(value="createTime创建时间")
    private Date createTime;

    @ApiModelProperty(value="通话记录对象")
    private List<RobotCallDetailListVO> callDetailList;
}
