feat(frontend): Automatisierungen-Verwaltung + erreichbare Trigger (Modul 30)
Neue Seite /settings/automation-rules (nur Administrator, Sidebar-Link unter Verwaltung): zeigt alle drei fest hinterlegten Regeln mit Beschreibung, Aktiv/Inaktiv-Umschalter, editierbarem Aufgabentext und – nur bei Varroa-Schwellenwert – editierbarem Schwellenwert. Zusätzlich zwei Lücken im Durchsicht-Formular geschlossen, ohne die wären zwei der drei Trigger über die Oberfläche nie auslösbar gewesen: - "Stifte vorhanden"-Checkbox ergänzt (eggsPresent wurde vom Formular bisher gar nicht gesendet, obwohl Backend und Typ es unterstützen) - "Futtervorrat ausreichend"-Checkbox durch ein Select mit ausreichend/niedrig/kritisch ersetzt (bisher nur binär, "kritisch" war nicht erreichbar) Live gegen das Backend verifiziert: Speichern einer Durchsicht mit Königin nicht gesehen + keine Stifte erzeugt automatisch die erwartete Aufgabe (sichtbar unter /tasks) und eine Benachrichtigung, zero Konsolenfehler. Aktiv/Inaktiv-Umschalter auf der Automatisierungen-Seite live getestet.
This commit is contained in:
1 parent
3f47a6ae8d
commit
5d32026092
6 files changed
+212
-12
No files matched your search
@@ -0,0 +1,16 @@
|
||||
import { apiFetch } from "@/lib/auth/api-client";
|
||||
import { AutomationRule, UpdateAutomationRuleInput } from "./types";
|
||||
|
||||
export function fetchAutomationRules(): Promise<AutomationRule[]> {
|
||||
return apiFetch<AutomationRule[]>("/automation-rules");
|
||||
}
|
||||
|
||||
export function updateAutomationRule(
|
||||
id: string,
|
||||
input: UpdateAutomationRuleInput,
|
||||
): Promise<AutomationRule> {
|
||||
return apiFetch<AutomationRule>(`/automation-rules/${id}`, {
|
||||
method: "PATCH",
|
||||
body: JSON.stringify(input),
|
||||
});
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
export type AutomationTriggerType =
|
||||
| "QUEENLESS_NO_EGGS"
|
||||
| "VARROA_THRESHOLD"
|
||||
| "FEED_STATUS_CRITICAL";
|
||||
|
||||
export interface AutomationRule {
|
||||
id: string;
|
||||
triggerType: AutomationTriggerType;
|
||||
active: boolean;
|
||||
config: Record<string, unknown> | null;
|
||||
actionTemplate: string | null;
|
||||
createdAt: string;
|
||||
updatedAt: string;
|
||||
}
|
||||
|
||||
export interface UpdateAutomationRuleInput {
|
||||
active?: boolean;
|
||||
config?: Record<string, unknown>;
|
||||
actionTemplate?: string;
|
||||
}
|
||||
@@ -32,6 +32,7 @@ export interface CreateInspectionInput {
|
||||
temperature?: number;
|
||||
colonyStrength?: number;
|
||||
queenSeen?: boolean;
|
||||
eggsPresent?: boolean;
|
||||
queenCellsPresent?: boolean;
|
||||
feedStatus?: string;
|
||||
healthIssues?: string;
|
||||
|
||||
Reference in new issue
Block a user