feat(frontend): Lagerbehälter-Sektion und Umlagerungshistorie (Modul 32)

Neue HoneyBatchStorageCard-Komponente auf der Honigcharge-Detailseite:
zeigt den aktuell zugeordneten Lagerbehälter, einen "Umlagern"-Dialog
(Ziel-Lagerbehälter wählen, optionale Notiz) und die vollständige
Umlagerungshistorie (von/nach, Zeitpunkt, Notiz) im etablierten
EmptyState-Stil.

HoneyBatch-Typ um storageContainer erweitert, neue
HoneyBatchRelocation/RelocateHoneyBatchInput-Typen und passende
API-Funktionen ergänzt. Live gegen das Backend verifiziert: Umlagerung
zwischen zwei echten Lagerbehältern aktualisiert die Anzeige und die
Historie korrekt, zero Konsolenfehler.
This commit is contained in:
Nick Szaunig committed 2026-08-24 17:06:54 +02:00
1 parent 59a320ae36
commit 15f5ab57ae
4 files changed
+199

No files matched your search

@@ -3,7 +3,9 @@ import {
CreateHoneyBatchInput,
CreateHoneyMeasurementInput,
HoneyBatch,
HoneyBatchRelocation,
HoneyBatchStatus,
RelocateHoneyBatchInput,
Traceability,
} from "./types";
@@ -42,3 +44,17 @@ export function addHoneyMeasurement(
body: JSON.stringify(input),
});
}
export function relocateHoneyBatch(
id: string,
input: RelocateHoneyBatchInput,
): Promise<HoneyBatch> {
return apiFetch<HoneyBatch>(`/honey-batches/${id}/relocate`, {
method: "POST",
body: JSON.stringify(input),
});
}
export function fetchHoneyBatchRelocations(id: string): Promise<HoneyBatchRelocation[]> {
return apiFetch<HoneyBatchRelocation[]>(`/honey-batches/${id}/relocations`);
}
@@ -17,6 +17,12 @@ export interface HoneyMeasurement {
notes: string | null;
}
export interface StorageContainerRef {
id: string;
code: string;
location: string | null;
}
export interface HoneyBatch {
id: string;
batchNumber: string;
@@ -25,11 +31,27 @@ export interface HoneyBatch {
amount: number | null;
waterContent: number | null;
storageContainerId: string | null;
storageContainer: StorageContainerRef | null;
status: HoneyBatchStatus;
createdAt: string;
measurements: HoneyMeasurement[];
}
export interface HoneyBatchRelocation {
id: string;
fromStorageContainerId: string | null;
fromStorageContainer: StorageContainerRef | null;
toStorageContainerId: string;
toStorageContainer: StorageContainerRef;
notes: string | null;
relocatedAt: string;
}
export interface RelocateHoneyBatchInput {
storageContainerId: string;
notes?: string;
}
export interface Traceability {
honeyBatch: {
id: string;