feat(frontend): Varroamessungen-Modul (Modul 7)

Mobile-optimiertes Erfassungsformular unter /varroa/new sowie
"Varroa"-Ansicht mit Verlaufsgrafik auf der Volk-Detailseite.
This commit is contained in:
Nick Szaunig committed 2026-08-22 00:01:43 +02:00
1 parent f363bffed1
commit 66c14cf306
6 files changed
+323 -1

No files matched your search

+15
View File
@@ -0,0 +1,15 @@
import { apiFetch } from "@/lib/auth/api-client";
import { CreateVarroaMeasurementInput, VarroaMeasurement } from "./types";
export function fetchColonyVarroaMeasurements(colonyId: string): Promise<VarroaMeasurement[]> {
return apiFetch<VarroaMeasurement[]>(`/colonies/${colonyId}/varroa-measurements`);
}
export function createVarroaMeasurement(
input: CreateVarroaMeasurementInput,
): Promise<VarroaMeasurement> {
return apiFetch<VarroaMeasurement>("/varroa-measurements", {
method: "POST",
body: JSON.stringify(input),
});
}
+30
View File
@@ -0,0 +1,30 @@
export type VarroaMethod =
| "NATURAL_MITE_FALL"
| "POWDERED_SUGAR"
| "WASHING_METHOD"
| "DRONE_BROOD_CONTROL";
export interface VarroaMeasurement {
id: string;
colonyId: string;
userId: string;
date: string;
method: VarroaMethod;
durationMinutes: number | null;
miteCount: number | null;
calculatedValue: number | null;
assessment: string | null;
notes: string | null;
createdAt: string;
}
export interface CreateVarroaMeasurementInput {
colonyId: string;
date: string;
method: VarroaMethod;
durationMinutes?: number;
miteCount?: number;
calculatedValue?: number;
assessment?: string;
notes?: string;
}