Skip to main content

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.