package org.xyzh.ai.client.dto;

import com.alibaba.fastjson2.annotation.JSONField;
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;
    
    @JSONField(name = "indexing_technique")
    private String indexingTechnique;
    
    @JSONField(name = "embedding_model")
    private String embeddingModel;
    
    @JSONField(name = "embedding_model_provider")
    private String embeddingModelProvider;
    
    @JSONField(name = "embedding_available")
    private Boolean embeddingAvailable;
    
    @JSONField(name = "retrieval_model_dict")
    private RetrievalModelDict retrievalModelDict;
    
    @JSONField(name = "document_count")
    private Integer documentCount;
    
    @JSONField(name = "word_count")
    private Integer wordCount;
    
    @JSONField(name = "app_count")
    private Integer appCount;
    
    @JSONField(name = "created_by")
    private String createdBy;
    
    @JSONField(name = "created_at")
    private Long createdAt;
    
    @JSONField(name = "updated_at")
    private Long updatedAt;

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

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

