import { baseApi } from '@ema-platform/api'; import type { Question, ListResponse, CreateQuestionPayload, UpdateQuestionPayload, ReviewQuestionPayload, } from '../types/question'; const questionApi = baseApi.injectEndpoints({ endpoints: (builder) => ({ getQuestions: builder.query, void>({ query: () => '/questions', providesTags: ['Api'], }), getQuestion: builder.query({ query: (id) => `/questions/${id}`, providesTags: ['Api'], }), createQuestion: builder.mutation({ query: (body) => ({ url: '/questions', method: 'POST', body }), invalidatesTags: ['Api'], }), updateQuestion: builder.mutation({ query: ({ id, ...body }) => ({ url: `/questions/${id}`, method: 'PUT', body, }), invalidatesTags: ['Api'], }), deleteQuestion: builder.mutation({ query: (id) => ({ url: `/questions/${id}`, method: 'DELETE' }), invalidatesTags: ['Api'], }), /** Hand a drafted or corrected item to the supervisor (US-EXAM-003). */ submitQuestion: builder.mutation({ query: (id) => ({ url: `/questions/${id}/submit`, method: 'POST' }), invalidatesTags: ['Api'], }), /** Approve, reject or retire a bank item (US-EXAM-003). */ reviewQuestion: builder.mutation({ query: ({ id, ...body }) => ({ url: `/questions/${id}/review`, method: 'POST', body, }), invalidatesTags: ['Api'], }), }), overrideExisting: false, }); export const { useGetQuestionsQuery, useGetQuestionQuery, useCreateQuestionMutation, useUpdateQuestionMutation, useDeleteQuestionMutation, useSubmitQuestionMutation, useReviewQuestionMutation, } = questionApi;