import { api } from '@/services/api';
 


export interface PreviewvideosDataResponse {

    id?: string
    status: true,
    userId: string
    PracVideoId: string
}
export interface PreviewvideosDataResponseByID {
    success: boolean,
    message: string
    info: PreviewvideosDataResponse
}


export interface PreviewvideosGetDataResponse {

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

export interface PreviewvideosCreate {
    id?: string
    status: true,
    userId: string
    pracVideoId?: string
}

export const Previewvideos = api.injectEndpoints({
    endpoints: (build) => ({
        PreviewvideosGetData: build.query<PreviewvideosGetDataResponse, { search?: string, page: number, paginate: number }>({
            query: (params) => ({
                url: `/previewvideos/showall`,
                method: 'GET',
                params
            }),
            providesTags: ['PreviewvideosGetData'],
        }),
        PreviewvideosGetDataById: build.query<PreviewvideosDataResponseByID, { id: string }>({
            query: (params) => ({
                url: `/previewvideos`,
                params
            }),
            providesTags: ['PreviewvideosGetDataById'],
        }),
        PreviewvideosCreate: build.mutation<PreviewvideosDataResponse, PreviewvideosCreate>({
            query: (body) => ({
                url: '/previewvideos',
                method: 'POST',
                body,
            }),
            invalidatesTags: ['PreviewvideosGetData', 'PreviewvideosCreate', "PreviewvideosGetDataById","PracListGetDataById"],
        }),
        PreviewvideosUpdate: build.mutation<PreviewvideosDataResponse, PreviewvideosCreate>({
            query: (body) => ({
                url: '/previewvideos',
                body,
                method: 'PUT',

            }),
            invalidatesTags: ['PreviewvideosGetData', "PreviewvideosGetDataById", 'PreviewvideosCreate', 'PreviewvideosUpdate'],
        }),

        PreviewvideosRemove: build.mutation<void, { id: string }>({
            query: (params) => ({
                url: `/previewvideos`,
                method: 'DELETE',
                params
            }),
            invalidatesTags: ['PreviewvideosGetData', "PreviewvideosGetDataById", 'PreviewvideosRemove'],
        }),
    }),
});

export const {
    usePreviewvideosGetDataQuery,
    useLazyPreviewvideosGetDataQuery,
    usePreviewvideosCreateMutation,
    usePreviewvideosGetDataByIdQuery,
    useLazyPreviewvideosGetDataByIdQuery,
    usePreviewvideosUpdateMutation,
    usePreviewvideosRemoveMutation,
} = Previewvideos;