package com.emotion.dto.request.aiconfig;

import lombok.Data;

import javax.validation.constraints.NotBlank;

/**
 * AI配置测试后更新请求
 * 用于在测试接口成功后，保存测试时使用的参数
 * 
 * @author system
 * @date 2025-12-22
 */
@Data
public class AiConfigTestUpdateRequest {

    /**
     * 配置ID
     */
    @NotBlank(message = "配置ID不能为空")
    private String id;

    /**
     * API完整URL（从测试请求中获取）
     */
    private String apiBaseUrl;

    /**
     * API访问令牌（从测试请求头中解析）
     */
    private String apiToken;

    /**
     * OAuth客户端ID
     */
    private String clientId;

    /**
     * OAuth客户端密钥
     */
    private String clientSecret;

    /**
     * 授权类型: client_credentials, authorization_code, password, refresh_token
     */
    private String grantType;

    /**
     * Bot ID（从测试请求体中解析，Coze专用）
     */
    private String botId;

    /**
     * Workflow ID（从测试请求体中解析，Coze专用）
     */
    private String workflowId;

    /**
     * 自定义请求头（JSON格式，从测试请求头中提取）
     */
    private String customHeaders;

    /**
     * 自定义参数（JSON格式，从测试请求体中提取）
     */
    private String customParams;

    /**
     * 是否支持流式输出（从测试请求体中解析）
     */
    private Integer supportStream;
}
