import { useQuery } from '@tanstack/vue-query' import { cleanFilters } from '@/utils/clean-filters' import { apiGetMissionaryDispatches, apiGetMissionaryNarratives, apiGetMissionaryProfile, apiGetMissionaryRequests, } from '@/services/api/student-missionary' export const missionaryKeys = { profile: ['student', 'missionary', 'profile'], requests: (filters, pagination) => ['student', 'missionary', 'requests', filters, pagination], dispatches: (filters, pagination) => ['student', 'missionary', 'dispatches', filters, pagination], narratives: (filters, pagination) => ['student', 'missionary', 'narratives', filters, pagination], } export const useMissionaryProfileQuery = (options = {}) => useQuery({ queryKey: missionaryKeys.profile, queryFn: () => apiGetMissionaryProfile(), select: (response) => response?.data ?? response, ...options, }) export const useMissionaryRequestsQuery = (filtersRef, paginationRef, options = {}) => useQuery({ queryKey: ['student', 'missionary', 'requests', filtersRef, paginationRef], queryFn: () => apiGetMissionaryRequests({ ...cleanFilters(filtersRef.value), ...paginationRef.value, }), ...options, }) export const useMissionaryDispatchesQuery = (filtersRef, paginationRef, options = {}) => useQuery({ queryKey: ['student', 'missionary', 'dispatches', filtersRef, paginationRef], queryFn: () => apiGetMissionaryDispatches({ ...cleanFilters(filtersRef.value), ...paginationRef.value, }), ...options, }) export const useMissionaryNarrativesQuery = (filtersRef, paginationRef, options = {}) => useQuery({ queryKey: ['student', 'missionary', 'narratives', filtersRef, paginationRef], queryFn: () => apiGetMissionaryNarratives({ ...cleanFilters(filtersRef.value), ...paginationRef.value, }), ...options, })