import { getFileData, getLatestFileForTemplate } from '@/service/fileApiService'
import { useQuery } from '@tanstack/react-query'

// Ключи для React Query
export const fileKeys = {
  all: ['files'] as const,
  byTemplate: (templateId: string) =>
    [...fileKeys.all, 'template', templateId] as const,
  latest: (templateId: string) =>
    [...fileKeys.byTemplate(templateId), 'latest'] as const,
  data: (fileId: string) => [...fileKeys.all, 'data', fileId] as const,
}

// Хук для получения последнего файла для шаблона
export function useLatestFileForTemplate(templateId: string | undefined) {
  return useQuery({
    queryKey: fileKeys.latest(templateId || ''),
    queryFn: () => getLatestFileForTemplate(templateId!),
    enabled: !!templateId,
    staleTime: 5 * 60 * 1000, // 5 минут
    gcTime: 10 * 60 * 1000, // 10 минут кеш
  })
}

// Хук для получения данных файла по ID
export function useFileData(fileId: string | undefined) {
  return useQuery({
    queryKey: fileKeys.data(fileId || ''),
    queryFn: () => getFileData(fileId!),
    enabled: !!fileId,
    staleTime: 10 * 60 * 1000, // 10 минут для данных файла
    gcTime: 30 * 60 * 1000, // 30 минут кеш
  })
}
