'use client';

import {
  SaveConfirmDialog,
  DeleteConfirmDialog,
} from '@/components/ui/confirm-dialog';

interface OrderDialogsProps {
  // 저장 다이얼로그
  showSaveDialog: boolean;
  onSaveDialogChange: (open: boolean) => void;
  onConfirmSave: () => void;
  // 삭제 다이얼로그
  showDeleteDialog: boolean;
  onDeleteDialogChange: (open: boolean) => void;
  onConfirmDelete: () => void;
  // 카테고리 삭제 다이얼로그
  showCategoryDeleteDialog: string | null;
  onCategoryDeleteDialogChange: (categoryId: string | null) => void;
  onConfirmDeleteCategory: () => void;
  // 공통
  isLoading: boolean;
}

export function OrderDialogs({
  showSaveDialog,
  onSaveDialogChange,
  onConfirmSave,
  showDeleteDialog,
  onDeleteDialogChange,
  onConfirmDelete,
  showCategoryDeleteDialog,
  onCategoryDeleteDialogChange,
  onConfirmDeleteCategory,
  isLoading,
}: OrderDialogsProps) {
  return (
    <>
      {/* 저장 확인 다이얼로그 */}
      <SaveConfirmDialog
        open={showSaveDialog}
        onOpenChange={onSaveDialogChange}
        loading={isLoading}
        onConfirm={onConfirmSave}
      />

      {/* 삭제 확인 다이얼로그 */}
      <DeleteConfirmDialog
        open={showDeleteDialog}
        onOpenChange={onDeleteDialogChange}
        description="이 발주를 삭제하시겠습니까? 이 작업은 되돌릴 수 없습니다."
        loading={isLoading}
        onConfirm={onConfirmDelete}
      />

      {/* 카테고리 삭제 확인 다이얼로그 */}
      <DeleteConfirmDialog
        open={!!showCategoryDeleteDialog}
        onOpenChange={() => onCategoryDeleteDialogChange(null)}
        description="이 발주 상세를 삭제하시겠습니까? 해당 카테고리의 모든 품목이 삭제됩니다."
        onConfirm={onConfirmDeleteCategory}
      />
    </>
  );
}
