import { apiSlice } from '../..';
import URLS from '../../constants';
import { generateQueryString } from '@/utils/queryStringUtil';

export interface MasterBank {
  id: string;
  name: string;
}

interface GetMasterBankListResponse {
  data: {
    results: MasterBank[];
    page: number;
    limit: number;
    totalPages: number;
    totalResults: number;
  };
  code: number;
  message: string;
  success: boolean;
  error?: object;
}

export const masterBankApi = apiSlice.injectEndpoints({
  endpoints: (builder) => ({
    getMasterBanks: builder.query<
      GetMasterBankListResponse,
      { page?: number; limit?: number; search?: string; sortBy?: string }
    >({
      query: (params) => ({
        url: `${URLS.MASTER_BANKS}?${generateQueryString(
          params as Record<string, unknown>,
        )}`,
        method: 'GET',
      }),
      providesTags: ['MasterBank'],
    }),
  }),
  overrideExisting: false,
});

export const { useGetMasterBanksQuery } = masterBankApi;
