"use client";

import { ComponentRegistry } from "../../ComponentRegistry";
import { ComponentCategory } from "@/types/component";
import { FolderTree } from "lucide-react";
import { CategoryWidget } from "@/components/screen/widgets/CategoryWidget";
import { CategoryManagerConfigPanel } from "./CategoryManagerConfigPanel";

/**
 * 카테고리 관리 컴포넌트 자동 등록
 */
ComponentRegistry.registerComponent({
  // 기본 정보
  id: "category-manager",
  name: "카테고리 관리",
  nameEng: "Category Manager",
  description: "메뉴 스코프 기반 카테고리 값 관리 (좌우 분할 UI)",
  category: ComponentCategory.DISPLAY,
  webType: "category" as any,

  // 컴포넌트
  component: CategoryWidget,

  // 설정 패널
  configPanel: CategoryManagerConfigPanel,

  // 아이콘
  icon: FolderTree,

  // 기본 크기
  defaultSize: {
    width: 1000,
    height: 600,
  },

  // 태그
  tags: ["category", "reference", "manager", "scope", "menu"],

  // 작성자
  author: "system",

  // 속성
  properties: {
    menuId: {
      type: "number",
      label: "메뉴 ID",
      description: "현재 화면의 메뉴 ID (자동 설정)",
      required: true,
    },
    tableName: {
      type: "string",
      label: "테이블명",
      description: "현재 화면의 테이블명 (자동 설정)",
      required: true,
    },
  },

  // 특징
  features: [
    "메뉴 스코프 기반 카테고리 관리",
    "좌우 분할 UI (컬럼 목록 + 값 관리)",
    "실시간 검색 및 필터링",
    "CRUD 기능 (추가, 수정, 삭제)",
    "색상 및 아이콘 설정",
    "계층 구조 지원 (부모-자식)",
  ],

  // 제약사항
  constraints: {
    minSize: { width: 800, height: 400 },
    maxSize: { width: 1400, height: 1000 },
  },
});

// console.log("✅ 카테고리 관리 컴포넌트 등록 완료");

