package com.infoepoch.pms.agent.platform.model.application.dto;

import jakarta.validation.constraints.NotNull;

/**
 * 更新默认模型设置请求。
 *
 * @param defaultModelConfigId 默认对话模型配置 ID
 * @param defaultEmbeddingModelConfigId 默认向量模型配置 ID
 * @param defaultRerankModelConfigId 默认重排模型配置 ID
 */
public class UpdateDefaultModelSettingsRequest {

    /**
     * 默认对话模型配置 ID 是否在请求体中显式出现。
     */
    @NotNull(message = "defaultModelConfigId 字段不能为空")
    private Boolean defaultModelConfigIdPresent;

    /**
     * 默认向量模型配置 ID 是否在请求体中显式出现。
     */
    @NotNull(message = "defaultEmbeddingModelConfigId 字段不能为空")
    private Boolean defaultEmbeddingModelConfigIdPresent;

    /**
     * 默认重排模型配置 ID 是否在请求体中显式出现。
     */
    @NotNull(message = "defaultRerankModelConfigId 字段不能为空")
    private Boolean defaultRerankModelConfigIdPresent;

    /**
     * 默认对话模型配置 ID。
     */
    private String defaultModelConfigId;

    /**
     * 默认向量模型配置 ID。
     */
    private String defaultEmbeddingModelConfigId;

    /**
     * 默认重排模型配置 ID。
     */
    private String defaultRerankModelConfigId;

    /**
     * 获取默认对话模型配置 ID。
     *
     * @return 默认对话模型配置 ID
     */
    public String defaultModelConfigId() {
        return defaultModelConfigId;
    }

    /**
     * 设置默认对话模型配置 ID。
     *
     * @param defaultModelConfigId 默认对话模型配置 ID
     */
    public void setDefaultModelConfigId(String defaultModelConfigId) {
        this.defaultModelConfigIdPresent = true;
        this.defaultModelConfigId = defaultModelConfigId;
    }

    /**
     * 获取默认向量模型配置 ID。
     *
     * @return 默认向量模型配置 ID
     */
    public String defaultEmbeddingModelConfigId() {
        return defaultEmbeddingModelConfigId;
    }

    /**
     * 设置默认向量模型配置 ID。
     *
     * @param defaultEmbeddingModelConfigId 默认向量模型配置 ID
     */
    public void setDefaultEmbeddingModelConfigId(String defaultEmbeddingModelConfigId) {
        this.defaultEmbeddingModelConfigIdPresent = true;
        this.defaultEmbeddingModelConfigId = defaultEmbeddingModelConfigId;
    }

    /**
     * 获取默认重排模型配置 ID。
     *
     * @return 默认重排模型配置 ID
     */
    public String defaultRerankModelConfigId() {
        return defaultRerankModelConfigId;
    }

    /**
     * 设置默认重排模型配置 ID。
     *
     * @param defaultRerankModelConfigId 默认重排模型配置 ID
     */
    public void setDefaultRerankModelConfigId(String defaultRerankModelConfigId) {
        this.defaultRerankModelConfigIdPresent = true;
        this.defaultRerankModelConfigId = defaultRerankModelConfigId;
    }
}
