"use client";

import React from "react";
import { createComponentDefinition } from "../../utils/createComponentDefinition";
import { ComponentCategory } from "@/types/component";
import { ProcessWorkStandardComponent } from "./ProcessWorkStandardComponent";
import { V2ProcessWorkStandardConfigPanel as ProcessWorkStandardConfigPanel } from "@/components/v2/config-panels/V2ProcessWorkStandardConfigPanel";
import { defaultConfig } from "./config";

export const V2ProcessWorkStandardDefinition = createComponentDefinition({
  id: "v2-process-work-standard",
  name: "공정 작업기준",
  nameEng: "Process Work Standard",
  description: "품목별 라우팅/공정에 대한 작업 전·중·후 기준 항목을 관리하는 컴포넌트",
  category: ComponentCategory.INPUT,
  webType: "component",
  component: ProcessWorkStandardComponent,
  defaultConfig: defaultConfig,
  defaultSize: {
    width: 1400,
    height: 800,
    gridColumnSpan: "12",
  },
  configPanel: ProcessWorkStandardConfigPanel,
  icon: "ClipboardCheck",
  tags: ["공정", "작업기준", "품질", "검사", "체크리스트", "라우팅", "제조"],
  version: "1.0.0",
  author: "개발팀",
  documentation: `
공정별 작업기준(Pre-Work / In-Work / Post-Work)을 관리하는 컴포넌트입니다.

## 주요 기능
- 좌측: 품목 → 라우팅 버전 → 공정 아코디언 트리 선택
- 우측: 작업 단계별 작업 항목 및 상세 관리
- 작업 항목 추가/수정/삭제 (모달)
- 항목별 상세 체크리스트 관리
- 전체 저장 기능

## 커스터마이징
- 작업 단계(Phase) 추가/삭제/이름변경 가능
- 상세 유형 옵션 커스텀 가능
- 데이터 소스 테이블 변경 가능
  `,
});

export type {
  ProcessWorkStandardConfig,
  ProcessWorkStandardComponentProps,
  WorkPhaseDefinition,
  DetailTypeDefinition,
  DataSourceConfig,
  WorkItem,
  WorkItemDetail,
  SelectionState,
} from "./types";

export { ProcessWorkStandardComponent } from "./ProcessWorkStandardComponent";
export { ProcessWorkStandardRenderer } from "./ProcessWorkStandardRenderer";
export { ProcessWorkStandardConfigPanel } from "./ProcessWorkStandardConfigPanel";
