import { StatusBadge, StatusVariantMap } from 'dbaas/components/StatusBadge'
import { DataflowBackupExportStatus } from 'dbaas/services/dataflow/interface'

const StatusColorMap: Record<DataflowBackupExportStatus, string> = {
  [DataflowBackupExportStatus.STATUS_UNSPECIFIED]: 'carbon',
  [DataflowBackupExportStatus.PENDING]: 'carbon',
  [DataflowBackupExportStatus.RUNNING]: 'peacock',
  [DataflowBackupExportStatus.FAILED]: 'red',
  [DataflowBackupExportStatus.SUCCESS]: 'green',
  [DataflowBackupExportStatus.CANCELED]: 'carbon'
}

export const BackupExportStatus = ({
  status,
  error,
  withinPortal = false
}: {
  status: DataflowBackupExportStatus
  error?: string
  withinPortal?: boolean
}) => {
  const color = StatusColorMap[status] as any
  const variant = StatusVariantMap[color] ?? 'default'
  return <StatusBadge variant={variant} status={status} error={error} color={color} hoverCardProps={{ withinPortal }} />
}
