package com.lingyue.extract.dto.config;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.util.List;

/**
 * AI总结配置
 * 
 * 用于 extractType = "ai_summarize" 的规则
 * 使用AI对内容进行总结、提炼
 * 
 * @author lingyue
 * @since 2026-01-22
 */
@Data
@Schema(description = "AI总结配置")
public class AISummarizeConfig {
    
    @Schema(description = "总结要求/提示词")
    private String summarizePrompt;
    
    @Schema(description = "关注维度列表")
    private List<String> focusPoints;
    
    @Schema(description = "总结规则（如：必须包含XXX，不要提及XXX）")
    private List<String> rules;
    
    @Schema(description = "输出风格: formal-正式, concise-简洁, detailed-详细")
    private String style;
    
    @Schema(description = "最大字数限制")
    private Integer maxLength;
    
    @Schema(description = "上下文字段Key列表（引用已提取的字段作为上下文）")
    private List<String> contextFieldKeys;
    
    @Schema(description = "使用的AI模型（可选）")
    private String modelName;
    
    @Schema(description = "温度参数")
    private Double temperature;
    
    // ==================== 风格常量 ====================
    
    public static final String STYLE_FORMAL = "formal";
    public static final String STYLE_CONCISE = "concise";
    public static final String STYLE_DETAILED = "detailed";
}
