Files
tgex-frontend/lib/api/purchases.ts
2025-11-10 12:07:24 +03:00

53 lines
1.3 KiB
TypeScript

// ============================================================================
// Purchases API
// ============================================================================
import { api } from "./client";
import type {
Purchase,
PurchaseDetail,
PurchaseQueryParams,
PurchaseCreateRequest,
PurchaseCreateResponse,
PurchaseUpdateRequest,
PurchaseRefreshViewsResponse,
ListResponse,
SuccessResponse,
} from "@/lib/types/api";
export const purchasesApi = {
/**
* Get list of purchases
*/
list: (params?: PurchaseQueryParams) =>
api.get<ListResponse<Purchase>>("/purchases", { params }),
/**
* Get purchase details
*/
get: (id: string) => api.get<PurchaseDetail>(`/purchases/${id}`),
/**
* Create new purchase
*/
create: (data: PurchaseCreateRequest) =>
api.post<PurchaseCreateResponse>("/purchases", data),
/**
* Update purchase
*/
update: (id: string, data: PurchaseUpdateRequest) =>
api.patch<Purchase>(`/purchases/${id}`, data),
/**
* Delete purchase
*/
delete: (id: string) => api.delete<SuccessResponse>(`/purchases/${id}`),
/**
* Refresh views count for purchase
*/
refreshViews: (id: string) =>
api.post<PurchaseRefreshViewsResponse>(`/purchases/${id}/refresh-views`),
};