"use client";

import React from "react";
import { createComponentDefinition } from "../../utils/createComponentDefinition";
import { ComponentCategory } from "@/types/component";
import { TaxInvoiceListWrapper } from "./TaxInvoiceListComponent";
import { TaxInvoiceListConfigPanel } from "./TaxInvoiceListConfigPanel";
import { TaxInvoiceListConfig, defaultTaxInvoiceListConfig } from "./types";

/**
 * 세금계산서 목록 컴포넌트 정의
 * 세금계산서 CRUD, 발행, 취소 기능을 제공하는 컴포넌트
 */
export const TaxInvoiceListDefinition = createComponentDefinition({
  id: "tax-invoice-list",
  name: "세금계산서 목록",
  nameEng: "Tax Invoice List",
  description: "세금계산서 목록 조회, 작성, 발행, 취소 기능을 제공하는 컴포넌트",
  category: ComponentCategory.DISPLAY,
  webType: "text",
  component: TaxInvoiceListWrapper,
  defaultConfig: defaultTaxInvoiceListConfig,
  defaultSize: { width: 1200, height: 700 },
  configPanel: TaxInvoiceListConfigPanel,
  icon: "FileText",
  tags: ["세금계산서", "매출", "매입", "발행", "인보이스"],
  version: "1.0.0",
  author: "개발팀",
  documentation: "",
});

// 타입 내보내기
export type { TaxInvoiceListConfig } from "./types";
export { TaxInvoiceListWrapper } from "./TaxInvoiceListComponent";
export { TaxInvoiceListConfigPanel } from "./TaxInvoiceListConfigPanel";
export { TaxInvoiceListRenderer } from "./TaxInvoiceListRenderer";

