"use client";

import { ComponentCategory } from "@/types/component";
import { createComponentDefinition } from "../../utils/createComponentDefinition";
import { TimelineSchedulerComponent } from "./TimelineSchedulerComponent";
import { V2TimelineSchedulerConfigPanel as TimelineSchedulerConfigPanel } from "@/components/v2/config-panels/V2TimelineSchedulerConfigPanel";
import { defaultTimelineSchedulerConfig } from "./config";
import { TimelineSchedulerConfig } from "./types";

/**
 * v2-timeline-scheduler 컴포넌트 정의
 * 간트차트 형태의 일정/계획 시각화 및 편집 컴포넌트
 */
export const V2TimelineSchedulerDefinition = createComponentDefinition({
  id: "v2-timeline-scheduler",
  name: "타임라인 스케줄러",
  nameEng: "Timeline Scheduler Component",
  description: "간트차트 형태의 일정/계획 시각화 및 편집 컴포넌트",
  category: ComponentCategory.DISPLAY,
  webType: "text",
  component: TimelineSchedulerComponent,
  configPanel: TimelineSchedulerConfigPanel,
  defaultConfig: defaultTimelineSchedulerConfig as TimelineSchedulerConfig,
  defaultSize: {
    width: 1000,
    height: 500,
  },
  icon: "Calendar",
  tags: ["타임라인", "스케줄", "간트차트", "일정", "계획"],
  version: "2.0.0",
  author: "개발팀",
  documentation: "",
});

export { TimelineSchedulerComponent } from "./TimelineSchedulerComponent";
export { TimelineSchedulerConfigPanel } from "./TimelineSchedulerConfigPanel";
export * from "./types";
export * from "./config";
