package com.cy.guoyan.admin.module.ai.dal.dataobject.chatknowledgedataset;

import lombok.*;

import java.time.LocalDateTime;

import com.baomidou.mybatisplus.annotation.*;
import com.cy.guoyan.admin.framework.mybatis.core.dataobject.BaseDO;
/**
 * AI 知识库 DO
 *
 * @author 管理员
 */
@TableName("ai_chat_knowledge_dataset")
@KeySequence("ai_chat_knowledge_dataset_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ChatKnowledgeDatasetDO extends BaseDO {

    /**
     * 主键
     */
    @TableId
    private Long id;
    /**
     * Dify 平台返回的 Dataset ID，UUID 格式
     */
    private String difyDatasetId;
    /**
     * 知识库名称（由用户或 Dify 自动生成）
     */
    private String name;
    /**
     * 知识库描述（可选填）
     */
    private String description;
    /**
     * 索引策略，如“high_quality” 或“fast”
     */
    private String indexingTechnique;
    /**
     * 用于向量化的模型名称，如“openai-embedding-ada-002”
     */
    private String embeddingModel;
    /**
     * 新增文档后，是否自动触发重新索引
     */
    private Boolean autoUpdate;
    /**
     * 是否启用该知识库（查询时可过滤）
     */
    private Boolean enabled;
    /**
     * 默认访问权限：read / write / private
     */
    private String defaultPermission;
    /**
     * 已挂载在多少个应用上
     */
    private Integer appCount;
    /**
     * Dify 服务端创建时间
     */
    private LocalDateTime difyCreatedAt;
    /**
     * Dify 服务端最后更新时间
     */
    private LocalDateTime difyUpdatedAt;
    /**
     * Dify 返回的完整元数据 JSON（便于调试和扩展）
     */
    private String metadataJson;

}