/**
 * 동적 필드 렌더러
 * field_type에 따라 적절한 필드 컴포넌트를 선택하여 렌더링
 */

'use client';

import { TextField } from './TextField';
import { NumberField } from './NumberField';
import { DropdownField } from './DropdownField';
import { CheckboxField } from './CheckboxField';
import { DateField } from './DateField';
import { TextareaField } from './TextareaField';
import type { DynamicFieldRendererProps } from '../types';

export function DynamicFieldRenderer(props: DynamicFieldRendererProps) {
  const { field } = props;

  switch (field.field_type) {
    case 'textbox':
      return <TextField {...props} />;

    case 'number':
      return <NumberField {...props} />;

    case 'dropdown':
      return <DropdownField {...props} />;

    case 'checkbox':
      return <CheckboxField {...props} />;

    case 'date':
      return <DateField {...props} />;

    case 'textarea':
      return <TextareaField {...props} />;

    default:
      // 알 수 없는 타입은 텍스트 필드로 폴백
      console.warn(`Unknown field type: ${field.field_type}, falling back to TextField`);
      return <TextField {...props} />;
  }
}
