TorbatYar/docs/reference/event-catalog.md
Mortezakoohjani 071c484530 Ship Loyalty phases 7.2-7.6 (points through wallet) with production deploy.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-26 21:27:22 +03:30

181 lines
8.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Event Catalog
Canonical event types. Envelope rules: [event-driven-architecture.md](../architecture/event-driven-architecture.md).
## Core Platform
| event_type | aggregate | Description |
| --- | --- | --- |
| `tenant.created` | tenant | New tenant created |
| `tenant.suspended` | tenant | Tenant suspended |
| `tenant.activated` | tenant | Tenant activated |
| `domain.created` | domain | Domain added |
| `subscription.created` | subscription | Subscription created |
| `subscription.updated` | subscription | Subscription changed |
| `feature_access.changed` | feature_access | Entitlement override/plan effect changed |
## Identity & Access
| event_type | Description |
| --- | --- |
| `user.registered` | New user registered |
| `tenant_member.added` | Member added (identity layer) |
| `tenant_member.removed` | Member removed (identity layer) |
## Accounting (Phases 5.15.6)
| event_type | Description |
| --- | --- |
| `voucher.created` | Voucher drafted |
| `voucher.validated` | Voucher passed validation |
| `voucher.posted` | Voucher posted to ledger |
| `voucher.reversed` | Voucher reversed |
| `journal_entry.created` | Journal entry created via Posting Engine |
| `posting.completed` | Posting operation succeeded |
| `ledger.updated` | General ledger updated |
| `trial_balance.generated` | Trial balance snapshot created |
| `fiscal_period.locked` | Fiscal period locked |
| `cash.received` | Cash receipt recorded |
| `settlement.completed` | AR/AP settlement completed |
| `sales_invoice.posted` | Sales invoice accounting posted |
| `revenue.recognized` | Revenue recognition recorded |
Full list: `backend/services/accounting/app/events/types.py`
## CRM (Phases 6.06.1)
| event_type | Description |
| --- | --- |
| `crm.lead.created` | Lead created |
| `crm.lead.updated` | Lead updated |
| `crm.contact.created` | Contact created |
| `crm.organization.created` | Organization created |
| `crm.opportunity.created` | Opportunity created |
| `crm.opportunity.updated` | Opportunity updated |
| `crm.opportunity.won` | Opportunity marked won |
| `crm.opportunity.lost` | Opportunity marked lost |
| `crm.pipeline.changed` | Pipeline updated |
| `crm.stage.changed` | Opportunity stage changed |
| `crm.playbook.assigned` | Sales playbook assigned |
| `crm.playbook.completed` | Playbook assignment completed |
| `crm.forecast.updated` | Sales forecast computed/updated |
| `crm.activity.completed` | Sales activity completed |
| `crm.task.completed` | Sales task completed |
| `crm.meeting.finished` | Meeting finished |
| `crm.call.logged` | Call logged against opportunity |
| `crm.timeline.updated` | Sales timeline entry appended |
| `crm.comment.created` | Collaboration comment created |
| `crm.mention.created` | User mentioned in CRM collaboration |
| `crm.quote.created` | Sales quote created |
| `crm.note.created` | CRM note created |
| `crm.attachment.added` | Attachment reference added |
Full list: `backend/services/crm/app/events/types.py`
## Loyalty (Phase 7.0)
| event_type | Description |
| --- | --- |
| `loyalty.program.created` | Loyalty program created |
| `loyalty.program.updated` | Loyalty program updated |
| `loyalty.program.deleted` | Loyalty program soft-deleted |
| `loyalty.tier.created` | Membership tier created |
| `loyalty.tier.updated` | Membership tier updated |
| `loyalty.tier.deleted` | Membership tier soft-deleted |
| `loyalty.member.created` | Member created |
| `loyalty.member.updated` | Member updated |
| `loyalty.member.enrolled` | Member enrolled / activated |
| `loyalty.member.activated` | Member activated with term/expiry |
| `loyalty.member.renewed` | Membership renewed |
| `loyalty.member.frozen` | Membership frozen |
| `loyalty.member.resumed` | Membership resumed from freeze |
| `loyalty.member.cancelled` | Membership cancelled |
| `loyalty.member.expired` | Membership expired |
| `loyalty.member.transferred` | Membership transferred to another program |
| `loyalty.member.deleted` | Member soft-deleted |
| `loyalty.point_account.opened` | Point account opened |
| `loyalty.point_account.updated` | Point account updated |
| `loyalty.point_account.deleted` | Point account soft-deleted |
| `loyalty.points.earned` | Points earned on ledger |
| `loyalty.points.redeemed` | Points redeemed on ledger |
| `loyalty.points.adjusted` | Points adjusted on ledger |
| `loyalty.points.expired` | Points expired on ledger |
| `loyalty.reward.created` | Reward catalog item created |
| `loyalty.reward.updated` | Reward catalog item updated |
| `loyalty.reward.deleted` | Reward soft-deleted |
| `loyalty.reward.redeemed` | Reward redeemed (points debited) |
| `loyalty.reward.fulfilled` | Redemption fulfilled |
| `loyalty.reward.redemption_cancelled` | Redemption cancelled / refunded |
| `loyalty.campaign.created` | Campaign created |
| `loyalty.campaign.updated` | Campaign updated |
| `loyalty.campaign.deleted` | Campaign soft-deleted |
| `loyalty.campaign.applied` | Campaign applied (points granted) |
| `loyalty.referral.rewarded` | Referral bonuses granted |
| `loyalty.wallet.opened` | Wallet account opened |
| `loyalty.wallet.credited` | Wallet credited |
| `loyalty.wallet.debited` | Wallet debited |
| `loyalty.wallet.adjusted` | Wallet adjusted |
| `loyalty.wallet.transferred` | Wallet transfer |
| `loyalty.wallet.closed` | Wallet soft-closed |
Full list: `backend/services/loyalty/app/events/types.py`
## Communication (Phase 8)
| event_type | Description |
| --- | --- |
| `communication.message.queued` | Message enqueued |
| `communication.message.sent` | Accepted by provider |
| `communication.message.delivered` | Delivery confirmed |
| `communication.message.failed` | Terminal failure |
| `communication.message.cancelled` | Cancelled |
| `communication.provider.failover` | Provider failover |
| `communication.otp.generated` | OTP issued |
| `communication.otp.verified` | OTP verified |
| `communication.queue.dead_letter` | Queue DLQ |
| `communication.webhook.received` | Inbound webhook |
Full list: `backend/services/communication/app/events/types.py`
## Future (reserved)
| Restaurant | `order.placed`, `order.completed` |
| Ecommerce | `order.placed`, `product.updated` |
| Notification | `notification.delivered` (prefer Communication delivery events) |
When adding events: update this catalog, module registry producers/consumers, and contracts in the same phase.
## Related Documents
- [Services Contracts](services-contracts.md)
- [ADR-006](../architecture/adr/ADR-006.md)
- [Module Registry](../module-registry.md)
## Delivery & Fleet Platform (`delivery`)
| Event | When |
| --- | --- |
| `delivery.organization.created` | Delivery organization created |
| `delivery.organization.updated` | Delivery organization updated |
| `delivery.hub.created` | Hub created |
| `delivery.hub.updated` | Hub updated |
| `delivery.external_provider.registered` | External provider registered |
| `delivery.external_provider.updated` | External provider updated |
| `delivery.routing_engine.registered` | Routing engine registration created |
| `delivery.routing_engine.updated` | Routing engine registration updated |
| `delivery.configuration.created` | Configuration created |
| `delivery.configuration.updated` | Configuration updated |
| `delivery.setting.upserted` | Setting upserted |
| `delivery.driver.created` | Driver profile created |
| `delivery.driver.updated` | Driver profile updated |
| `delivery.driver.status_changed` | Driver status transition |
| `delivery.driver.activated` | Driver activated |
| `delivery.driver.suspended` | Driver suspended |
| `delivery.driver.resumed` | Driver resumed |
| `delivery.driver.deactivated` | Driver deactivated |
| `delivery.driver.blocked` | Driver blocked |
| `delivery.driver.unblocked` | Driver unblocked |
| `delivery.driver.archived` | Driver archived |
| `delivery.driver.deleted` | Driver soft-deleted |
| `delivery.driver.credential_added` | Driver credential registered |
| `delivery.driver.document_attached` | Driver document metadata attached |