import { cleanFilters } from '@/utils/clean-filters' import { useMutation, useQuery } from '@tanstack/vue-query' import { apiGetStudentExams, apiShowStudentExam, apiSubmitStudentExamAttempt, } from '@/services/api/student-exams' export const studentExamsKeys = { list: (filters, pagination) => ['student', 'exams', 'list', filters, pagination], detail: (id) => ['student', 'exams', 'detail', id], } export const useStudentExamsListQuery = (filtersRef, paginationRef, options = {}) => useQuery({ queryKey: ['student', 'exams', 'list', filtersRef, paginationRef], queryFn: () => apiGetStudentExams({ ...cleanFilters(filtersRef.value), ...paginationRef.value, }), select: (response) => ({ data: response?.data?.items ?? response?.data ?? [], meta: response?.data?.meta ?? response?.meta, }), ...options, }) export const useStudentExamQuery = (idRef, options = {}) => useQuery({ queryKey: ['student', 'exams', 'detail', idRef], queryFn: () => apiShowStudentExam(idRef.value), select: (response) => response?.data ?? response, ...options, }) export const useSubmitStudentExamAttemptMutation = () => useMutation({ mutationFn: ({ id, payload }) => apiSubmitStudentExamAttempt(id, payload), })