import { api } from './api';

type GetFAQByIdResponse = {
    success: boolean,
    message: string,
    details: {
        docs:
        {
            id: string,
            title: string,
            description: string,
            status: boolean
        }[],
        pages: 1,
        total: 1
    }
}

export const FAQ = api.injectEndpoints({
    endpoints: (build) => ({
        register: build.mutation<any, FormData>({
            query: (body: FormData) => ({
                url: 'FAQ/register',
                method: 'POST',
                body,
            }),
            invalidatesTags: ['register',],
        }),
        getFAQs: build.query<GetFAQByIdResponse, any>({
            query: (params: any) => ({
                url: `/faq/showall`,
                method: 'GET',
                params,
            }),
            // providesTags: ['getFAQs'],
        }),

        // getFAQById: build.query<GetFAQByIdResponse, string>({
        //     query: (id: string) => ({
        //         url: `/FAQ/${id}`,
        //         method: 'GET',
        //     }),
        //     providesTags: ['getFAQById'],
        //     transformResponse: (res) => {
        //         if (res.Merchant) {
        //             return {
        //                 merchantName: res?.Merchant?.fullname,
        //                 ...res?.Merchant?.Card,
        //                 ...res.Merchant,
        //                 password: '**********',
        //                 ...res,
        //             };
        //         } else {
        //             return {
        //                 password: '**********',
        //                 ...res,
        //             };
        //         }
        //     },
        // }),
        // getAdminById: build.query<GetAdminByIdResponse, string>({
        //     query: (id: string) => ({
        //         url: `/FAQ/admin/${id}`,
        //         method: 'GET',
        //     }),
        //     providesTags: ['getAdminById'],
        // }),

        // addFAQ: build.mutation<any, FormData>({
        //     query: (body: FormData) => ({
        //         url: '/auth/local/signup',
        //         method: 'POST',
        //         body,
        //     }),
        //     invalidatesTags: ['getFAQs', 'addFAQ'],
        // }),
        // updateFAQ: build.mutation<any, { id: string; body: FormData; fileNames: string }>({
        //     query: ({ id, body }: { id: string; body: FormData; fileNames: string }) => ({
        //         url: `/FAQ/${id}`,
        //         body,
        //         method: 'PATCH',
        //     }),
        //     invalidatesTags: ['getFAQs', 'updateFAQ', 'getFAQById'],
        // }),
        // deleteFAQ: build.mutation<any, { id: string }>({
        //     query: (params: { id: string }) => ({
        //         url: `/FAQ/${params.id}`,
        //         method: 'DELETE',
        //     }),
        //     invalidatesTags: ['getFAQs', 'deleteFAQ'],
        // }),



    }),
});

export const { 
    useGetFAQsQuery
} = FAQ;