Die Berechnung erfolgt im LoyaltyDomainService.CalculateLoyaltyState (Source/Services/Trips/Trips.Service/Domain/DomainServices/LoyaltyDomainService.cs:21).
Eingangsdaten
Aus der BookingHistory werden nur die Einträge berücksichtigt, bei denen
- Type == BookingCustomer (also Buchungen, bei denen der Kunde der Bucher ist — nicht nur Reisender)
- Trip.State ≠ Unknown und ≠ Cancelled
- BookingState ∈ {Normal, Cancelled}
Daraus werden count (Anzahl Buchungen) und revenue (Summe der Buchungswerte) ermittelt.
Stufen (ProgramLevel)
| Level | Bedeutung | Bedingung |
|---|---|---|
| 0 | Kein Stammkunde | keine qualifizierenden Buchungen, oder keine der unteren Schwellen erreicht |
| 1 | Stammkunde (Explorer) | count ≥ 3 und Ø-Umsatz pro Buchung (revenue / 3) ≥ 1.000 |
| 2 | Premium / Top-Kunde (Captain) | revenue ≥ 50.000 oder (count ≥ 5 und revenue / 5 ≥ 1.000) |
Die Prüfung erfolgt von oben nach unten — Level 2 schlägt Level 1.
Trigger
Neu berechnet wird in UpdateLoyaltyStateWhenBookingHistoryChanged (Notification-Handler), d. h. immer wenn sich die BookingHistory eines Kunden ändert, läuft die Berechnung erneut über den CalculateLoyaltyStateCommand.
Hinweis: Die Schwellen (1.000 / 50.000 / Counts 3 und 5) sind aktuell hartcodiert im Domain Service, nicht konfigurierbar pro LoyaltyProgram.
War dieser Artikel hilfreich?
Das ist großartig!
Vielen Dank für das Feedback
Leider konnten wir nicht helfen
Vielen Dank für das Feedback
Feedback gesendet
Wir wissen Ihre Bemühungen zu schätzen und werden versuchen, den Artikel zu korrigieren