import { createApi } from "@reduxjs/toolkit/query/react";
import baseQueryWithAuth from "../baseQueryWithAuth";

export const PromoManagementAPI = createApi({
  reducerPath: "PromoManagementAPI",
  baseQuery: baseQueryWithAuth,
  tagTypes: ["Promos"],
  endpoints: (builder) => ({
    getAllPromo: builder.query({
      query: ({ token, page, limit, status }) => {
        const params = new URLSearchParams();
        if (page) params.append("page", page);
        if (limit) params.append("limit", limit);
        if (status) params.append("status", status);

        return {
          url: `admin/get-promo?${params.toString()}`,
          headers: {
            Authorization: `Bearer ${token}`,
          },
        };
      },
      providesTags: ["Promos"],
    }),
    createPromo: builder.mutation({
      query: ({ token, data }) => {
        return {
          url: "admin/create-promo",
          method: "POST",
          headers: {
            Authorization: `Bearer ${token}`,
            "Content-Type": "application/json",
          },
          body: JSON.stringify(data),
        };
      },
      invalidatesTags: ["Promos"],
    }),
    deletePromo: builder.mutation({
      query: ({ token, id }) => ({
        url: `admin/delete-promo/${id}`,
        method: "GET",            // as per your backend route
        headers: { Authorization: `Bearer ${token}` },
      }),
      invalidatesTags: ["Promos"],
    }),
  }),
});

export const { useGetAllPromoQuery, useCreatePromoMutation, useDeletePromoMutation } = PromoManagementAPI;