export enum KBFileStatus {
  UNPROCESSED = "UNPROCESSED",
  PROCESSING = "PROCESSING",
  PROCESSED = "PROCESSED",
  PROCESS_FAILED = "PROCESS_FAILED",
}

export enum KBType {
  UNSTRUCTURED = "unstructured",
  STRUCTURED = "structured",
}

export interface KnowledgeBaseItem {
  id: string;
  name: string;
  description: string;
  type: KBType;
  createdAt: string;
  updatedAt: string;
  embeddingModel: string;
  chatModel: string;
  fileCount: number;
  chunkCount: number;
  embedding: never;
  chat: never;
}

export interface KBFile {
  id: string;
  fileName: string;
  name?: string;
  relativePath?: string;
  createdAt: string;
  updatedAt: string;
  status: KBFileStatus;
  chunkCount: number;
  metadata: Record<string, unknown>;
  knowledgeBaseId: string;
  fileId: string;
  updatedBy: string;
  createdBy: string;
}

export interface KnowledgeBaseFileSearchResult {
  id: string;
  knowledgeBaseId: string;
  knowledgeBaseName: string;
  fileName: string;
  relativePath?: string;
  status?: KBFileStatus;
  chunkCount?: number;
  createdAt?: string;
  updatedAt?: string;
}
