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

import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
import lombok.Getter;
import lombok.Setter;

import java.util.ArrayList;
import java.util.List;

/**
 * 修改聊天机器人请求 DTO。
 */
@Getter
@Setter
public class UpdateChatbotRequest {

    /** 聊天机器人名称。 */
    @NotBlank(message = "聊天机器人名称不能为空")
    @Size(max = 100, message = "聊天机器人名称不能超过100个字符")
    private String name;

    /** 聊天机器人描述。 */
    @Size(max = 500, message = "聊天机器人描述不能超过500个字符")
    private String description;

    /** 系统提示词。 */
    private String systemPrompt;

    /** 指定模型配置 ID，可选，传 null 表示清空。 */
    private String modelConfigId;

    /** 启用工具标识列表，默认空列表。 */
    @NotNull(message = "启用工具列表不能为空")
    private List<@NotBlank(message = "启用工具标识不能为空") String> enabledTools = new ArrayList<>();

    /** 上下文窗口大小，默认 20。 */
    @Min(value = 0, message = "上下文窗口大小不能为负数")
    private int contextWindowSize = 20;

    /** 子智能体 ID 列表，默认空列表。 */
    @NotNull(message = "子智能体 ID 列表不能为空")
    private List<@NotBlank(message = "子智能体 ID 不能为空") String> subAgentIds = new ArrayList<>();

}
