export enum KnowledgeStatusType {
  DRAFT = "DRAFT",
  PUBLISHED = "PUBLISHED",
  ARCHIVED = "ARCHIVED",
  DEPRECATED = "DEPRECATED",
}

export enum KnowledgeContentType {
  TEXT = "TEXT",
  MARKDOWN = "MARKDOWN",
  FILE = "FILE",
}

export enum KnowledgeSourceType {
  MANUAL = "MANUAL",
  DATASET_FILE = "DATASET_FILE",
  FILE_UPLOAD = "FILE_UPLOAD",
}

export interface KnowledgeTag {
  id: string;
  name: string;
  color?: string;
  description?: string;
  usageCount?: number;
}

export interface KnowledgeSet {
  id: string;
  name: string;
  description?: string;
  status: KnowledgeStatusType;
  tags: KnowledgeTag[];
  domain?: string;
  businessLine?: string;
  owner?: string;
  validFrom?: string;
  validTo?: string;
  sourceType?: KnowledgeSourceType;
  sensitivity?: string;
  metadata?: string;
  createdAt?: string;
  updatedAt?: string;
  createdBy?: string;
  updatedBy?: string;
}

export interface KnowledgeItem {
  id: string;
  setId: string;
  content: string;
  contentType: KnowledgeContentType;
  status: KnowledgeStatusType;
  tags: KnowledgeTag[];
  domain?: string;
  businessLine?: string;
  owner?: string;
  validFrom?: string;
  validTo?: string;
  sourceType?: KnowledgeSourceType;
  sensitivity?: string;
  sourceDatasetId?: string;
  sourceFileId?: string;
  metadata?: string;
  createdAt?: string;
  updatedAt?: string;
  createdBy?: string;
  updatedBy?: string;
}
