Files
SadmMontime/src/api/businesses.ts
T
2026-05-21 17:59:14 +03:30

64 lines
1.8 KiB
TypeScript

import { api } from './client';
import { apiFormData } from './client';
import type {
AssignOwnerPayload,
Business,
BusinessImage,
CreateBusinessPayload,
UpdateBusinessPayload,
} from './types';
export function fetchBusinesses(params?: {
categoryId?: string;
isActive?: boolean;
}) {
const search = new URLSearchParams();
if (params?.categoryId) search.set('categoryId', params.categoryId);
if (params?.isActive !== undefined) search.set('isActive', String(params.isActive));
const query = search.toString();
return api<Business[]>(`/businesses${query ? `?${query}` : ''}`);
}
export function fetchBusiness(id: string) {
return api<Business>(`/businesses/${id}`);
}
export function createBusiness(payload: CreateBusinessPayload) {
return api<Business>('/businesses', {
method: 'POST',
body: JSON.stringify(payload),
});
}
export function updateBusiness(id: string, payload: UpdateBusinessPayload) {
return api<Business>(`/businesses/${id}`, {
method: 'PATCH',
body: JSON.stringify(payload),
});
}
export function deleteBusiness(id: string) {
return api<{ success: true }>(`/businesses/${id}`, { method: 'DELETE' });
}
export function assignBusinessOwner(id: string, payload: AssignOwnerPayload) {
return api<Business>(`/businesses/${id}/assign-owner`, {
method: 'POST',
body: JSON.stringify(payload),
});
}
export function uploadBusinessImages(businessId: string, files: File[]) {
const form = new FormData();
for (const file of files) {
form.append('files', file);
}
return apiFormData<BusinessImage[]>(`/businesses/${businessId}/images`, form);
}
export function deleteBusinessImage(businessId: string, imageId: string) {
return api<{ success: true }>(`/businesses/${businessId}/images/${imageId}`, {
method: 'DELETE',
});
}