import { api } from '@/services/api';
import { PracVideoDataResponse } from './PracVideo';



export interface FAQDataResponse {

    id?: string,
    title: string,
    description: string,
    status: boolean
}
export interface FAQDataResponseByID {
    success: boolean,
    message: string
    info: FAQDataResponse
}


export interface FAQGetDataResponse {

    success: boolean,
    message: string
    details: {
        docs: FAQDataResponse[],
        pages: number
        total: number
    }
}

export interface FAQCreate {
    id?: string,
    title: string,
    description: string,
    status: boolean
}

export const FAQ = api.injectEndpoints({
    endpoints: (build) => ({
        FAQGetData: build.query<FAQGetDataResponse, { search?: string, page: number, paginate: number }>({
            query: (params) => ({
                url: `/faq/showall`,
                method: 'GET',
                params
            }),
            providesTags: ['FAQGetData'],
        }),
        FAQGetDataById: build.query<FAQDataResponseByID, { id: string }>({
            query: (params) => ({
                url: `/faq`,
                params
            }),
            providesTags: ['FAQGetDataById'],
        }),
        FAQCreate: build.mutation<FAQDataResponse, FAQCreate>({
            query: (body) => ({
                url: '/faq',
                method: 'POST',
                body,
            }),
            invalidatesTags: ['FAQGetData', 'FAQCreate', "FAQGetDataById"],
        }),
        FAQUpdate: build.mutation<FAQDataResponse, FAQCreate>({
            query: (body) => ({
                url: '/faq',
                body,
                method: 'PUT',

            }),
            invalidatesTags: ['FAQGetData', "FAQGetDataById", 'FAQCreate', 'FAQUpdate'],
        }),

        FAQRemove: build.mutation<void, { id: string }>({
            query: (params) => ({
                url: `/faq`,
                method: 'DELETE',
                params
            }),
            invalidatesTags: ['FAQGetData', "FAQGetDataById", 'FAQRemove'],
        }),
    }),
});

export const {
    useFAQGetDataQuery,
    useLazyFAQGetDataQuery,
    useFAQCreateMutation,
    useFAQGetDataByIdQuery,
    useLazyFAQGetDataByIdQuery,
    useFAQUpdateMutation,
    useFAQRemoveMutation,
} = FAQ;