"use client";

import React from "react";
import { createComponentDefinition } from "../../utils/createComponentDefinition";
import { ComponentCategory } from "@/types/component";
import { ItemRoutingComponent } from "./ItemRoutingComponent";
import { V2ItemRoutingConfigPanel as ItemRoutingConfigPanel } from "@/components/v2/config-panels/V2ItemRoutingConfigPanel";
import { defaultConfig } from "./config";

export const V2ItemRoutingDefinition = createComponentDefinition({
  id: "v2-item-routing",
  name: "품목별 라우팅",
  nameEng: "Item Routing",
  description: "품목별 라우팅 버전과 공정 순서를 관리하는 3단계 계층 컴포넌트",
  category: ComponentCategory.INPUT,
  webType: "component",
  component: ItemRoutingComponent,
  defaultConfig: defaultConfig,
  defaultSize: {
    width: 1400,
    height: 800,
    gridColumnSpan: "12",
  },
  configPanel: ItemRoutingConfigPanel,
  icon: "ListOrdered",
  tags: ["라우팅", "공정", "품목", "버전", "제조", "생산"],
  version: "1.0.0",
  author: "개발팀",
  documentation: `
품목별 라우팅 버전과 공정 순서를 관리하는 전용 컴포넌트입니다.

## 주요 기능
- 좌측: 품목 목록 검색 및 선택
- 우측 상단: 라우팅 버전 선택 (Badge 버튼) 및 추가/삭제
- 우측 하단: 선택된 버전의 공정 순서 테이블 (추가/수정/삭제)
- 기존 모달 화면 재활용 (1613, 1614, 1615)

## 커스터마이징
- 데이터 소스 테이블/컬럼 변경 가능
- 모달 화면 ID 변경 가능
- 공정 테이블 컬럼 추가/삭제 가능
- 좌우 분할 비율, 패널 제목, 버튼 텍스트 변경 가능
- 읽기 전용 모드 지원
  `,
});

export type {
  ItemRoutingConfig,
  ItemRoutingComponentProps,
  ItemRoutingDataSource,
  ItemRoutingModals,
  ProcessColumnDef,
} from "./types";

export { ItemRoutingComponent } from "./ItemRoutingComponent";
export { ItemRoutingRenderer } from "./ItemRoutingRenderer";
export { ItemRoutingConfigPanel } from "./ItemRoutingConfigPanel";
