@ingenx-io/valets-schema-mcp-server 0.2.2 → 0.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/data/docs/collections/firestore-paths.md +15 -0
  2. package/data/docs/enums/attention-status.md +1 -1
  3. package/data/docs/enums/booking-status.md +1 -1
  4. package/data/docs/enums/customer-payment-status.md +1 -1
  5. package/data/docs/enums/customer-payment-target-type.md +1 -1
  6. package/data/docs/enums/delivery-type.md +1 -1
  7. package/data/docs/enums/deployment-link-type.md +1 -1
  8. package/data/docs/enums/event-status.md +1 -1
  9. package/data/docs/enums/fulfillment-status.md +1 -1
  10. package/data/docs/enums/loyalty-transaction-type.md +1 -1
  11. package/data/docs/enums/notification-channel.md +24 -0
  12. package/data/docs/enums/notification-entity-type.md +26 -0
  13. package/data/docs/enums/notification-status.md +23 -0
  14. package/data/docs/enums/order-status.md +2 -2
  15. package/data/docs/enums/outbound-message-format.md +2 -2
  16. package/data/docs/enums/outbound-message-purpose.md +2 -2
  17. package/data/docs/enums/outbound-message-status.md +2 -2
  18. package/data/docs/enums/payment-method.md +2 -2
  19. package/data/docs/enums/payment-proof-status.md +2 -2
  20. package/data/docs/enums/payment-status.md +2 -2
  21. package/data/docs/enums/pending-issue.md +2 -2
  22. package/data/docs/enums/return-status.md +2 -2
  23. package/data/docs/enums/session-status.md +2 -2
  24. package/data/docs/enums/site-status.md +2 -2
  25. package/data/docs/enums/stocktake-frequency.md +2 -2
  26. package/data/docs/enums/stocktake-item-status.md +2 -2
  27. package/data/docs/enums/stocktake-status.md +2 -2
  28. package/data/docs/enums/ticket-status.md +2 -2
  29. package/data/docs/enums/waba-label.md +2 -2
  30. package/data/docs/enums/whatsapp-button-sub-type.md +2 -2
  31. package/data/docs/enums/whatsapp-template-component.md +2 -2
  32. package/data/docs/enums/whatsapp-template-status.md +2 -2
  33. package/data/docs/index.md +6 -2
  34. package/data/docs/models/allowed-user.md +1 -1
  35. package/data/docs/models/analytics-backfill.md +1 -1
  36. package/data/docs/models/analytics-daily.md +1 -1
  37. package/data/docs/models/analytics-event.md +1 -1
  38. package/data/docs/models/analytics-hourly.md +1 -1
  39. package/data/docs/models/booking-version.md +1 -1
  40. package/data/docs/models/booking.md +1 -1
  41. package/data/docs/models/customer-payment-allocation.md +1 -1
  42. package/data/docs/models/customer-payment.md +1 -1
  43. package/data/docs/models/customer.md +1 -1
  44. package/data/docs/models/event.md +1 -1
  45. package/data/docs/models/loyalty-config.md +1 -1
  46. package/data/docs/models/loyalty-reward.md +1 -1
  47. package/data/docs/models/loyalty-status.md +1 -1
  48. package/data/docs/models/loyalty-transaction.md +1 -1
  49. package/data/docs/models/magic-link-request.md +1 -1
  50. package/data/docs/models/metrics-current.md +1 -1
  51. package/data/docs/models/metrics-daily.md +1 -1
  52. package/data/docs/models/metrics-monthly.md +1 -1
  53. package/data/docs/models/notification-record.md +619 -0
  54. package/data/docs/models/order-item.md +2 -2
  55. package/data/docs/models/order.md +2 -2
  56. package/data/docs/models/sale.md +2 -2
  57. package/data/docs/models/site-payment.md +2 -2
  58. package/data/docs/models/site.md +2 -2
  59. package/data/docs/models/stocktake-item.md +2 -2
  60. package/data/docs/models/stocktake.md +2 -2
  61. package/data/docs/models/ticket.md +2 -2
  62. package/data/docs/models/whatsapp-inbound-message.md +2 -2
  63. package/data/docs/models/whatsapp-outbound-lifecycle-event.md +2 -2
  64. package/data/docs/models/whatsapp-outbound-message.md +2 -2
  65. package/data/docs/models/whatsapp-template.md +2 -2
  66. package/data/static/llms.txt +72 -0
  67. package/data/static/openapi.yaml +192 -0
  68. package/data/static/schemas.json +258 -1
  69. package/package.json +1 -1
