export type DocLike = { uuid: string; original_name?: string; name?: string; extension?: string; mime_type?: string }

const PREVIEW_EXTS = ['pdf', 'txt', 'jpeg', 'jpg', 'png', 'doc', 'docx']
const DOWNLOAD_ONLY_EXTS = ['xls', 'xlsx', 'csv']

export function getExtension(doc: DocLike): string {
  const ext = doc.extension || (doc.original_name || doc.name || '').split('.').pop() || ''
  return ext.toLowerCase()
}

export function isPreviewableExt(ext?: string): boolean {
  if (!ext) return false
  return PREVIEW_EXTS.includes(ext.toLowerCase())
}

export function isDownloadOnlyExt(ext?: string): boolean {
  if (!ext) return false
  return DOWNLOAD_ONLY_EXTS.includes(ext.toLowerCase())
}

export function classifyDocument(doc: DocLike): 'preview' | 'download' {
  const ext = getExtension(doc)
  if (isPreviewableExt(ext)) return 'preview'
  return 'download'
}
