Lewati ke konten utama

Domain Model

Bounded contexts

  • Identity & Access: Account/User/Role/Permission, auth login/logout, profile.
  • Membership: member profile, card binding, membership detail/address, segmentation, recovery.
  • Commerce/Benefit: Coupon, CouponClaim, CouponInformation, CouponLog.
  • Store & Facilities: Store, StoreLocation, Facility, FavoriteStore.
  • Reservation & Course: Course, CourseSlot, Reservation, ReservedCourse.
  • Engagement: News, Banner, PushNotification, NotificationPreference, TopicSubscription.
  • Chat & Dialog: RoomChat, Chat, Dialog, NavigateDialog.
  • Loyalty: Stamp, StampCampaign.
  • Support: OTP, RemoteConfig, NationalHoliday, Counter.

Core entities (evidence from migration names)

  • Accounts/Users: accounts, users, social_media
  • Membership aggregate: memberships, membership_details, membership_addresses, pos_memberships, card_expiration_dates
  • Coupon aggregate: coupons, coupon_claims, coupon_information, coupon_stores, coupon_logs
  • Reservation aggregate: reservations, reserved_courses, courses, course_slots, national_holidays
  • Engagement: news, membership_news, push_notifications, push_notification_tokens, notification_preferences
  • Chat: room_chats, chats, dialogs, navigate_dialogs
  • Store: stores, store_locations, store_facilities, facilities

Ownership / responsibilities

  • app/Modules/<Domain> memegang controller/model/service per domain.
  • Route layer membagi concern admin vs mobile, lalu middleware menentukan policy/guard.
  • Data consistency terutama di Membership-Coupon-Reservation chain perlu perhatian saat perubahan schema.