feat(136): Regex-Extraktion — Tracking-Nummern, Bestellnummern, Shops #218

Merged
admin-mrrm merged 1 commit from feat-136-tracking-regex into main 2026-05-11 22:55:04 +02:00
Owner

Closes #136

Befüllt TrackingParserService.parse() mit den ersten Regex-Patterns:

Carrier-Erkennung

  • UPS: 1Z[A-Z0-9]{16}
  • Hermes: H\d{14}
  • DHL: \d{20}
  • DPD: \d{14} (nur wenn dpd im Text vorkommt — sonst zu generisch)

Reihenfolge: spezifischste Patterns zuerst (Prefix-basierte vor reinen Ziffern-Patterns).

Bestellnummern

  • Amazon-Format: \d{3}-\d{7}-\d{7}

Shop-Erkennung (From-Adresse)

  • *.amazon.*amazon.de
  • *.zalando.*zalando.de

Gibt null zurück, wenn keine Tracking-Nummer gefunden wird. Bestellnummer und Shop-Domain sind optionale Enrichments.

Test plan

  • Unit-Tests: Negativfälle (3), Carrier-Erkennung (4), Shop-Erkennung (3), Bestellnummern (2) — 12/12 grün
  • Typecheck + Lint clean
  • Drone CI grün

Nicht in Scope (kommt später):

  • Mail-Hook, der parse() aufruft und Ergebnis persistiert (eigenes Ticket)
  • Mehr Carrier (GLS, FedEx) und Shops (IKEA, etc.) — bei Bedarf nachziehen
Closes #136 Befüllt `TrackingParserService.parse()` mit den ersten Regex-Patterns: ## Carrier-Erkennung - **UPS**: `1Z[A-Z0-9]{16}` - **Hermes**: `H\d{14}` - **DHL**: `\d{20}` - **DPD**: `\d{14}` (nur wenn `dpd` im Text vorkommt — sonst zu generisch) Reihenfolge: spezifischste Patterns zuerst (Prefix-basierte vor reinen Ziffern-Patterns). ## Bestellnummern - **Amazon-Format**: `\d{3}-\d{7}-\d{7}` ## Shop-Erkennung (From-Adresse) - `*.amazon.*` → `amazon.de` - `*.zalando.*` → `zalando.de` Gibt `null` zurück, wenn keine Tracking-Nummer gefunden wird. Bestellnummer und Shop-Domain sind optionale Enrichments. ## Test plan - [x] Unit-Tests: Negativfälle (3), Carrier-Erkennung (4), Shop-Erkennung (3), Bestellnummern (2) — 12/12 grün - [x] Typecheck + Lint clean - [ ] Drone CI grün Nicht in Scope (kommt später): - Mail-Hook, der `parse()` aufruft und Ergebnis persistiert (eigenes Ticket) - Mehr Carrier (GLS, FedEx) und Shops (IKEA, etc.) — bei Bedarf nachziehen
feat(136): Regex-Extraktion für Tracking-Nummern, Bestellnummern, Shops
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is passing
69a64b267c
TrackingParserService.parse() erkennt jetzt:
- Carrier-Patterns: UPS (1Z + 16), Hermes (H + 14 Ziffern),
  DHL (20 Ziffern), DPD (14 Ziffern, nur mit "dpd" im Kontext)
- Amazon-Bestellnummer-Format (\d{3}-\d{7}-\d{7})
- Shop-Domain via From-Adresse (Amazon, Zalando)

Reihenfolge der Carrier-Patterns: spezifischste zuerst (UPS/Hermes mit
Prefix vor reinen Ziffern-Patterns), um Fehlmatches zu vermeiden.
Gibt null zurück, wenn keine Tracking-Nummer gefunden wird.
Sign in to join this conversation.
No reviewers
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!218
No description provided.