feat(api+ui): POST /trackings — Paket manuell anlegen #233

Closed
opened 2026-05-12 20:53:28 +02:00 by admin-mrrm · 0 comments
Owner

Ziel

Fallback-Pfad: User kann ein Tracking auch manuell hinzufügen (Tracking-Nummer + optional Carrier + optional Notiz), ohne dass eine Mail erkannt werden muss. Hilfreich zum Testen und für Pakete deren Bestätigungs-Mail vom Scanner nicht erfasst wird.

Aufgaben

  • POST /trackings Endpoint im TrackingsController (TDD)
  • CreateTrackingDto: trackingNumber (required), carrier (optional, sonst Auto-Erkennung), note (optional)
  • Service-Methode create(ownerSub, dto)
  • De-Duplizierung: existiert Tracking mit trackingNumber+ownerSub schon → 409
  • Mobile-UI: "+ Paket" Button auf TrackingListScreen → Modal/Form
  • Web-UI: gleicher Flow (nach #230)

Akzeptanz

  • POST mit gültiger Tracking-Nummer → 201, neuer Eintrag in DB, taucht in Liste auf
  • Beim nächsten Sync-Cron wird sein Status abgefragt

Hinweise

  • TDD wie sonst: Service-Tests zuerst, dann Controller, dann UI
  • Auto-Carrier-Erkennung: kann aus dem Format der Tracking-Nummer abgeleitet werden (z.B. via TrackingParserService) — oder erstmal carrier=null zulassen
## Ziel Fallback-Pfad: User kann ein Tracking auch manuell hinzufügen (Tracking-Nummer + optional Carrier + optional Notiz), ohne dass eine Mail erkannt werden muss. Hilfreich zum Testen und für Pakete deren Bestätigungs-Mail vom Scanner nicht erfasst wird. ## Aufgaben - [ ] `POST /trackings` Endpoint im `TrackingsController` (TDD) - [ ] `CreateTrackingDto`: `trackingNumber` (required), `carrier` (optional, sonst Auto-Erkennung), `note` (optional) - [ ] Service-Methode `create(ownerSub, dto)` - [ ] De-Duplizierung: existiert Tracking mit `trackingNumber+ownerSub` schon → 409 - [ ] Mobile-UI: "+ Paket" Button auf `TrackingListScreen` → Modal/Form - [ ] Web-UI: gleicher Flow (nach #230) ## Akzeptanz - POST mit gültiger Tracking-Nummer → 201, neuer Eintrag in DB, taucht in Liste auf - Beim nächsten Sync-Cron wird sein Status abgefragt ## Hinweise - TDD wie sonst: Service-Tests zuerst, dann Controller, dann UI - Auto-Carrier-Erkennung: kann aus dem Format der Tracking-Nummer abgeleitet werden (z.B. via TrackingParserService) — oder erstmal `carrier=null` zulassen
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
admin-mrrm/mrrmlabapp#233
No description provided.