"use client";

import React from "react";
import { createComponentDefinition } from "../../utils/createComponentDefinition";
import { ComponentCategory } from "@/types/component";
import { NumberingRuleWrapper } from "./NumberingRuleComponent";
import { V2NumberingRuleConfigPanel } from "@/components/v2/config-panels/V2NumberingRuleConfigPanel";
import { defaultConfig } from "./config";

/**
 * 채번 규칙 컴포넌트 정의
 * 코드 자동 채번 규칙을 설정하고 관리하는 관리자 전용 컴포넌트
 */
export const V2NumberingRuleDefinition = createComponentDefinition({
  id: "v2-numbering-rule",
  name: "코드 채번 규칙",
  nameEng: "Numbering Rule Component",
  description: "코드 자동 채번 규칙을 설정하고 관리하는 컴포넌트",
  category: ComponentCategory.DISPLAY,
  webType: "component",
  component: NumberingRuleWrapper,
  defaultConfig: defaultConfig,
  defaultSize: { 
    width: 1200, 
    height: 800,
    gridColumnSpan: "12",
  },
  configPanel: V2NumberingRuleConfigPanel,
  icon: "Hash",
  tags: ["코드", "채번", "규칙", "표시", "자동생성"],
  version: "1.0.0",
  author: "개발팀",
  documentation: "코드 자동 채번 규칙을 설정합니다. 접두사, 날짜, 순번 등을 조합하여 고유한 코드를 생성할 수 있습니다.",
});

// 타입 내보내기
export type { NumberingRuleComponentConfig } from "./types";

// 컴포넌트 내보내기
export { NumberingRuleComponent } from "./NumberingRuleComponent";
export { NumberingRuleRenderer } from "./NumberingRuleRenderer";

