import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'; import type { RootState } from '../../store'; export interface Guest { id: number; firstName: string; lastName: string; attendance: string; email: string; message: string; partySize: number; partyList: Array; } export interface PartyGuest { firstName: string; lastName: string; } export interface AdminLoginRequest { username: string; password: string; } export interface AdminLoginResponse { guests: Guest[]; token: string; } export const adminSlice = createApi({ reducerPath: 'adminApi', baseQuery: fetchBaseQuery({ baseUrl: import.meta.env.VITE_BASE_URL, prepareHeaders: (headers, { getState }) => { const token = (getState() as RootState).admin.token; if (token) { headers.set('authorization', `${token}`); } return headers; }, }), endpoints: (builder) => ({ loginAdmin: builder.mutation({ query: (credentials) => ({ url: 'admin/login', method: 'POST', body: credentials, }), }), }), }); export const { useLoginAdminMutation } = adminSlice;