import { useQuery } from "@tanstack/react-query"; import { commonCodeApi } from "@/lib/api/commonCode"; import { queryKeys } from "@/lib/queryKeys"; /** * 카테고리 중복 검사 훅 */ export function useCheckCategoryDuplicate( field: "categoryCode" | "categoryName" | "categoryNameEng", value: string, excludeCode?: string, enabled = true, ) { return useQuery({ queryKey: queryKeys.validation.categoryDuplicate(field, value, excludeCode), queryFn: () => commonCodeApi.validation.checkCategoryDuplicate(field, value, excludeCode), enabled: enabled && !!value && value.trim().length > 0, staleTime: 0, // 항상 최신 데이터 확인 retry: false, // 중복 검사는 재시도하지 않음 select: (data) => data.data, meta: { // React Query 에러 로깅 비활성화 errorPolicy: "silent", }, }); } /** * 코드 중복 검사 훅 */ export function useCheckCodeDuplicate( categoryCode: string, field: "codeValue" | "codeName" | "codeNameEng", value: string, excludeCode?: string, enabled = true, ) { return useQuery({ queryKey: queryKeys.validation.codeDuplicate(categoryCode, field, value, excludeCode), queryFn: () => commonCodeApi.validation.checkCodeDuplicate(categoryCode, field, value, excludeCode), enabled: enabled && !!categoryCode && !!value && value.trim().length > 0, staleTime: 0, // 항상 최신 데이터 확인 retry: false, // 중복 검사는 재시도하지 않음 select: (data) => data.data, meta: { // React Query 에러 로깅 비활성화 errorPolicy: "silent", }, }); }