import { baseApi } from "./baseApi";
import { API_ENDPOINTS } from "./constant";
import {
  ITransactionListRequest,
  ITransactionListResponse,
} from "./types/transaction";

export const transactionApi = baseApi.injectEndpoints({
  endpoints: (builder) => ({
    getTransactionList: builder.query<
      ITransactionListResponse,
      ITransactionListRequest
    >({
      query: ({
        page,
        perPage = 20,
        transactionType = "subscription",
        userId,
      }) => ({
        url: API_ENDPOINTS.transactionList,
        method: "GET",
        params: {
          page,
          perPage,
          transactionType,
          ...(userId !== undefined ? { userId } : {}),
        },
      }),
    }),
  }),
});

export const { useGetTransactionListQuery } = transactionApi;
