package com.sonic.cow.client.input.voicechat.domain;

import com.alibaba.fastjson.annotation.JSONField;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class AgentConfig {
    @ApiModelProperty("真人用户 ID。需使用客户端 SDK 进房的真人用户的 UserId。仅支持传入一个 UserId，即单个房间内，仅支持一个用户与智能体一对一通话。")
    @JSONField(name="TargetUserID")
    private String[] TargetUserID;
    @ApiModelProperty("智能体启动后的欢迎词")
    @JSONField(name="WelcomeMessage")
    private String WelcomeMessage;
    @ApiModelProperty("智能体 ID，用于标识智能体。 由你自行定义、生成与维护，支持由大小写字母（A-Z、a-z）、数字（0-9）、下划线（_）、短横线（-）、句点（.）和 @ 组成，最大长度为 128 个字符。\n" +
            "若不填则默认值为 voiceChat_$(TargetUserId)_$(timestamp_now)。")
    @JSONField(name="UserId")
    private String UserId;
    @ApiModelProperty("是否开启会话状态回调。默认值为 false。")
    @JSONField(name="EnableConversationStateCallback")
    private Boolean EnableConversationStateCallback;
    @ApiModelProperty("回调地址配置 可以知道智能体状态 "+
            "1：代理正在监听。\n" +
            "2：智能体在思考。\n" +
            "3：代理在说话。\n" +
            "4：代理被中断。\n" +
            "5：代理说完。")
    private String ServerMessageURLForRTS;
    @ApiModelProperty("用于验证回调源安全性的签名密钥")
    private String ServerMessageSignatureForRTS;
}