package com.fs.company.vo.easycall;

import lombok.Data;

import java.math.BigDecimal;

/**
 * @author MixLiu
 * @date 2026/3/7 11:21
 * @description
 */
@Data
public class EasyCallCallPhoneVO {
    /**
     * 主键ID
     */
    private String id;

    /**
     * 任务批次ID
     */
    private Integer batchId;

    /**
     * 电话号码
     */
    private String telephone;

    /**
     * 客户称呼
     */
    private String custName;

    /**
     * 任务创建时间
     */
    private Long createtime;

    /**
     * 呼叫状态
     * 0. Not dialed
     * 1. Entered call queue
     * 2. Dialing (in progress)
     * 3. Not connected (If the empty number detection feature is turned off)
     * 4. Connected
     * 5. Call dropped (hung up before transferring to agent)
     * 6. Successfully transferred to agent or AI
     * 7. Line failure
     * 30. Not connected
     * 31. Customer is on another call
     * 32. Phone is powered off
     * 33. Invalid number
     * 34. No answer
     * 35. Suspended service
     * 36. Network busy
     * 37. Voice assistant
     * 38. Temporarily unavailable
     * 39. Call restriction
     */
    private Short callstatus;

    /**
     * 外呼时间
     */
    private Long calloutTime;

    /**
     * 呼叫次数
     */
    private Short callcount;

    /**
     * 呼叫结束时间
     */
    private Long callEndTime;

    /**
     * 通话时长; 秒;
     */
    private Integer timeLen;

    /**
     * 人工接听的通话时长; 秒
     */
    private Integer validTimeLen;

    /**
     * 通话唯一标志
     */
    private String uuid;

    /**
     * 通话接通时间
     */
    private Long connectedTime;

    /**
     * 挂机原因
     */
    private String hangupCause;

    /**
     * 人工坐席应答时间
     */
    private Long answeredTime;

    /**
     * 对话内容
     */
    private String dialogue;

    /**
     * 全程通话录音文件名
     */
    private String wavfile;

    /**
     * 录音文件路径前缀
     */
    private String recordServerUrl;

    /**
     * 业务json数据
     */
    private String bizJson;

    /**
     * 交互轮次（一问一答算一轮交互）
     */
    private Integer dialogueCount;

    /**
     * 人工坐席工号
     */
    private String acdOpnum;

    /**
     * 加入转人工排队的时间;
     */
    private Long acdQueueTime;

    /**
     * 人工排队等待时长,秒
     */
    private Integer acdWaitTime;

    /**
     * tts text for voice call notification.
     */
    private String ttsText;

    /**
     * 空号检测文本
     */
    private String emptyNumberDetectionText;

    /**
     * 客户意向
     */
    private String intent;

    /**
     * asr时长（秒）
     */
    private Integer asrSeconds;

    /**
     * tts调用次数（次）
     */
    private Integer ttsTimes;

    /**
     * 大模型tts的字符数（字符）
     */
    private Integer ttsFlowTokens;

    /**
     * 总输入token数
     */
    private Integer inputTokens;

    /**
     * 总输出token数
     */
    private Integer outputTokens;

    /**
     * 总调用费用（asr+tts+大模型）
     */
    private BigDecimal totalCost;

    /**
     * 计费状态（1：已计费、0：未计费）
     */
    private Integer billingStatus;

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

    /**
     * customer dtmf input digits
     */
    private String ivrDtmfDigits;

    /**
     * manual agent answered time.
     */
    private Long manualAnsweredTime;

    /**
     * The duration of the manual agent service time.
     */
    private Long manualAnsweredTimeLen;
}
