import api from '..'; const COURSES_API = '/course'; export const coursesApi = api.injectEndpoints({ endpoints: (build) => ({ getTags: build.query, void>({ query: () => ({ url: `${COURSES_API}/tags`, method: 'GET', }), providesTags: ['courses'], }), getMarketCourses: build.query, void>({ query: () => ({ url: `${COURSES_API}/market`, method: 'GET', }), providesTags: ['courses'], }), getCoursesBySchool: build.query, number>({ query: (school_id) => ({ url: `${COURSES_API}/school/${school_id}`, method: 'GET', }), providesTags: ['courses'], }), getCoursesByTeacher: build.query, number>({ query: (teacher_id) => ({ url: `${COURSES_API}/teacher/${teacher_id}`, method: 'GET', }), providesTags: ['courses'], }), getAllMarketCourses: build.query, void>({ query: () => ({ url: `${COURSES_API}/market/all`, method: 'GET', }), providesTags: ['courses'], }), getAllSnai3iCourses: build.query, void>({ query: () => ({ url: `${COURSES_API}/snai3i/all`, method: 'GET', }), providesTags: ['courses'], }), getActiveSnai3iCourses: build.query, void>({ query: () => ({ url: `${COURSES_API}/snai3i`, method: 'GET', }), providesTags: ['courses'], }), getSnai3iCourseById: build.query, number>({ query: (courseId) => ({ url: `${COURSES_API}/snai3i/${courseId}`, method: 'GET', }), providesTags: ['courses'], }), getMarketCourseById: build.query, number>({ query: (courseId) => ({ url: `${COURSES_API}/market/${courseId}`, method: 'GET', }), providesTags: ['courses'], }), getCourseByInstructor: build.query, number>({ query: (inst_designer_id) => ({ url: `${COURSES_API}/instructor/${inst_designer_id}`, method: 'GET', }), providesTags: ['courses'], }), createSnai3iCourse: build.mutation, Snai3iCourseI>( { query: (body) => ({ url: `${COURSES_API}/create/snai3i`, method: 'POST', body: body, }), invalidatesTags: ['courses'], } ), createMarketCourse: build.mutation< ResponseI, CEMarketCourseI >({ query: (body) => ({ url: `${COURSES_API}/create/market`, method: 'POST', body: body, }), invalidatesTags: ['courses'], }), updateSnai3iCourse: build.mutation, Snai3iCourseI>({ query: (body) => ({ url: `${COURSES_API}/update/snai3i/${body.course_id}`, method: 'PUT', body: body, }), invalidatesTags: ['courses'], }), updateMarketCourse: build.mutation, CEMarketCourseI>({ query: (body) => ({ url: `${COURSES_API}/update/market/${body.course_id}`, method: 'PUT', body: body, }), invalidatesTags: ['courses'], }), updateCourseStatus: build.mutation< ResponseI, { course_id: number; status: string; } >({ query: ({ course_id, status }) => ({ url: `${COURSES_API}/update/status/${course_id}`, method: 'PUT', body: { status }, }), invalidatesTags: ['courses'], }), deleteCourse: build.mutation< ResponseI, { course_id: number; } >({ query: ({ course_id }) => ({ url: `${COURSES_API}/delete/${course_id}`, method: 'DELETE', }), invalidatesTags: ['courses'], }), }), }); // update/status/:meeting_id export const { useGetMarketCoursesQuery, useCreateSnai3iCourseMutation, useGetSnai3iCourseByIdQuery, useUpdateSnai3iCourseMutation, useCreateMarketCourseMutation, useGetMarketCourseByIdQuery, useUpdateMarketCourseMutation, useGetTagsQuery, useGetAllMarketCoursesQuery, useUpdateCourseStatusMutation, useDeleteCourseMutation, useGetCoursesBySchoolQuery, useGetCoursesByTeacherQuery, useGetActiveSnai3iCoursesQuery, useGetAllSnai3iCoursesQuery, useGetCourseByInstructorQuery, } = coursesApi;