"use client";

import { useCompanyManagement } from "@/hooks/useCompanyManagement";
import { CompanyToolbar } from "./CompanyToolbar";
import { CompanyTable } from "./CompanyTable";
import { CompanyFormModal } from "./CompanyFormModal";
import { CompanyDeleteDialog } from "./CompanyDeleteDialog";

/**
 * 회사 관리 메인 컴포넌트
 * 모든 회사 관리 기능을 통합하여 제공
 */
export function CompanyManagement() {
  const {
    // 데이터
    companies,
    searchFilter,
    isLoading,
    error,

    // 모달 상태
    modalState,
    deleteState,

    // 검색 기능
    updateSearchFilter,
    clearSearchFilter,

    // 모달 제어
    openCreateModal,
    openEditModal,
    closeModal,
    updateFormData,

    // 삭제 다이얼로그 제어
    openDeleteDialog,
    closeDeleteDialog,

    // CRUD 작업
    saveCompany,
    deleteCompany,

    // 에러 처리
    clearError,
  } = useCompanyManagement();

  return (
    <div className="space-y-6">
      {/* 툴바 - 검색, 필터, 등록 버튼 */}
      <CompanyToolbar
        searchFilter={searchFilter}
        totalCount={companies.length} // 실제 API에서 가져온 데이터 개수 사용
        filteredCount={companies.length}
        onSearchChange={updateSearchFilter}
        onSearchClear={clearSearchFilter}
        onCreateClick={openCreateModal}
      />

      {/* 회사 목록 테이블 */}
      <CompanyTable companies={companies} isLoading={isLoading} onEdit={openEditModal} onDelete={openDeleteDialog} />

      {/* 회사 등록/수정 모달 */}
      <CompanyFormModal
        modalState={modalState}
        isLoading={isLoading}
        error={error}
        onClose={closeModal}
        onSave={saveCompany}
        onFormChange={updateFormData}
        onClearError={clearError}
      />

      {/* 회사 삭제 확인 다이얼로그 */}
      <CompanyDeleteDialog
        deleteState={deleteState}
        isLoading={isLoading}
        error={error}
        onClose={closeDeleteDialog}
        onConfirm={deleteCompany}
        onClearError={clearError}
      />
    </div>
  );
}
