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 Config {
    @ApiModelProperty("语音识别（ASR）相关配置")
    @JSONField(name="ASRConfig")
    private ASRConfig ASRConfig;
    @ApiModelProperty("语音合成（TTS）相关配置")
    @JSONField(name="TTSConfig")
    private TTSConfig TTSConfig;
    @ApiModelProperty("大模型相关配置。支持的大模型平台如下：\n" +
            "火山方舟平台\n" +
            "Coze平台\n" +
            "第三方大模型/Agent")
    @JSONField(name="LLMConfig")
    private LLMConfig LLMConfig;
    @ApiModelProperty("字幕相关配置")
    @JSONField(name="SubtitleConfig")
    private SubtitleConfig SubtitleConfig;

    public static Config getConfig(ASRConfig asrConfig, TTSConfig ttsConfig, LLMConfig llmConfig, SubtitleConfig subtitleConfig){
        return Config.builder()
                .ASRConfig(asrConfig)
                .TTSConfig(ttsConfig)
                .LLMConfig(llmConfig)
                .SubtitleConfig(subtitleConfig)
                .build();
    }
}