ai-hackaton-frontend/hooks/useResume.ts
2025-08-31 00:27:33 +05:00

44 lines
1.2 KiB
TypeScript

import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query'
import { resumeService } from '@/services/resume.service'
import { ResumeCreate, GetResumesParams } from '@/types/api'
export const useCreateResume = () => {
const queryClient = useQueryClient()
return useMutation({
mutationFn: (data: ResumeCreate) => resumeService.createResume(data),
onSuccess: () => {
// Invalidate and refetch resumes
queryClient.invalidateQueries({ queryKey: ['resumes'] })
},
})
}
export const useResume = (id: number) => {
return useQuery({
queryKey: ['resume', id],
queryFn: () => resumeService.getResume(id),
enabled: !!id,
staleTime: 10 * 60 * 1000, // 10 minutes
retry: 2,
})
}
export const useResumes = (params?: GetResumesParams) => {
return useQuery({
queryKey: ['resumes', params],
queryFn: () => resumeService.getResumes(params),
staleTime: 5 * 60 * 1000, // 5 minutes
retry: 2,
})
}
export const useResumesByVacancy = (vacancyId: number) => {
return useQuery({
queryKey: ['resumes', 'by-vacancy', vacancyId],
queryFn: () => resumeService.getResumes({ vacancy_id: vacancyId }),
enabled: !!vacancyId,
staleTime: 2 * 60 * 1000, // 2 minutes
retry: 2,
})
}