import { Badge } from 'antd'

import { DeploymentPhase } from 'apiClient/services/deployment/interface'

const phaseConfig: Record<
  string,
  {
    status: 'default' | 'processing' | 'success' | 'error' | 'warning'
    text: string
  }
> = {
  created: { status: 'default', text: 'Created' },
  preview_pending: { status: 'processing', text: 'Preview Pending' },
  preview_running: { status: 'processing', text: 'Preview Running' },
  preview_succeeded: { status: 'success', text: 'Preview Succeeded' },
  preview_failed: { status: 'error', text: 'Preview Failed' },
  approving: { status: 'warning', text: 'Approving' },
  apply_pending: { status: 'processing', text: 'Apply Pending' },
  apply_running: { status: 'processing', text: 'Apply Running' },
  apply_succeeded: { status: 'success', text: 'Apply Succeeded' },
  apply_failed: { status: 'error', text: 'Apply Failed' },
  canceled: { status: 'warning', text: 'Canceled' }
}

export function PhaseDisplay({ phase }: { phase?: DeploymentPhase | string }) {
  const config = phaseConfig[phase || ''] || {
    status: 'default' as const,
    text: phase || 'Unknown'
  }
  return <Badge status={config.status} text={config.text} />
}

const scenarioLabels: Record<string, string> = {
  aws_premium_region: 'AWS Premium Region',
  aws_byoc_region: 'AWS BYOC Region'
}

export function scenarioLabel(scenario?: string) {
  return scenarioLabels[scenario || ''] || scenario || 'Unknown'
}
