import { api } from '../index'; import type { User } from '../types'; export const adminApi = api.injectEndpoints({ endpoints: (build) => ({ getUsers: build.query({ query: () => '/admin/users', providesTags: ['User'], }), createUser: build.mutation< User, { username: string; password: string; email?: string; role: 'admin' | 'user'; } >({ query: (body) => ({ url: '/admin/users', method: 'POST', body }), invalidatesTags: ['User'], }), updateUser: build.mutation< User, { id: string; role?: 'admin' | 'user'; email?: string } >({ query: ({ id, ...body }) => ({ url: `/admin/users/${id}`, method: 'PATCH', body, }), invalidatesTags: ['User'], }), deleteUser: build.mutation({ query: (id) => ({ url: `/admin/users/${id}`, method: 'DELETE' }), invalidatesTags: ['User'], }), }), overrideExisting: false, }); export const { useGetUsersQuery, useCreateUserMutation, useUpdateUserMutation, useDeleteUserMutation, } = adminApi;