44 lines
1.2 KiB
TypeScript
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,
|
|
})
|
|
} |