import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'; import type { RootState } from '../../store'; export interface GuestLoginRequest { firstName: string; lastName: string; } export interface GuestLoginResponse { guest: Guest; token: string; } 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 const guestSlice = createApi({ reducerPath: 'guestApi', baseQuery: fetchBaseQuery({ baseUrl: import.meta.env.VITE_BASE_URL + 'guests/', prepareHeaders: (headers, { getState }) => { const token = (getState() as RootState).guest.token; if (token) { headers.set('authorization', `${token}`); } return headers; }, }), endpoints: (builder) => ({ loginGuest: builder.mutation({ query: (credentials) => ({ url: 'login', method: 'POST', body: credentials, }), }), updateGuest: builder.mutation({ query: (guest) => ({ url: `${guest?.id}`, method: 'PUT', body: guest, }), }), }), }); export const { useLoginGuestMutation, useUpdateGuestMutation } = guestSlice;