'use client';

import {
  Select,
  SelectContent,
  SelectItem,
  SelectTrigger,
  SelectValue,
} from '@/components/ui/select';
import { useTranslation } from '@/hooks/useTranslation';

const RESOURCES: Array<{ value: string; legacy?: boolean }> = [
  { value: '*' },
  { value: 'user' },
  { value: 'department' },
  { value: 'position' },
  { value: 'organization' },
  { value: 'region' },
  { value: 'role' },
  { value: 'permission' },
  { value: 'purchase_order' },
  { value: 'expense_request' },
  { value: 'contract_request' },
  { value: 'approval' },
  { value: 'form_template' },
  { value: 'form_instance' },
  { value: 'meeting' },
  { value: 'attendance' },
  { value: 'part' },
  { value: 'ticket' },
  { value: 'knowledge_article' },
  { value: 'performance_cycle' },
  { value: 'robot_unit' },
  { value: 'delegation' },
  { value: 'access_review' },
  // 历史豁免
  { value: 'org', legacy: true },
  { value: 'parts', legacy: true },
  { value: 'site-attendance', legacy: true },
  { value: 'robot-manager', legacy: true },
];

interface Props {
  value: string;
  onChange: (v: string) => void;
  placeholder?: string;
  disabled?: boolean;
}

export function ResourceCombobox({ value, onChange, placeholder, disabled }: Props) {
  const { t } = useTranslation();
  return (
    <Select value={value} onValueChange={onChange} disabled={disabled}>
      <SelectTrigger>
        <SelectValue placeholder={placeholder ?? t.iamAdmin.common.pickResource} />
      </SelectTrigger>
      <SelectContent>
        {RESOURCES.map((r) => (
          <SelectItem key={r.value} value={r.value}>
            {r.value}
            {r.legacy && <span className="ml-2 text-xs text-amber-600">LEGACY</span>}
          </SelectItem>
        ))}
      </SelectContent>
    </Select>
  );
}
