import { Badge } from '@tidbcloud/uikit'
import { capitalize } from 'lodash-es'

import { Nextgenv1beta2BackupState } from 'dbaas/services/api-clients/v2025/tidb-management/v1beta2/interface'
import { BackupExternalStatus } from 'dbaas/services/dataflow/interface'

/**
 * for dedicated
 */
export const BackupStatus = ({ status }: { status: BackupExternalStatus }) => {
  const statusMap: {
    [index: string]: string
  } = {
    [BackupExternalStatus.SUCCESS]: 'green',
    [BackupExternalStatus.FAILED]: 'red',
    [BackupExternalStatus.RUNNING]: 'yellow'
  }

  return (
    <Badge variant="dot" color={statusMap[status] ?? 'carbon'} size="lg" p={0}>
      {capitalize(status)}
    </Badge>
  )
}

/**
 * for premium
 */
export const BackupStatusPremium = ({ status }: { status: Nextgenv1beta2BackupState }) => {
  const statusMap: {
    [index: string]: string
  } = {
    [Nextgenv1beta2BackupState.SUCCEEDED]: 'green',
    [Nextgenv1beta2BackupState.FAILED]: 'red',
    [Nextgenv1beta2BackupState.PENDING]: 'yellow'
  }

  return (
    <Badge variant="dot" color={statusMap[status] ?? 'carbon'} size="lg" p={0}>
      {capitalize(status)}
    </Badge>
  )
}
