import { BackendApiResponse, ClosetItem, NewClosetItem } from '@/types'; import { apiClient } from './client'; // Utility function to create FormData from closet item const createItemFormData = (item: Partial): FormData => { const formData = new FormData(); if (item.name) formData.append('name', item.name); if (item.brand) formData.append('brand', item.brand); if (item.category) formData.append('category', item.category); if (item.imageFile) { formData.append('image', item.imageFile); } return formData; }; export const closetApi = { // Get all closet items with optional filters getItems: async (params?: { q?: string; sortBy?: string; }): Promise => { const response = await apiClient.get>( '/closet', { params } ); return response.data.data; }, // Create new closet item createItem: async (item: NewClosetItem): Promise => { const formData = createItemFormData(item); const response = await apiClient.post>( '/closet', formData, { headers: { 'Content-Type': 'multipart/form-data', }, } ); return response.data.data; }, // Delete closet item deleteItem: async (id: string): Promise => { await apiClient.delete(`/closet/${id}`); }, };