
import { useCallback } from 'react';
import { useRouter } from 'next/navigation';

/**
 * 리스트 페이지 공통 핸들러 Hook
 *
 * 리스트 페이지에서 반복되는 라우팅 핸들러를 공통화
 * - handleRowClick: 상세 보기 (mode=view)
 * - handleEdit: 수정 모드 (mode=edit)
 *
 * @example
 * const { handleRowClick, handleEdit } = useListHandlers<Contract>(
 *   'construction/project/contract'
 * );
 *
 * // 자동으로 /ko/ 접두사 추가
 * // handleRowClick(item) → /ko/construction/project/contract/{id}?mode=view
 * // handleEdit(item) → /ko/construction/project/contract/{id}?mode=edit
 */
export function useListHandlers<T extends { id: string }>(basePath: string) {
  const router = useRouter();

  const handleRowClick = useCallback(
    (item: T) => {
      router.push(`/ko/${basePath}/${item.id}?mode=view`);
    },
    [router, basePath]
  );

  const handleEdit = useCallback(
    (item: T) => {
      router.push(`/ko/${basePath}/${item.id}?mode=edit`);
    },
    [router, basePath]
  );

  return { handleRowClick, handleEdit, router };
}
