The request
“Create a domain model for a customer loyalty program with point transactions, rewards, redemptions and transaction types.”
Then tryAdd an expiry date to Reward.Add a referral point transaction type.
What is in this drawing
Read the decisions behind it.
01
Separate PointTransaction and Redemption to track earning vs spending
02
Use enumeration for transaction types (EARN, REDEEM, EXPIRE)
03
Derived attributes for totalPoints and runningBalance
When designing a point-based loyalty or rewards system in e-commerce apps.
More like this