"use client";

import { ComponentConfig } from "@/types/component";

/**
 * ImageDisplay 컴포넌트 설정 타입
 */
export interface ImageDisplayConfig extends ComponentConfig {
  // 이미지 관련 설정
  imageUrl?: string;
  altText?: string;
  objectFit?: "contain" | "cover" | "fill" | "none" | "scale-down";
  borderRadius?: number;
  showBorder?: boolean;
  backgroundColor?: string;
  placeholder?: string;

  // 공통 설정
  disabled?: boolean;
  required?: boolean;
  readonly?: boolean;

  // 스타일 관련
  variant?: "default" | "outlined" | "filled";
  size?: "sm" | "md" | "lg";

  // 이벤트 관련
  onChange?: (value: any) => void;
  onFocus?: () => void;
  onBlur?: () => void;
  onClick?: () => void;
}

/**
 * ImageDisplay 컴포넌트 Props 타입
 */
export interface ImageDisplayProps {
  id?: string;
  name?: string;
  value?: any;
  config?: ImageDisplayConfig;
  className?: string;
  style?: React.CSSProperties;

  // 이벤트 핸들러
  onChange?: (value: any) => void;
  onFocus?: () => void;
  onBlur?: () => void;
  onClick?: () => void;
}
