import { apiFetch } from "@/lib/auth/api-client"; import { CreateHoneyBatchInput, CreateHoneyMeasurementInput, HoneyBatch, HoneyBatchContainerAllocation, HoneyBatchRelocation, HoneyBatchStatus, RelocateHoneyBatchInput, Traceability, UpdateHoneyBatchInput, } from "./types"; export interface HoneyBatchFilter { status?: HoneyBatchStatus; } export function fetchHoneyBatches(filter: HoneyBatchFilter = {}): Promise { const params = new URLSearchParams(); if (filter.status) params.set("status", filter.status); const query = params.toString(); return apiFetch(`/honey-batches${query ? `?${query}` : ""}`); } export function fetchHoneyBatch(id: string): Promise { return apiFetch(`/honey-batches/${id}`); } export function fetchHoneyBatchTraceability(id: string): Promise { return apiFetch(`/honey-batches/${id}/traceability`); } export function createHoneyBatch(input: CreateHoneyBatchInput): Promise { return apiFetch("/honey-batches", { method: "POST", body: JSON.stringify(input), }); } export function updateHoneyBatch( id: string, input: UpdateHoneyBatchInput, ): Promise { return apiFetch(`/honey-batches/${id}`, { method: "PATCH", body: JSON.stringify(input), }); } export function addHoneyMeasurement( id: string, input: CreateHoneyMeasurementInput, ): Promise { return apiFetch(`/honey-batches/${id}/measurements`, { method: "POST", body: JSON.stringify(input), }); } export function relocateHoneyBatch( id: string, input: RelocateHoneyBatchInput, ): Promise { return apiFetch(`/honey-batches/${id}/relocate`, { method: "POST", body: JSON.stringify(input), }); } export function fetchHoneyBatchRelocations(id: string): Promise { return apiFetch(`/honey-batches/${id}/relocations`); } export function fetchHoneyBatchContainerAllocations( id: string, ): Promise { return apiFetch(`/honey-batches/${id}/containers`); } export function setHoneyBatchContainerAllocation( id: string, containerId: string, amount: number, ): Promise { return apiFetch( `/honey-batches/${id}/containers/${containerId}`, { method: "PUT", body: JSON.stringify({ amount }) }, ); } export function removeHoneyBatchContainerAllocation( id: string, containerId: string, ): Promise { return apiFetch(`/honey-batches/${id}/containers/${containerId}`, { method: "DELETE", }); }