"use client";

import React from "react";
import { createComponentDefinition } from "../../utils/createComponentDefinition";
import { ComponentCategory } from "@/types/component";
import type { WebType } from "@/types/screen";
import { FileUploadComponent } from "./FileUploadComponent";
import { V2FileUploadConfigPanel } from "@/components/v2/config-panels/V2FileUploadConfigPanel";
import { FileUploadConfig } from "./types";

/**
 * V2 FileUpload 컴포넌트 정의
 * 화면관리 전용 V2 파일 업로드 컴포넌트입니다
 */
export const V2FileUploadDefinition = createComponentDefinition({
  id: "v2-file-upload",
  name: "파일 업로드",
  nameEng: "V2 FileUpload Component",
  description: "V2 파일 업로드를 위한 파일 선택 컴포넌트",
  category: ComponentCategory.INPUT,
  webType: "file",
  component: FileUploadComponent,
  defaultConfig: {
    placeholder: "파일을 선택하세요",
    multiple: true,
    accept: "*/*",
    maxSize: 10 * 1024 * 1024, // 10MB
  },
  defaultSize: { width: 350, height: 240 },
  configPanel: V2FileUploadConfigPanel,
  icon: "Upload",
  tags: ["file", "upload", "attachment", "v2"],
  version: "2.0.0",
  author: "개발팀",
  documentation: "https://docs.example.com/components/v2-file-upload",
});

// 타입 내보내기
export type { FileUploadConfig, FileInfo, FileUploadProps, FileUploadStatus, FileUploadResponse } from "./types";

// 컴포넌트 내보내기
export { FileUploadComponent } from "./FileUploadComponent";
export { V2FileUploadRenderer } from "./V2FileUploadRenderer";

// 기본 export
export default V2FileUploadDefinition;
