import { api } from './api';

type GetBlogByIdResponse = {
    success: boolean,
    message: string,
    info: CreateBlogRequest
}
type GetBlogsResponse = {
    success: boolean,
    message: string,
    details: {
        docs: CreateBlogRequest[],
        pages: 1,
        total: 1
    }
}

export type CreateBlogRequest = {
    id?: string,
    title: string,
    content: string,
    image: string,
    status?: boolean,
    notes: string,
    UserId: string
}
type CreateBlogResponse = {
    success: boolean,
    message: string,
    result: CreateBlogRequest
}
export const Blog = api.injectEndpoints({
    endpoints: (build) => ({
        CreateBlog: build.mutation<CreateBlogResponse, CreateBlogRequest>({
            query: (body) => ({
                url: 'blog',
                method: 'POST',
                body,
            }),
            invalidatesTags: ['CreateBlog'],
        }),
        getBlogs: build.query<GetBlogsResponse, any>({
            query: (params) => ({
                url: `blog/showall`,
                method: 'GET',
                // params,
            }),
            providesTags: ['getBlog', "CreateBlog"],
        }),
        getBlogById: build.query<GetBlogByIdResponse, { id: string }>({
            query: (params) => ({
                url: `blog`,
                method: 'GET',
                params,
            }),
            providesTags: ['getBlogById', "CreateBlog"],
        }),

    }),
});

export const {
    useCreateBlogMutation,
    useGetBlogsQuery,
    useGetBlogByIdQuery
} = Blog;