import { CardsResponse, CreateDeckArgs, DeckResponse, DecksResponse, GetDecksArgs, UpdateDeckArgs, baseApi, } from '@/services' const decksService = baseApi.injectEndpoints({ endpoints: builder => ({ createDeck: builder.mutation({ invalidatesTags: ['Decks'], query: body => ({ body, method: 'POST', url: `v1/decks`, }), }), deleteDeck: builder.mutation({ invalidatesTags: ['Decks'], query: ({ id }) => ({ method: 'DELETE', url: `v1/decks/${id}`, }), }), getDeckById: builder.query({ query: ({ id }) => `v1/decks/${id}`, }), getDeckCards: builder.query({ query: ({ id }) => `v1/decks/${id}/cards`, }), getDecks: builder.query({ providesTags: ['Decks'], query: args => { return { params: args ?? undefined, url: `v1/decks`, } }, }), updateDeck: builder.mutation({ invalidatesTags: ['Decks'], query: ({ id, ...body }) => ({ body, method: 'PATCH', url: `v1/decks/${id}`, }), }), }), }) export const { useCreateDeckMutation, useDeleteDeckMutation, useGetDeckByIdQuery, useGetDeckCardsQuery, useGetDecksQuery, useUpdateDeckMutation, } = decksService