Zum Hauptinhalt springen
Was this helpful?

Haushaltsartikel API

Haushaltsinventar

Gemeinsame Gegenstände verfolgen und PrimeCal automatisch Nachschub-Aufgaben anlegen lassen

Haushaltsartikel bilden eine gemeinsam genutzte Inventarliste, optional einer Personengruppe zugeordnet, mit Haltbarkeits- und Ablaufverfolgung. Ein stündlicher Scan erstellt automatisch eine Nachschub-Task, sobald ein Gegenstand aufgebraucht ist oder bald ausgeht.

JWT oder Benutzer API SchlüsselHaltbarkeitsverfolgungAutomatische Nachschub-AufgabenFreigabe für Personengruppen

Authentifizierung und Berechtigungen

  • Alle Routen auf dieser Seite erfordern Authentifizierung und das Plan-Feature task_management (siehe RequireFeature('task_management')).
  • Gegenstände sind auf den authentifizierten Besitzer beschränkt; groupId teilt einen Gegenstand zusätzlich mit den Mitgliedern einer Personengruppe.

Endpunktreferenz

MethodePfadZweckAnfrage oder AbfrageAuthQuelle
POST/api/household-itemsErstellen Sie einen Haushaltsartikel.Körper: ArtikelfelderJWT oder Benutzer API Schlüsselhousehold/household-items.controller.ts
GET/api/household-itemsListet die vom Aufrufer besessenen Artikel auf.KeineJWT oder Benutzer API Schlüsselhousehold/household-items.controller.ts
GET/api/household-items/:idHolen Sie sich einen Artikel.Pfad: idJWT oder Benutzer API Schlüsselhousehold/household-items.controller.ts
PATCH/api/household-items/:idAktualisieren Sie einen Artikel.Pfad: id, Text: Teil-ArtikelfelderJWT oder Benutzer API Schlüsselhousehold/household-items.controller.ts
DELETE/api/household-items/:idLöschen Sie einen Artikel.Pfad: idJWT oder Benutzer API Schlüsselhousehold/household-items.controller.ts
POST/api/household-items/:id/mark-used-upMarkiert einen Artikel als aufgebraucht, wodurch beim nächsten Scan (oder sofort, falls bereits zutreffend) eine Nachschub-Aufgabe angelegt wird.Pfad: idJWT oder Benutzer API Schlüsselhousehold/household-items.controller.ts
POST/api/household-items/:id/consumeVerringert die Menge um einen Betrag (Standard 1), z. B. „2 Rollen Papierhandtücher verbraucht“.Pfad: id, Text: amount (optional)JWT oder Benutzer API Schlüsselhousehold/household-items.controller.ts

Anfrageformen

Artikelnutzlast

CreateHouseholdItemDto

  • name: erforderlich, maximal 200 Zeichen
  • category: optional, maximal 100 Zeichen
  • quantity: optionale Ganzzahl, >= 0, Standard 1
  • groupId: optionale Ganzzahl – teilt den Artikel mit einer Personengruppe
  • expiryDate: optionale ISO-Datumszeichenfolge (YYYY-MM-DD)
  • shelfLifeDays: optionale Ganzzahl, 1..3650
  • lowStockThreshold: optionale Ganzzahl, >= 0 – ein zweiter, unabhängiger Nachschub-Auslöser für Artikel, die nach Stückzahl statt nach Frische verfolgt werden (Papierhandtücher, Batterien)

UpdateHouseholdItemDto behält dieselbe Struktur bei, macht jedoch alle Felder optional.

Verbrauchs-Nutzlast

ConsumeHouseholdItemDto

  • amount: optionale Ganzzahl, >= 1, Standard 1

Beispielanrufe

Einen Haushaltsartikel mit Haltbarkeit erstellen

curl -X POST "$PRIMECAL_API/api/household-items" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Milk",
"category": "Dairy",
"groupId": 9,
"shelfLifeDays": 7
}'

Haushaltsartikel auflisten

curl "$PRIMECAL_API/api/household-items" \
-H "Authorization: Bearer $TOKEN"

Einen Artikel als aufgebraucht markieren

curl -X POST "$PRIMECAL_API/api/household-items/14/mark-used-up" \
-H "Authorization: Bearer $TOKEN"

Einen mengenbasierten Artikel verfolgen und verbrauchen

curl -X POST "$PRIMECAL_API/api/household-items" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Paper towels",
"category": "Cleaning",
"quantity": 6,
"lowStockThreshold": 2
}'

curl -X POST "$PRIMECAL_API/api/household-items/22/consume" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"amount": 2
}'

Hinweise zu Reaktion und Verhalten

  • Ein stündlicher Scan (HouseholdRestockSchedulerService) erstellt eine Task mit dem Titel Restock: <name> für jeden Artikel, der isUsedUp ist, sich innerhalb von 3 Tagen vor expiryDate befindet, innerhalb von 3 Tagen davor liegt, shelfLifeDays ab lastRestockedAt zu erschöpfen, oder dessen quantity auf den lowStockThreshold oder darunter gefallen ist.
  • Sobald ein Artikel eine pendingRestockTaskId besitzt, überspringt der Scan ihn – pro Artikel existiert immer nur eine offene Nachschub-Aufgabe.
  • POST /api/household-items/:id/mark-used-up setzt isUsedUp: true; die Nachschub-Aufgabe wird dadurch nicht synchron erstellt – der nächste stündliche Scan (oder ein Aufruf der zugrunde liegenden Scan-Logik) greift dies auf.
  • POST /api/household-items/:id/consume verringert quantity um amount (auf null begrenzt) und setzt isUsedUp: true, sobald der Wert null erreicht. Wie bei mark-used-up wird die Nachschub-Aufgabe dabei nie synchron erstellt.
  • shelfLifeDays, expiryDate und lowStockThreshold sind alle unabhängig voneinander – ein Artikel kann eine beliebige Kombination oder keines davon verwenden. Ist nichts davon gesetzt, wird der Artikel nur markiert, wenn isUsedUp/consume null erreicht.

Best Practices

  • Setzen Sie shelfLifeDays für Artikel, die Sie in einem groben Zyklus nachfüllen (Milch, Filter, Verbrauchsmaterial), statt ein exaktes expiryDate zu verfolgen, das Sie von Hand aktualisieren müssten.
  • Setzen Sie lowStockThreshold für Artikel, die Sie nach Stückzahl statt nach Frische verfolgen (Papierhandtücher, Batterien, Glühbirnen), und rufen Sie consume bei jeder Verwendung auf, statt den ganzen Artikel immer nur auf einmal als aufgebraucht zu markieren.
  • Teilen Sie Verbrauchsartikel mit einer groupId, damit der gesamte Haushalt – nicht nur die Person, die den Artikel angelegt hat – ihn sieht und als aufgebraucht markieren oder davon verbrauchen kann.
  • Rufen Sie mark-used-up/consume auf, sobald ein Artikel zur Neige geht, statt darauf zu warten, dass sich das Haltbarkeitsfenster von selbst schließt – so wird die Nachschub-Aufgabe schneller angelegt.