"use client";

import { FileUploadConfig } from "./types";

/**
 * V2 FileUpload 컴포넌트 기본 설정
 */
export const V2FileUploadDefaultConfig: FileUploadConfig = {
  placeholder: "파일을 선택하세요",
  multiple: true,
  accept: "*/*",
  maxSize: 10 * 1024 * 1024, // 10MB
  maxFiles: 10,
  
  // 공통 기본값
  disabled: false,
  required: false,
  readonly: false,
  variant: "default",
  size: "md",
  
  // V2 추가 설정 기본값
  showPreview: true,
  showFileList: true,
  showFileSize: true,
  allowDelete: true,
  allowDownload: true,
};

/**
 * V2 FileUpload 컴포넌트 설정 스키마
 * 유효성 검사 및 타입 체크에 사용
 */
export const V2FileUploadConfigSchema = {
  placeholder: { type: "string", default: "파일을 선택하세요" },
  multiple: { type: "boolean", default: true },
  accept: { type: "string", default: "*/*" },
  maxSize: { type: "number", default: 10 * 1024 * 1024 },
  maxFiles: { type: "number", default: 10 },
  
  // 공통 스키마
  disabled: { type: "boolean", default: false },
  required: { type: "boolean", default: false },
  readonly: { type: "boolean", default: false },
  variant: { 
    type: "enum", 
    values: ["default", "outlined", "filled"], 
    default: "default" 
  },
  size: { 
    type: "enum", 
    values: ["sm", "md", "lg"], 
    default: "md" 
  },
  
  // V2 추가 설정 스키마
  showPreview: { type: "boolean", default: true },
  showFileList: { type: "boolean", default: true },
  showFileSize: { type: "boolean", default: true },
  allowDelete: { type: "boolean", default: true },
  allowDownload: { type: "boolean", default: true },
};
