import { StatusBadge, StatusVariantMap } from 'dbaas/components/StatusBadge'
import { DataMigrationJobColorMap as StatusColorMap } from 'dbaas/features/DataMigration'
import {
  SubTaskStage as EssentialSubTaskStage,
  MigrationTaskState
} from 'dbaas/services/api-clients/legacy/serverless/interface'
import { DmSubTaskStage as DedicatedDmSubTaskStage, PremiumMigrationState } from 'dbaas/services/dataflow/interface'

export const DmJobStatus = ({
  status,
  error,
  withinPortal = true
}: {
  status: DedicatedDmSubTaskStage | EssentialSubTaskStage | PremiumMigrationState | MigrationTaskState
  error?: string
  withinPortal?: boolean
}) => {
  const color = (StatusColorMap[status] as any) ?? 'carbon'
  const variant = StatusVariantMap[color] ?? 'default'
  return (
    <StatusBadge
      variant={variant}
      status={status.replace('STAGE_', '')}
      error={error}
      color={color}
      hoverCardProps={{ withinPortal }}
    />
  )
}
