package com.fs.company.vo;

import lombok.Data;

import java.util.List;

@Data
public class CdrBodyVo {

    private String uuid;

    private String cdrType;

    private String cdrBody;

    private Long answeredTime;
    private Long answeredTimeLen;
    private String callee;
    private String caller;
    private List<ChatContent> chatContent;
    private String extnum;
    private String groupId;
    private String hangupCause;
    private Long hangupTime;
    private String id;
    private Long inboundTime;
    private String ivrDtmfDigits;
    private Long manualAnsweredTime;
    private Long manualAnsweredTimeLen;
    private String opnum;
    private OutboundPhoneInfo outboundPhoneInfo;
    private Integer remoteVideoPort;
    private Boolean startDtmfExecuted;
    private Long timeLen;
    private Boolean transferredSucceed;
    private String wavFile;

    @Data
    public static class ChatContent {
        private String content;
        private String content_type;
        private String role;
        private Integer completionTokens;
        private Integer promptTokens;
        private String bizJson;
    }

    @Data
    public static class OutboundPhoneInfo {
        private String acdOpnum;
        private Long acdQueueTime;
        private Long acdWaitTime;
        private Long answeredTime;
        private Long batchId;
        private String bizJson;
        private Long callEndTime;
        private Integer callcount;
        private Long calloutTime;
        private Integer callstatus;
        private Long connectedTime;
        private Long createtime;
        private String custName;
        private List<Dialogue> dialogue;
        private Integer dialogueCount;
        private String emptyNumberDetectionText;
        private Boolean hangup;
        private String hangupCause;
        private String id;
        private String ivrDtmfDigits;
        private Long manualAnsweredTime;
        private Long manualAnsweredTimeLen;
        private String recordServerUrl;
        private TaskInfo taskInfo;
        private String telephone;
        private Long timeLen;
        private Boolean transferred;
        private String ttsText;
        private String uuid;
        private Long validTimeLen;
        private String wavfile;
    }

    @Data
    public static class Dialogue {
        private String $ref;
    }

    @Data
    public static class TaskInfo {
        private String aiTransferData;
        private String aiTransferType;
        private String asrProvider;
        private String authUsername;
        private Integer autoStop;
        private Long avgCallEndProcessTimeLen;
        private Long avgCallTalkTimeLen;
        private Long avgRingTimeLen;
        private Long batchId;
        private String batchName;
        private String callNodeNo;
        private String calleePrefix;
        private String caller;
        private String codec;
        private Long createtime;
        private Integer executing;
        private Long gatewayId;
        private String groupId;
        private String gwAddr;
        private String gwName;
        private Integer ifcall;
        private String ivrId;
        private Long llmAccountId;
        private Integer playTimes;
        private String profileName;
        private Integer rate;
        private Integer register;
        private Long stopTime;
        private Integer taskType;
        private Integer threadNum;
        private String userid;
        private String voiceCode;
        private String voiceSource;
    }
}
