feat(backend): Automatisierungen mit drei fest hinterlegten Triggern (Modul 30)
Neues AutomationModule mit AutomationRule-Modell (ein Row je Trigger-Typ, per Unique Constraint erzwungen). Drei fest im Code hinterlegte Trigger, die Admins nur aktivieren/deaktivieren bzw. deren Konfiguration/Aufgaben- text anpassen können: - QUEENLESS_NO_EGGS: Königin nicht gesehen UND keine Stifte vorhanden (bei Durchsicht) → Kontrollaufgabe - VARROA_THRESHOLD: Varroa-Schwellenwert überschritten (konfigurierbar, Standard 10 Milben/Tag) → Behandlungsprüfung - FEED_STATUS_CRITICAL: Futterstatus "kritisch" (bei Durchsicht) → Fütterungsaufgabe Jeder ausgelöste Trigger erzeugt eine Task UND eine Notification sowie einen Audit-Log-Eintrag; Tasks lösen zusätzlich das bestehende task.created-Webhook aus. InspectionsService und VarroaService rufen die Auswertung direkt nach dem jeweiligen Erstellen auf. Neue Endpunkte (nur Administrator): GET/PATCH /automation-rules. Unit-Tests für AutomationService (alle drei Trigger, Deaktivierung, Update mit Audit-Log) sowie E2E-Tests (Rollen-Check, alle drei Trigger end-to-end über echte Inspection-/Varroa-Endpunkte, Deaktivierung verhindert weitere Trigger). E2E-Suite zweimal hintereinander grün verifiziert (Idempotenz der globalen Regel-Zeilen sichergestellt). Migration auf Dev- und Test-Datenbank angewendet.
This commit is contained in:
1 parent
42a2be31b4
commit
3f47a6ae8d
15 files changed
+733
No files matched your search
@@ -0,0 +1,19 @@
|
||||
import { ApiPropertyOptional } from '@nestjs/swagger';
|
||||
import { IsBoolean, IsObject, IsOptional, IsString } from 'class-validator';
|
||||
|
||||
export class UpdateAutomationRuleDto {
|
||||
@ApiPropertyOptional()
|
||||
@IsOptional()
|
||||
@IsBoolean()
|
||||
active?: boolean;
|
||||
|
||||
@ApiPropertyOptional({ type: Object })
|
||||
@IsOptional()
|
||||
@IsObject()
|
||||
config?: Record<string, unknown>;
|
||||
|
||||
@ApiPropertyOptional()
|
||||
@IsOptional()
|
||||
@IsString()
|
||||
actionTemplate?: string;
|
||||
}
|
||||
Reference in new issue
Block a user