Coupon¶
aggregate-root promotion
Promotion-related entitlement or code validated and redeemed during selling or checkout.
Business Purpose: Support controlled promotion redemption.
Identity¶
| Type | Field | Description |
|---|---|---|
global |
coupon-id |
Globally unique coupon identifier, stable for the lifetime of the coupon. |
Attributes¶
| Attribute | Description |
|---|---|
coupon-id Coupon ID |
Stable coupon identifier. |
coupon-code Coupon Code |
Coupon code when applicable. |
promotion-id Promotion ID |
Related promotion reference. |
status Status |
Current coupon state. |
redeemed-at Redeemed At |
Date and time when the coupon was redeemed. |
Lifecycle¶
issued → active → validated → redeemed → expired → cancelled
Invariants¶
stable-coupon-id— Coupon ID must remain stable for the lifetime of the coupon.promotion-reference-required— A coupon must be associated with a promotion.
Relationships¶
| Type | Target |
|---|---|
belongs-to |
promotion promotion |
applies-to |
basket basket |
Events¶
| Event | Classification | Terminal |
|---|---|---|
CouponValidated |
calculated | — |
CouponRedeemed |
transitioned | ✓ |
Used by Capabilities¶
- promotions Promotions
Used by Applications¶
- Promotion Engine
promotion-engine
Note
Aligned with existing coupon object and validate/redeem coupon services.