import { baseApi } from '@ema-platform/api'; import type { Exam, ListResponse, CreateExamPayload, UpdateExamPayload, AssignQuestionsPayload, } from '../types/exam'; const examApi = baseApi.injectEndpoints({ endpoints: (builder) => ({ getExams: builder.query, void>({ query: () => '/exams?q=i=questions', providesTags: ['Api'], }), getExam: builder.query({ query: (id) => `/exams/${id}?i=questions`, providesTags: ['Api'], }), createExam: builder.mutation({ query: (body) => ({ url: '/exams', method: 'POST', body }), invalidatesTags: ['Api'], }), updateExam: builder.mutation({ query: ({ id, ...body }) => ({ url: `/exams/${id}`, method: 'PUT', body, }), invalidatesTags: ['Api'], }), deleteExam: builder.mutation({ query: (id) => ({ url: `/exams/${id}`, method: 'DELETE' }), invalidatesTags: ['Api'], }), assignQuestions: builder.mutation({ query: ({ examId, questionIds, remark }) => ({ url: `/exams/${examId}/questions`, method: 'POST', body: { examId, questionIds, remark }, }), invalidatesTags: ['Api'], }), }), overrideExisting: false, }); export const { useGetExamsQuery, useGetExamQuery, useCreateExamMutation, useUpdateExamMutation, useDeleteExamMutation, useAssignQuestionsMutation, } = examApi;