// src/components/ui/Badge.tsx
import React from 'react'

type BadgeVariant = 'green' | 'red' | 'yellow' | 'blue' | 'gray' | 'purple'

interface BadgeProps {
  variant?: BadgeVariant
  children: React.ReactNode
  className?: string
}

const variantMap: Record<BadgeVariant, string> = {
  green:  'badge-green',
  red:    'badge-red',
  yellow: 'badge-yellow',
  blue:   'badge-blue',
  gray:   'badge-gray',
  purple: 'badge-purple',
}

export function Badge({ variant = 'gray', children, className = '' }: BadgeProps) {
  return (
    <span className={`${variantMap[variant]} ${className}`}>
      {children}
    </span>
  )
}

export function statusBadgeVariant(status: string): BadgeVariant {
  const map: Record<string, BadgeVariant> = {
    approved: 'green',
    rejected: 'red',
    pending:  'yellow',
    draft:    'gray',
  }
  return map[status] ?? 'gray'
}

export function jobTypeBadgeVariant(type: string): BadgeVariant {
  const map: Record<string, BadgeVariant> = {
    FULL_TIME:  'blue',
    PART_TIME:  'purple',
    CONTRACT:   'yellow',
    FREELANCE:  'green',
    INTERNSHIP: 'gray',
  }
  return map[type] ?? 'gray'
}
