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(sieheRequireFeature('task_management')). - Gegenstände sind auf den authentifizierten Besitzer beschränkt;
groupIdteilt einen Gegenstand zusätzlich mit den Mitgliedern einer Personengruppe.
Endpunktreferenz
| Methode | Pfad | Zweck | Anfrage oder Abfrage | Auth | Quelle |
|---|---|---|---|---|---|
POST | /api/household-items | Erstellen Sie einen Haushaltsartikel. | Körper: Artikelfelder | JWT oder Benutzer API Schlüssel | household/household-items.controller.ts |
GET | /api/household-items | Listet die vom Aufrufer besessenen Artikel auf. | Keine | JWT oder Benutzer API Schlüssel | household/household-items.controller.ts |
GET | /api/household-items/:id | Holen Sie sich einen Artikel. | Pfad: id | JWT oder Benutzer API Schlüssel | household/household-items.controller.ts |
PATCH | /api/household-items/:id | Aktualisieren Sie einen Artikel. | Pfad: id, Text: Teil-Artikelfelder | JWT oder Benutzer API Schlüssel | household/household-items.controller.ts |
DELETE | /api/household-items/:id | Löschen Sie einen Artikel. | Pfad: id | JWT oder Benutzer API Schlüssel | household/household-items.controller.ts |
POST | /api/household-items/:id/mark-used-up | Markiert einen Artikel als aufgebraucht, wodurch beim nächsten Scan (oder sofort, falls bereits zutreffend) eine Nachschub-Aufgabe angelegt wird. | Pfad: id | JWT oder Benutzer API Schlüssel | household/household-items.controller.ts |
POST | /api/household-items/:id/consume | Verringert die Menge um einen Betrag (Standard 1), z. B. „2 Rollen Papierhandtücher verbraucht“. | Pfad: id, Text: amount (optional) | JWT oder Benutzer API Schlüssel | household/household-items.controller.ts |
Anfrageformen
Artikelnutzlast
CreateHouseholdItemDto
name: erforderlich, maximal 200 Zeichencategory: optional, maximal 100 Zeichenquantity: optionale Ganzzahl,>= 0, Standard1groupId: optionale Ganzzahl – teilt den Artikel mit einer PersonengruppeexpiryDate: optionale ISO-Datumszeichenfolge (YYYY-MM-DD)shelfLifeDays: optionale Ganzzahl,1..3650lowStockThreshold: 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, Standard1
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 eineTaskmit dem TitelRestock: <name>für jeden Artikel, derisUsedUpist, sich innerhalb von 3 Tagen vorexpiryDatebefindet, innerhalb von 3 Tagen davor liegt,shelfLifeDaysablastRestockedAtzu erschöpfen, oder dessenquantityauf denlowStockThresholdoder darunter gefallen ist. - Sobald ein Artikel eine
pendingRestockTaskIdbesitzt, überspringt der Scan ihn – pro Artikel existiert immer nur eine offene Nachschub-Aufgabe. POST /api/household-items/:id/mark-used-upsetztisUsedUp: 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/consumeverringertquantityumamount(auf null begrenzt) und setztisUsedUp: true, sobald der Wert null erreicht. Wie beimark-used-upwird die Nachschub-Aufgabe dabei nie synchron erstellt.shelfLifeDays,expiryDateundlowStockThresholdsind alle unabhängig voneinander – ein Artikel kann eine beliebige Kombination oder keines davon verwenden. Ist nichts davon gesetzt, wird der Artikel nur markiert, wennisUsedUp/consumenull erreicht.
Best Practices
- Setzen Sie
shelfLifeDaysfür Artikel, die Sie in einem groben Zyklus nachfüllen (Milch, Filter, Verbrauchsmaterial), statt ein exaktesexpiryDatezu verfolgen, das Sie von Hand aktualisieren müssten. - Setzen Sie
lowStockThresholdfür Artikel, die Sie nach Stückzahl statt nach Frische verfolgen (Papierhandtücher, Batterien, Glühbirnen), und rufen Sieconsumebei 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/consumeauf, 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.