@@ -11,6 +11,8 @@ All collections are scoped under a company document. Per **D40**, a `sites/{site
11
11
  ```
12
12
  companies/{companyId}/
13
13
  ├── orders/{orderId} ← Order.siteId? (D43 / ADR-003) attributes to a site
14
+ │ └── notifications/{notifId} ← GH#48 — order-scoped notification log (dual-write)
15
+ ├── notifications/{notifId} ← GH#48 — company-wide notification audit log
14
16
  ├── customers/{customerId}
15
17
  ├── bookings/{bookingId}
16
18
  │ └── sessions/{sessionId}
@@ -104,6 +106,19 @@ whatsapp_templates/{waba__name__language} ← GH#43 — Meta-approved
104
106
 
105
107
  **Field ownership on `whatsapp_outbound_messages`:** the dashboard writes `to, waba, wabaId, kind, text/template, purpose?, orderUuid?, sentBy, createdAt` once with `status: 'queued'` (all `x-immutable`); the backend owns every server-set field after — `status` transitions plus `wamid, error, sentAt, deliveredAt, readAt, failedAt` (all `readOnly`). No WABA credentials live in the dashboard.
106
108
 
109
+ ## Notifications (GH#48)
110
+
111
+ `NotificationRecord` is a backend-written, multi-channel (email / whatsapp / sms / push) audit log. It is written by Firebase Cloud Functions and **read-only** for consumers (registered server-owned, no Create/Update variant).
112
+
113
+ | Collection | When written | Notes |
114
+ |---|---|---|
115
+ | `companies/{cid}/notifications/{id}` | **Always** | Company-wide audit log for every notification |
116
+ | `companies/{cid}/orders/{oid}/notifications/{id}` | **Only when** `relatedEntity.type === 'order'` | Dual-write (`Promise.all`) of the same record; enables O(1) per-order history and same-sender WhatsApp threading |
117
+
118
+ For non-order entities (`magic_link`, `booking`, `digest`, …) only the company-wide collection is written. The same document ID is used in both copies.
119
+
120
+ **Distinct from `whatsapp_outbound_messages` (GH#43):** that is a top-level, dashboard-initiated, whatsapp-only send queue; this is a company-scoped, backend-written, multi-channel audit trail.
121
+
107
122
  ## Security rules pattern
108
123
 
109
124
  ```
@@ -21,4 +21,4 @@ Must be one of:
21
21
  * "ESCALATED"
22
22
 
23
23
  ----------------------------------------------------------------------------------------------------------------------------
24
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 14:03:20 +0000
24
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 15:51:05 +0000
@@ -23,4 +23,4 @@ Must be one of:
23
23
  * "COMPLETED_MIXED"
24
24
 
25
25
  ----------------------------------------------------------------------------------------------------------------------------
26
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 14:03:20 +0000
26
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 15:51:05 +0000
@@ -23,4 +23,4 @@ Must be one of:
23
23
  * "CANCELLED"
24
24
 
25
25
  ----------------------------------------------------------------------------------------------------------------------------
26
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 14:03:20 +0000
26
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 15:51:05 +0000
@@ -20,4 +20,4 @@ Must be one of:
20
20
  * "PURCHASE"
21
21
 
22
22
  ----------------------------------------------------------------------------------------------------------------------------
23
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 14:03:20 +0000
23
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 15:51:05 +0000
@@ -20,4 +20,4 @@ Must be one of:
20
20
  * "DELIVERY"
21
21
 
22
22
  ----------------------------------------------------------------------------------------------------------------------------
23
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 14:03:20 +0000
23
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 15:51:05 +0000
@@ -23,4 +23,4 @@ Must be one of:
23
23
  * "other"
24
24
 
25
25
  ----------------------------------------------------------------------------------------------------------------------------
26
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 14:03:20 +0000
26
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 15:51:05 +0000
@@ -21,7 +21,7 @@ Must be one of:
21
21
  * "COMPLETED"
22
22
 
23
23
  ----------------------------------------------------------------------------------------------------------------------------
24
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 14:03:20 +0000
24
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 15:51:05 +0000
25
25
 
26
26
  ## Related Decisions
27
27
 
@@ -23,7 +23,7 @@ Must be one of:
23
23
  * "PICKED_UP"
24
24
 
25
25
  ----------------------------------------------------------------------------------------------------------------------------
26
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 14:03:20 +0000
26
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 15:51:05 +0000
27
27
 
28
28
  ## Related Decisions
29
29
 
@@ -23,7 +23,7 @@ Must be one of:
23
23
  * "REFUND"
24
24
 
25
25
  ----------------------------------------------------------------------------------------------------------------------------
26
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 14:03:20 +0000
26
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 15:51:05 +0000
27
27
 
28
28
  ## Related Decisions
29
29
 
@@ -0,0 +1,24 @@
1
+ ---
2
+ title: "NotificationChannel"
3
+ sidebar_label: "NotificationChannel"
4
+ sidebar_position: 10
5
+ ---
6
+
7
+ # NotificationChannel
8
+
9
+ | | |
10
+ | -------------- | ---------------------------------- |
11
+ | **Type** | `enum (of string)` |
12
+ | **Required** | No |
13
+ | **Defined in** | #/definitions/notification-channel |
14
+
15
+ **Description:** Delivery channel of a NotificationRecord (GH#48).
16
+
17
+ Must be one of:
18
+ * "email"
19
+ * "whatsapp"
20
+ * "sms"
21
+ * "push"
22
+
23
+ ----------------------------------------------------------------------------------------------------------------------------
24
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 15:51:05 +0000
@@ -0,0 +1,26 @@
1
+ ---
2
+ title: "NotificationEntityType"
3
+ sidebar_label: "NotificationEntityType"
4
+ sidebar_position: 11
5
+ ---
6
+
7
+ # NotificationEntityType
8
+
9
+ | | |
10
+ | -------------- | -------------------------------------- |
11
+ | **Type** | `enum (of string)` |
12
+ | **Required** | No |
13
+ | **Defined in** | #/definitions/notification-entity-type |
14
+
15
+ **Description:** Type of entity a NotificationRecord relates to. When `order`, the record is dual-written to the order-scoped subcollection (GH#48).
16
+
17
+ Must be one of:
18
+ * "order"
19
+ * "booking"
20
+ * "customer"
21
+ * "digest"
22
+ * "magic_link"
23
+ * "other"
24
+
25
+ ----------------------------------------------------------------------------------------------------------------------------
26
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 15:51:05 +0000
@@ -0,0 +1,23 @@
1
+ ---
2
+ title: "NotificationStatus"
3
+ sidebar_label: "NotificationStatus"
4
+ sidebar_position: 12
5
+ ---
6
+
7
+ # NotificationStatus
8
+
9
+ | | |
10
+ | -------------- | --------------------------------- |
11
+ | **Type** | `enum (of string)` |
12
+ | **Required** | No |
13
+ | **Defined in** | #/definitions/notification-status |
14
+
15
+ **Description:** Delivery status of a NotificationRecord, set by the Cloud Function after a send attempt (GH#48).
16
+
17
+ Must be one of:
18
+ * "sent"
19
+ * "failed"
20
+ * "pending"
21
+
22
+ ----------------------------------------------------------------------------------------------------------------------------
23
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 15:51:05 +0000
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  title: "OrderStatus"
3
3
  sidebar_label: "OrderStatus"
4
- sidebar_position: 10
4
+ sidebar_position: 13
5
5
  ---
6
6
 
7
7
  # OrderStatus
@@ -24,7 +24,7 @@ Must be one of:
24
24
  * "EXPIRED"
25
25
 
26
26
  ----------------------------------------------------------------------------------------------------------------------------
27
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 14:03:20 +0000
27
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 15:51:05 +0000
28
28
 
29
29
  ## Related Decisions
30
30
 
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  title: "OutboundMessageFormat"
3
3
  sidebar_label: "OutboundMessageFormat"
4
- sidebar_position: 11
4
+ sidebar_position: 14
5
5
  ---
6
6
 
7
7
  # OutboundMessageFormat
@@ -19,4 +19,4 @@ Must be one of:
19
19
  * "template"
20
20
 
21
21
  ----------------------------------------------------------------------------------------------------------------------------
22
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 14:03:20 +0000
22
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 15:51:05 +0000
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  title: "OutboundMessagePurpose"
3
3
  sidebar_label: "OutboundMessagePurpose"
4
- sidebar_position: 12
4
+ sidebar_position: 15
5
5
  ---
6
6
 
7
7
  # OutboundMessagePurpose
@@ -21,4 +21,4 @@ Must be one of:
21
21
  * "conversational"
22
22
 
23
23
  ----------------------------------------------------------------------------------------------------------------------------
24
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 14:03:20 +0000
24
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 15:51:05 +0000
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  title: "OutboundMessageStatus"
3
3
  sidebar_label: "OutboundMessageStatus"
4
- sidebar_position: 13
4
+ sidebar_position: 16
5
5
  ---
6
6
 
7
7
  # OutboundMessageStatus
@@ -22,4 +22,4 @@ Must be one of:
22
22
  * "failed"
23
23
 
24
24
  ----------------------------------------------------------------------------------------------------------------------------
25
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 14:03:20 +0000
25
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 15:51:05 +0000
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  title: "PaymentMethod"
3
3
  sidebar_label: "PaymentMethod"
4
- sidebar_position: 14
4
+ sidebar_position: 17
5
5
  ---
6
6
 
7
7
  # PaymentMethod
@@ -27,7 +27,7 @@ Must be one of:
27
27
  * "OTHER"
28
28
 
29
29
  ----------------------------------------------------------------------------------------------------------------------------
30
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 14:03:20 +0000
30
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 15:51:05 +0000
31
31
 
32
32
  ## Related Decisions
33
33
 
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  title: "PaymentProofStatus"
3
3
  sidebar_label: "PaymentProofStatus"
4
- sidebar_position: 15
4
+ sidebar_position: 18
5
5
  ---
6
6
 
7
7
  # PaymentProofStatus
@@ -20,4 +20,4 @@ Must be one of:
20
20
  * "REJECTED"
21
21
 
22
22
  ----------------------------------------------------------------------------------------------------------------------------
23
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 14:03:20 +0000
23
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 15:51:05 +0000
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  title: "PaymentStatus"
3
3
  sidebar_label: "PaymentStatus"
4
- sidebar_position: 16
4
+ sidebar_position: 19
5
5
  ---
6
6
 
7
7
  # PaymentStatus
@@ -24,7 +24,7 @@ Must be one of:
24
24
  * "PARTIALLY_REFUNDED"
25
25
 
26
26
  ----------------------------------------------------------------------------------------------------------------------------
27
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 14:03:20 +0000
27
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 15:51:05 +0000
28
28
 
29
29
  ## Related Decisions
30
30
 
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  title: "PendingIssue"
3
3
  sidebar_label: "PendingIssue"
4
- sidebar_position: 17
4
+ sidebar_position: 20
5
5
  ---
6
6
 
7
7
  # PendingIssue
@@ -28,4 +28,4 @@ Must be one of:
28
28
  * "NO_SHOW_UNRESOLVED"
29
29
 
30
30
  ----------------------------------------------------------------------------------------------------------------------------
31
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 14:03:20 +0000
31
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 15:51:05 +0000
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  title: "ReturnStatus"
3
3
  sidebar_label: "ReturnStatus"
4
- sidebar_position: 18
4
+ sidebar_position: 21
5
5
  ---
6
6
 
7
7
  # ReturnStatus
@@ -23,7 +23,7 @@ Must be one of:
23
23
  * "EXCHANGE_COMPLETED"
24
24
 
25
25
  ----------------------------------------------------------------------------------------------------------------------------
26
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 14:03:20 +0000
26
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 15:51:05 +0000
27
27
 
28
28
  ## Related Decisions
29
29
 
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  title: "SessionStatus"
3
3
  sidebar_label: "SessionStatus"
4
- sidebar_position: 19
4
+ sidebar_position: 22
5
5
  ---
6
6
 
7
7
  # SessionStatus
@@ -23,7 +23,7 @@ Must be one of:
23
23
  * "CANCELLED"
24
24
 
25
25
  ----------------------------------------------------------------------------------------------------------------------------
26
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 14:03:20 +0000
26
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 15:51:05 +0000
27
27
 
28
28
  ## Related Decisions
29
29
 
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  title: "SiteStatus"
3
3
  sidebar_label: "SiteStatus"
4
- sidebar_position: 20
4
+ sidebar_position: 23
5
5
  ---
6
6
 
7
7
  # SiteStatus
@@ -21,4 +21,4 @@ Must be one of:
21
21
  * "ARCHIVED"
22
22
 
23
23
  ----------------------------------------------------------------------------------------------------------------------------
24
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 14:03:20 +0000
24
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 15:51:05 +0000
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  title: "StocktakeFrequency"
3
3
  sidebar_label: "StocktakeFrequency"
4
- sidebar_position: 21
4
+ sidebar_position: 24
5
5
  ---
6
6
 
7
7
  # StocktakeFrequency
@@ -21,4 +21,4 @@ Must be one of:
21
21
  * "AD_HOC"
22
22
 
23
23
  ----------------------------------------------------------------------------------------------------------------------------
24
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 14:03:20 +0000
24
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 15:51:05 +0000
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  title: "StocktakeItemStatus"
3
3
  sidebar_label: "StocktakeItemStatus"
4
- sidebar_position: 22
4
+ sidebar_position: 25
5
5
  ---
6
6
 
7
7
  # StocktakeItemStatus
@@ -21,4 +21,4 @@ Must be one of:
21
21
  * "ADJUSTED"
22
22
 
23
23
  ----------------------------------------------------------------------------------------------------------------------------
24
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 14:03:20 +0000
24
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 15:51:05 +0000
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  title: "StocktakeStatus"
3
3
  sidebar_label: "StocktakeStatus"
4
- sidebar_position: 23
4
+ sidebar_position: 26
5
5
  ---
6
6
 
7
7
  # StocktakeStatus
@@ -21,4 +21,4 @@ Must be one of:
21
21
  * "CANCELLED"
22
22
 
23
23
  ----------------------------------------------------------------------------------------------------------------------------
24
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 14:03:20 +0000
24
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 15:51:05 +0000
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  title: "TicketStatus"
3
3
  sidebar_label: "TicketStatus"
4
- sidebar_position: 24
4
+ sidebar_position: 27
5
5
  ---
6
6
 
7
7
  # TicketStatus
@@ -20,7 +20,7 @@ Must be one of:
20
20
  * "CANCELLED"
21
21
 
22
22
  ----------------------------------------------------------------------------------------------------------------------------
23
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 14:03:20 +0000
23
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 15:51:05 +0000
24
24
 
25
25
  ## Related Decisions
26
26
 
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  title: "WabaLabel"
3
3
  sidebar_label: "WabaLabel"
4
- sidebar_position: 25
4
+ sidebar_position: 28
5
5
  ---
6
6
 
7
7
  # WabaLabel
@@ -19,4 +19,4 @@ Must be one of:
19
19
  * "val"
20
20
 
21
21
  ----------------------------------------------------------------------------------------------------------------------------
22
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 14:03:20 +0000
22
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 15:51:05 +0000
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  title: "WhatsappButtonSubType"
3
3
  sidebar_label: "WhatsappButtonSubType"
4
- sidebar_position: 26
4
+ sidebar_position: 29
5
5
  ---
6
6
 
7
7
  # WhatsappButtonSubType
@@ -19,4 +19,4 @@ Must be one of:
19
19
  * "quick_reply"
20
20
 
21
21
  ----------------------------------------------------------------------------------------------------------------------------
22
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 14:03:20 +0000
22
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 15:51:05 +0000
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  title: "WhatsappTemplateComponent"
3
3
  sidebar_label: "WhatsappTemplateComponent"
4
- sidebar_position: 27
4
+ sidebar_position: 30
5
5
  ---
6
6
 
7
7
  # WhatsappTemplateComponent
@@ -20,4 +20,4 @@ Must be one of:
20
20
  * "button"
21
21
 
22
22
  ----------------------------------------------------------------------------------------------------------------------------
23
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 14:03:20 +0000
23
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 15:51:06 +0000
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  title: "WhatsappTemplateStatus"
3
3
  sidebar_label: "WhatsappTemplateStatus"
4
- sidebar_position: 28
4
+ sidebar_position: 31
5
5
  ---
6
6
 
7
7
  # WhatsappTemplateStatus
@@ -23,4 +23,4 @@ Must be one of:
23
23
  * "IN_APPEAL"
24
24
 
25
25
  ----------------------------------------------------------------------------------------------------------------------------
26
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 14:03:20 +0000
26
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 15:51:06 +0000
@@ -19,7 +19,7 @@ Developers own the Zod source in `packages/schema/src/`. When schemas change, th
19
19
 
20
20
  ## What's documented
21
21
 
22
- ### Enums (28)
22
+ ### Enums (31)
23
23
 
24
24
  Status enums that drive business logic across Order, Booking, Event, and Loyalty domains:
25
25
 
@@ -34,6 +34,9 @@ Status enums that drive business logic across Order, Booking, Event, and Loyalty
34
34
  | [EventStatus](enums/event-status) | 4 values | Ticketed event lifecycle (D32). Mobile-only today; Dashboard in Wave 4. |
35
35
  | [FulfillmentStatus](enums/fulfillment-status) | 6 values | Delivery/fulfillment lifecycle (D34). Optional — null for in-person orders. |
36
36
  | [LoyaltyTransactionType](enums/loyalty-transaction-type) | 6 values | Loyalty point transaction type (D07). SCREAMING_SNAKE past tense. |
37
+ | [NotificationChannel](enums/notification-channel) | 4 values | Delivery channel of a NotificationRecord (GH#48). |
38
+ | [NotificationEntityType](enums/notification-entity-type) | 6 values | Type of entity a NotificationRecord relates to. When `order`, the record is dual-written to the order-scoped subcollection (GH#48). |
39
+ | [NotificationStatus](enums/notification-status) | 3 values | Delivery status of a NotificationRecord, set by the Cloud Function after a send attempt (GH#48). |
37
40
  | [OrderStatus](enums/order-status) | 7 values | Core order lifecycle status (D03, D34). Universal across all business types. Replaces the Dashboard's legacy 20-value flat enum (MIG-11). |
38
41
  | [OutboundMessageFormat](enums/outbound-message-format) | 2 values | Outbound WhatsApp message format. `text` is a free-form body (only valid inside the 24h customer-care window); `template` is a pre-approved WhatsApp template send. The backend is the authority on which is allowed (GH#43). |
39
42
  | [OutboundMessagePurpose](enums/outbound-message-purpose) | 4 values | Business purpose of an outbound WhatsApp message — orthogonal to its format (see OutboundMessageFormat). `otp`/`review_request`/`adhoc` are system-originated; `conversational` is a human agent reply from the dashboard inbox. Optional signal carried for analytics/triggers (GH#43; supersedes the GH#38 OutboundMessageKind). |
@@ -55,7 +58,7 @@ Status enums that drive business logic across Order, Booking, Event, and Loyalty
55
58
  | [WhatsappTemplateStatus](enums/whatsapp-template-status) | 6 values | Meta review status of a WhatsApp message template, synced from the WhatsApp Business API. Only APPROVED templates can be sent. The fuller Meta status set is used deliberately (vs just APPROVED/PENDING/REJECTED) so this enum has a distinct value signature from PaymentProofStatus in the JSON-Schema $ref matcher (GH#43). |
56
59
 
57
60
 
58
- ### Models (31)
61
+ ### Models (32)
59
62
 
60
63
  Core Firestore document schemas:
61
64
 
@@ -80,6 +83,7 @@ Core Firestore document schemas:
80
83
  | [MetricsCurrent](models/metrics-current) | 25 | 25 | — |
81
84
  | [MetricsDaily](models/metrics-daily) | 26 | 26 | — |
82
85
  | [MetricsMonthly](models/metrics-monthly) | 26 | 26 | — |
86
+ | [NotificationRecord](models/notification-record) | 12 | 6 | — |
83
87
  | [Order](models/order) | 48 | 8 | — |
84
88
  | [OrderItem](models/order-item) | 12 | 3 | — |
85
89
  | [Sale](models/sale) | 12 | 1 | — |
@@ -185,4 +185,4 @@ Set at creation only. This field cannot be modified after the document is create
185
185
  | **Maximum** | ≤ 9007199254740991 |
186
186
 
187
187
  ----------------------------------------------------------------------------------------------------------------------------
188
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 14:03:20 +0000
188
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 15:51:05 +0000
@@ -391,7 +391,7 @@ Do not include in write requests. This field is set exclusively by the server (F
391
391
  | **Required** | No |
392
392
 
393
393
  ----------------------------------------------------------------------------------------------------------------------------
394
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 14:03:20 +0000
394
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 15:51:05 +0000
395
395
 
396
396
  :::warning Server-set
397
397
  Do not include in write requests. This field is set exclusively by the server (Firestore trigger or Admin SDK). Clients that send it will have the value silently ignored or may receive a validation error.
@@ -344,7 +344,7 @@ Do not include in write requests. This field is set exclusively by the server (F
344
344
  | **Maximum** | ≤ 9007199254740991 |
345
345
 
346
346
  ----------------------------------------------------------------------------------------------------------------------------
347
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 14:03:20 +0000
347
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 15:51:05 +0000
348
348
 
349
349
  :::warning Server-set
350
350
  Do not include in write requests. This field is set exclusively by the server (Firestore trigger or Admin SDK). Clients that send it will have the value silently ignored or may receive a validation error.
@@ -530,4 +530,4 @@ Must be one of:
530
530
  | **Additional properties** | Any type allowed |
531
531
 
532
532
  ----------------------------------------------------------------------------------------------------------------------------
533
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 14:03:20 +0000
533
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 15:51:05 +0000
@@ -365,7 +365,7 @@ Do not include in write requests. This field is set exclusively by the server (F
365
365
  | **Maximum** | ≤ 9007199254740991 |
366
366
 
367
367
  ----------------------------------------------------------------------------------------------------------------------------
368
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 14:03:20 +0000
368
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 15:51:05 +0000
369
369
 
370
370
  :::warning Server-set
371
371
  Do not include in write requests. This field is set exclusively by the server (Firestore trigger or Admin SDK). Clients that send it will have the value silently ignored or may receive a validation error.
@@ -270,7 +270,7 @@ Dot-notation paths for nested fields (e.g. "bookingDates.0.status"). Populated b
270
270
  | **Additional properties** | Any type allowed |
271
271
 
272
272
  ----------------------------------------------------------------------------------------------------------------------------
273
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 14:03:20 +0000
273
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 15:51:05 +0000
274
274
 
275
275
  :::warning Server-set
276
276
  Do not include in write requests. This field is set exclusively by the server (Firestore trigger or Admin SDK). Clients that send it will have the value silently ignored or may receive a validation error.
@@ -1739,7 +1739,7 @@ Set at creation only. This field cannot be modified after the document is create
1739
1739
  **Description:** When true, suppresses Firebase notification triggers (D20/IG-8).
1740
1740
 
1741
1741
  ----------------------------------------------------------------------------------------------------------------------------
1742
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 14:03:20 +0000
1742
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 15:51:05 +0000
1743
1743
 
1744
1744
  ## Related Decisions
1745
1745
 
@@ -329,7 +329,7 @@ Set at creation only. This field cannot be modified after the document is create
329
329
  | **Maximum** | ≤ 9007199254740991 |
330
330
 
331
331
  ----------------------------------------------------------------------------------------------------------------------------
332
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 14:03:20 +0000
332
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 15:51:05 +0000
333
333
 
334
334
  :::warning Server-set
335
335
  Do not include in write requests. This field is set exclusively by the server (Firestore trigger or Admin SDK). Clients that send it will have the value silently ignored or may receive a validation error.
@@ -379,7 +379,7 @@ Do not include in write requests. This field is set exclusively by the server (F
379
379
  | **Required** | No |
380
380
 
381
381
  ----------------------------------------------------------------------------------------------------------------------------
382
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 14:03:20 +0000
382
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 15:51:05 +0000
383
383
 
384
384
  :::warning Server-set
385
385
  Do not include in write requests. This field is set exclusively by the server (Firestore trigger or Admin SDK). Clients that send it will have the value silently ignored or may receive a validation error.