import { useQuery } from '@tanstack/react-query';
import { fetchAllLayers, fetchLayerTree, fetchWMSLayers } from '../services/api';
import type { Layer } from '@common/services/layerService';

// 모든 레이어 조회 훅
export function useLayers() {
  return useQuery<Layer[], Error>({
    queryKey: ['layers'],
    queryFn: fetchAllLayers,
    staleTime: 1000 * 60 * 5, // 5분간 캐시 유지
    retry: 3,
  });
}

// 계층 구조 레이어 트리 조회 훅
// staleTime 없음 → 마운트 시 항상 최신 데이터 요청 (관리자 설정 즉시 반영)
export function useLayerTree() {
  return useQuery<Layer[], Error>({
    queryKey: ['layers', 'tree'],
    queryFn: fetchLayerTree,
    retry: 3,
  });
}

// WMS 레이어만 조회 훅
export function useWMSLayers() {
  return useQuery<Layer[], Error>({
    queryKey: ['layers', 'wms'],
    queryFn: fetchWMSLayers,
    staleTime: 1000 * 60 * 5,
    retry: 3,
  });
}
