import { Badge, BadgeProps } from '@tidbcloud/uikit'
import { lowerCase, startCase } from 'lodash-es'

type ServiceStatus = 'CREATING' | 'ACTIVE' | 'DELETING' | 'FAILED' | 'NOT_CONFIGURE' | 'PENDING' | 'DISCOVERED'

interface ServiceStatusBadgeProps {
  status?: ServiceStatus
}

export const ServiceStatusBadge = ({ status }: ServiceStatusBadgeProps) => {
  const statusMap: Record<ServiceStatus, BadgeProps['color']> = {
    CREATING: 'yellow',
    ACTIVE: 'green',
    DELETING: 'red',
    FAILED: 'red',
    NOT_CONFIGURE: 'gray',
    PENDING: 'gray',
    DISCOVERED: 'gray'
  }

  const color = status ? statusMap[status] : 'gray'
  const statusLabel = status === 'NOT_CONFIGURE' ? 'Not Configured' : startCase(lowerCase(status || ''))

  return (
    <Badge color={color} variant="dot" size="lg" sx={{ padding: 0 }}>
      {statusLabel}
    </Badge>
  )
}
