48 lines
1.3 KiB
TypeScript
48 lines
1.3 KiB
TypeScript
import { api } from './client';
|
|
import type {
|
|
AssignOwnerPayload,
|
|
Business,
|
|
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),
|
|
});
|
|
}
|