package org.xyzh.ai.client.dto;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;

/**
 * @description 知识库详情响应
 * @filename DatasetDetailResponse.java
 * @author AI Assistant
 * @copyright xyzh
 * @since 2025-11-04
 */
@Data
public class DatasetDetailResponse {

    private String id;
    
    private String name;
    
    private String description;
    
    @JsonProperty("indexing_technique")
    private String indexingTechnique;
    
    @JsonProperty("embedding_model")
    private String embeddingModel;
    
    @JsonProperty("embedding_model_provider")
    private String embeddingModelProvider;
    
    @JsonProperty("embedding_available")
    private Boolean embeddingAvailable;
    
    @JsonProperty("retrieval_model_dict")
    private RetrievalModelDict retrievalModelDict;
    
    @JsonProperty("document_count")
    private Integer documentCount;
    
    @JsonProperty("word_count")
    private Integer wordCount;
    
    @JsonProperty("app_count")
    private Integer appCount;
    
    @JsonProperty("created_by")
    private String createdBy;
    
    @JsonProperty("created_at")
    private Long createdAt;
    
    @JsonProperty("updated_at")
    private Long updatedAt;

    @Data
    public static class RetrievalModelDict {
        @JsonProperty("search_method")
        private String searchMethod;
        
        @JsonProperty("reranking_enable")
        private Boolean rerankingEnable;
        
        @JsonProperty("reranking_model")
        private RerankingModel rerankingModel;
        
        @JsonProperty("top_k")
        private Integer topK;
        
        @JsonProperty("score_threshold_enabled")
        private Boolean scoreThresholdEnabled;
    }

    @Data
    public static class RerankingModel {
        @JsonProperty("reranking_provider_name")
        private String rerankingProviderName;
        
        @JsonProperty("reranking_model_name")
        private String rerankingModelName;
    }
}

