Domain Model
Domain model
Customa Cafe's domain model tracks customer lifecycle from onboarding to repeat engagement.
Key aggregates
- Member aggregate: account, profile, membership status.
- Promotion aggregate: coupon/stamp assets and redemption rules.
- Reservation aggregate: booking, status, and slot validation.
Invariants
- Active membership must map to a valid period.
- Promo redemption must respect quota and rule boundaries.
- Reservation status cannot skip required state transitions.
Code implementation
Models and relationships live in app/Models/; state rules are enforced in service/controller flows.