export interface CaseLibraryFile {
  type: string
  type_name: string
  name: string
  url: string
  size?: string
  source_id?: string
  created_at: string
  updated_at: string
}

export interface CaseLibraryItem {
  id: string
  name: string
  description: string
  files: CaseLibraryFile[]
  operator: { id: string; name: string }
  created_at: string
  updated_at: string
}

export type CaseFileSelectionType = 'case' | 'ppt' | 'book' | 'video' | 'dataset' | 'other'

export type AuthorizePlatform = 'resource' | 'experiment'

export interface CaseAuthorizeCreateItem {
  experiment_id: string
  status: string
  name: string
  type: string
  url: string
  size: string
}

export interface BookAuthorizeCreateItem {
  experiment_id: string
  status: string
  name: string
  type: string
  url: string
  size: string
}

export interface VideoAuthorizeCreateItem {
  experiment_id: string
  status: string
  name: string
  source_id: string
}

export interface VideoUploadAuthParams {
  title: string
  file_name: string
}

export interface VideoUploadRefreshParams {
  source_id: string
}

export interface ResourceDocumentCreateItem {
  name: string
  source: string
  classification: string
  knowledge_points?: string
  url: string
  type: string
  size: string
}

export interface ResourceVideoCreateItem {
  name: string
  source: string
  classification: string
  knowledge_points: string
  cover: string
  source_id: string
  size?: number
}
