@ingenx-io/valets-schema-mcp-server 0.1.10 → 0.2.0

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 (64) hide show
  1. package/data/docs/collections/firestore-paths.md +20 -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/order-status.md +1 -1
  12. package/data/docs/enums/outbound-message-format.md +22 -0
  13. package/data/docs/enums/outbound-message-purpose.md +24 -0
  14. package/data/docs/enums/outbound-message-status.md +4 -4
  15. package/data/docs/enums/payment-method.md +2 -2
  16. package/data/docs/enums/payment-proof-status.md +2 -2
  17. package/data/docs/enums/payment-status.md +2 -2
  18. package/data/docs/enums/pending-issue.md +2 -2
  19. package/data/docs/enums/return-status.md +2 -2
  20. package/data/docs/enums/session-status.md +2 -2
  21. package/data/docs/enums/site-status.md +2 -2
  22. package/data/docs/enums/stocktake-frequency.md +2 -2
  23. package/data/docs/enums/stocktake-item-status.md +2 -2
  24. package/data/docs/enums/stocktake-status.md +2 -2
  25. package/data/docs/enums/ticket-status.md +2 -2
  26. package/data/docs/enums/waba-label.md +2 -2
  27. package/data/docs/enums/whatsapp-template-status.md +26 -0
  28. package/data/docs/index.md +9 -5
  29. package/data/docs/models/allowed-user.md +1 -1
  30. package/data/docs/models/analytics-backfill.md +1 -1
  31. package/data/docs/models/analytics-daily.md +1 -1
  32. package/data/docs/models/analytics-event.md +1 -1
  33. package/data/docs/models/analytics-hourly.md +1 -1
  34. package/data/docs/models/booking-version.md +1 -1
  35. package/data/docs/models/booking.md +1 -1
  36. package/data/docs/models/customer-payment-allocation.md +1 -1
  37. package/data/docs/models/customer-payment.md +1 -1
  38. package/data/docs/models/customer.md +1 -1
  39. package/data/docs/models/event.md +1 -1
  40. package/data/docs/models/loyalty-config.md +1 -1
  41. package/data/docs/models/loyalty-reward.md +1 -1
  42. package/data/docs/models/loyalty-status.md +1 -1
  43. package/data/docs/models/loyalty-transaction.md +1 -1
  44. package/data/docs/models/magic-link-request.md +1 -1
  45. package/data/docs/models/metrics-current.md +1 -1
  46. package/data/docs/models/metrics-daily.md +1 -1
  47. package/data/docs/models/metrics-monthly.md +1 -1
  48. package/data/docs/models/order-item.md +1 -1
  49. package/data/docs/models/order.md +1 -1
  50. package/data/docs/models/sale.md +1 -1
  51. package/data/docs/models/site-payment.md +1 -1
  52. package/data/docs/models/site.md +1 -1
  53. package/data/docs/models/stocktake-item.md +1 -1
  54. package/data/docs/models/stocktake.md +1 -1
  55. package/data/docs/models/ticket.md +1 -1
  56. package/data/docs/models/whatsapp-inbound-message.md +1 -1
  57. package/data/docs/models/whatsapp-outbound-lifecycle-event.md +310 -0
  58. package/data/docs/models/whatsapp-outbound-message.md +395 -172
  59. package/data/docs/models/whatsapp-template.md +177 -0
  60. package/data/static/llms.txt +110 -32
  61. package/data/static/openapi.yaml +274 -66
  62. package/data/static/schemas.json +354 -69
  63. package/package.json +1 -1
  64. package/data/docs/enums/outbound-message-kind.md +0 -23
@@ -84,6 +84,26 @@ Orders live at the existing company-scoped path `companies/{companyId}/orders/{o
84
84
  - **Composite index:** `(companyId, siteId, createdAt)` for per-site recency queries.
85
85
  - **Physical relocation** of Order under `sites/{siteId}/orders/` is explicitly deferred (ADR-004, not approved).
86
86
 
87
+ ## WhatsApp messaging — top-level collections (GH#36 / GH#43)
88
+
89
+ WhatsApp message collections are **top-level**, not under `companies/{companyId}/`: company context is not known at message time (a webhook arrives before the sender is resolved to a company). They form the symmetric inbound/outbound pair the dashboard renders as a conversation thread.
90
+
91
+ ```
92
+ whatsapp_inbound_messages/{wamid} ← GH#36 — inbound, doc ID = Meta wamid (dedup)
93
+ whatsapp_outbound_messages/{autoId} ← GH#43 — outbox; dashboard enqueues `queued`, backend sends
94
+ └── lifecycle_events/{eventId} ← ⚠️ backend-internal log (NOT a consumer surface)
95
+ whatsapp_templates/{name__language} ← GH#43 — Meta-approved templates, backend-synced
96
+ ```
97
+
98
+ | Collection | Doc ID | Writer | Notes |
99
+ |---|---|---|---|
100
+ | `whatsapp_inbound_messages` | Meta `wamid` | Backend (webhook) | Deduplicated on write |
101
+ | `whatsapp_outbound_messages` | auto | Dashboard creates `queued`; backend owns lifecycle | Firestore-as-the-bus outbox; status updated in place |
102
+ | `whatsapp_outbound_messages/{id}/lifecycle_events` | auto | Backend only | ⚠️ Backend-internal. Append-only log of send attempts, raw Meta req/res, errors, delivery/read callbacks — for reconstituting a message's full lifecycle. The dashboard must never read it; anything a consumer needs lives on the parent doc. |
103
+ | `whatsapp_templates` | `{name}__{language}` | Backend (synced from Meta) | Dashboard reads only |
104
+
105
+ **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
+
87
107
  ## Security rules pattern
88
108
 
89
109
  ```
@@ -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-16 at 00:20:07 +0000
24
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 01:15:17 +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-16 at 00:20:07 +0000
26
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 01:15:17 +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-16 at 00:20:07 +0000
26
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 01:15:17 +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-16 at 00:20:07 +0000
23
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 01:15:17 +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-16 at 00:20:07 +0000
23
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 01:15:17 +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-16 at 00:20:07 +0000
26
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 01:15:17 +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-16 at 00:20:07 +0000
24
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 01:15:17 +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-16 at 00:20:07 +0000
26
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 01:15:17 +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-16 at 00:20:07 +0000
26
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 01:15:17 +0000
27
27
 
28
28
  ## Related Decisions
29
29
 
@@ -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-16 at 00:20:07 +0000
27
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 01:15:17 +0000
28
28
 
29
29
  ## Related Decisions
30
30
 
@@ -0,0 +1,22 @@
1
+ ---
2
+ title: "OutboundMessageFormat"
3
+ sidebar_label: "OutboundMessageFormat"
4
+ sidebar_position: 11
5
+ ---
6
+
7
+ # OutboundMessageFormat
8
+
9
+ | | |
10
+ | -------------- | ------------------------------------- |
11
+ | **Type** | `enum (of string)` |
12
+ | **Required** | No |
13
+ | **Defined in** | #/definitions/outbound-message-format |
14
+
15
+ **Description:** 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).
16
+
17
+ Must be one of:
18
+ * "text"
19
+ * "template"
20
+
21
+ ----------------------------------------------------------------------------------------------------------------------------
22
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 01:15:17 +0000
@@ -0,0 +1,24 @@
1
+ ---
2
+ title: "OutboundMessagePurpose"
3
+ sidebar_label: "OutboundMessagePurpose"
4
+ sidebar_position: 12
5
+ ---
6
+
7
+ # OutboundMessagePurpose
8
+
9
+ | | |
10
+ | -------------- | -------------------------------------- |
11
+ | **Type** | `enum (of string)` |
12
+ | **Required** | No |
13
+ | **Defined in** | #/definitions/outbound-message-purpose |
14
+
15
+ **Description:** 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).
16
+
17
+ Must be one of:
18
+ * "otp"
19
+ * "review_request"
20
+ * "adhoc"
21
+ * "conversational"
22
+
23
+ ----------------------------------------------------------------------------------------------------------------------------
24
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 01:15:17 +0000
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  title: "OutboundMessageStatus"
3
3
  sidebar_label: "OutboundMessageStatus"
4
- sidebar_position: 12
4
+ sidebar_position: 13
5
5
  ---
6
6
 
7
7
  # OutboundMessageStatus
@@ -12,14 +12,14 @@ sidebar_position: 12
12
12
  | **Required** | No |
13
13
  | **Defined in** | #/definitions/outbound-message-status |
14
14
 
15
- **Description:** Outbound WhatsApp message delivery status. Lifecycle: accepted → sent → delivered → read, or accepted → failed. Updated in-place by Meta delivery callbacks (GH#38).
15
+ **Description:** Outbound WhatsApp message delivery status. Lifecycle: queued → sent → delivered → read, or queued → failed. The dashboard creates the message with status `queued`; the whatsapp-server backend owns every transition after, updating in place from Meta delivery callbacks (GH#43).
16
16
 
17
17
  Must be one of:
18
- * "accepted"
18
+ * "queued"
19
19
  * "sent"
20
20
  * "delivered"
21
21
  * "read"
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-16 at 00:20:07 +0000
25
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 01:15:17 +0000
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  title: "PaymentMethod"
3
3
  sidebar_label: "PaymentMethod"
4
- sidebar_position: 13
4
+ sidebar_position: 14
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-16 at 00:20:07 +0000
30
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 01:15:17 +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: 14
4
+ sidebar_position: 15
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-16 at 00:20:07 +0000
23
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 01:15:17 +0000
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  title: "PaymentStatus"
3
3
  sidebar_label: "PaymentStatus"
4
- sidebar_position: 15
4
+ sidebar_position: 16
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-16 at 00:20:07 +0000
27
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 01:15:17 +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: 16
4
+ sidebar_position: 17
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-16 at 00:20:07 +0000
31
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 01:15:17 +0000
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  title: "ReturnStatus"
3
3
  sidebar_label: "ReturnStatus"
4
- sidebar_position: 17
4
+ sidebar_position: 18
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-16 at 00:20:07 +0000
26
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 01:15:17 +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: 18
4
+ sidebar_position: 19
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-16 at 00:20:07 +0000
26
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 01:15:17 +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: 19
4
+ sidebar_position: 20
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-16 at 00:20:07 +0000
24
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 01:15:17 +0000
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  title: "StocktakeFrequency"
3
3
  sidebar_label: "StocktakeFrequency"
4
- sidebar_position: 20
4
+ sidebar_position: 21
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-16 at 00:20:07 +0000
24
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 01:15:17 +0000
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  title: "StocktakeItemStatus"
3
3
  sidebar_label: "StocktakeItemStatus"
4
- sidebar_position: 21
4
+ sidebar_position: 22
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-16 at 00:20:07 +0000
24
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 01:15:17 +0000
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  title: "StocktakeStatus"
3
3
  sidebar_label: "StocktakeStatus"
4
- sidebar_position: 22
4
+ sidebar_position: 23
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-16 at 00:20:07 +0000
24
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 01:15:18 +0000
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  title: "TicketStatus"
3
3
  sidebar_label: "TicketStatus"
4
- sidebar_position: 23
4
+ sidebar_position: 24
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-16 at 00:20:07 +0000
23
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 01:15:18 +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: 24
4
+ sidebar_position: 25
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-16 at 00:20:07 +0000
22
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 01:15:18 +0000
@@ -0,0 +1,26 @@
1
+ ---
2
+ title: "WhatsappTemplateStatus"
3
+ sidebar_label: "WhatsappTemplateStatus"
4
+ sidebar_position: 26
5
+ ---
6
+
7
+ # WhatsappTemplateStatus
8
+
9
+ | | |
10
+ | -------------- | -------------------------------------- |
11
+ | **Type** | `enum (of string)` |
12
+ | **Required** | No |
13
+ | **Defined in** | #/definitions/whatsapp-template-status |
14
+
15
+ **Description:** 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).
16
+
17
+ Must be one of:
18
+ * "APPROVED"
19
+ * "PENDING"
20
+ * "REJECTED"
21
+ * "PAUSED"
22
+ * "DISABLED"
23
+ * "IN_APPEAL"
24
+
25
+ ----------------------------------------------------------------------------------------------------------------------------
26
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 01:15:18 +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 (24)
22
+ ### Enums (26)
23
23
 
24
24
  Status enums that drive business logic across Order, Booking, Event, and Loyalty domains:
25
25
 
@@ -35,8 +35,9 @@ Status enums that drive business logic across Order, Booking, Event, and Loyalty
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
37
  | [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
- | [OutboundMessageKind](enums/outbound-message-kind) | 2 values | Outbound WhatsApp message kind. Strict enum new kinds require a schema version bump (GH#38). |
39
- | [OutboundMessageStatus](enums/outbound-message-status) | 5 values | Outbound WhatsApp message delivery status. Lifecycle: accepted sent delivered read, or accepted failed. Updated in-place by Meta delivery callbacks (GH#38). |
38
+ | [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
+ | [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). |
40
+ | [OutboundMessageStatus](enums/outbound-message-status) | 5 values | Outbound WhatsApp message delivery status. Lifecycle: queued → sent → delivered → read, or queued → failed. The dashboard creates the message with status `queued`; the whatsapp-server backend owns every transition after, updating in place from Meta delivery callbacks (GH#43). |
40
41
  | [PaymentMethod](enums/payment-method) | 10 values | Unified payment method set with African + global methods (D02). |
41
42
  | [PaymentProofStatus](enums/payment-proof-status) | 3 values | Payment proof review status. Used by Order and Booking payment proof workflows. |
42
43
  | [PaymentStatus](enums/payment-status) | 7 values | Payment lifecycle status (D01 amended). Used by Order, Sale/Purchase, Booking. |
@@ -49,9 +50,10 @@ Status enums that drive business logic across Order, Booking, Event, and Loyalty
49
50
  | [StocktakeStatus](enums/stocktake-status) | 4 values | Lifecycle status of a Stocktake session (GH#29 §3, §4). |
50
51
  | [TicketStatus](enums/ticket-status) | 3 values | Event ticket status (D32). VALID = active and unused. |
51
52
  | [WabaLabel](enums/waba-label) | 2 values | Human-readable WABA label identifying which Meta business number received the message (GH#36). |
53
+ | [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). |
52
54
 
53
55
 
54
- ### Models (29)
56
+ ### Models (31)
55
57
 
56
58
  Core Firestore document schemas:
57
59
 
@@ -85,7 +87,9 @@ Core Firestore document schemas:
85
87
  | [StocktakeItem](models/stocktake-item) | 16 | 8 | — |
86
88
  | [Ticket](models/ticket) | 16 | 6 | — |
87
89
  | [WhatsappInboundMessage](models/whatsapp-inbound-message) | 13 | 7 | — |
88
- | [WhatsappOutboundMessage](models/whatsapp-outbound-message) | 16 | 9 | — |
90
+ | [WhatsappOutboundLifecycleEvent](models/whatsapp-outbound-lifecycle-event) | 11 | 2 | — |
91
+ | [WhatsappOutboundMessage](models/whatsapp-outbound-message) | 18 | 7 | — |
92
+ | [WhatsappTemplate](models/whatsapp-template) | 7 | 6 | — |
89
93
 
90
94
 
91
95
 
@@ -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-16 at 00:20:06 +0000
188
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 01:15:17 +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-16 at 00:20:06 +0000
394
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 01:15:17 +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-16 at 00:20:06 +0000
347
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 01:15:17 +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-16 at 00:20:07 +0000
533
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 01:15:17 +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-16 at 00:20:07 +0000
368
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 01:15:17 +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-16 at 00:20:07 +0000
273
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 01:15:17 +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-16 at 00:20:07 +0000
1742
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 01:15:17 +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-16 at 00:20:07 +0000
332
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 01:15:17 +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-16 at 00:20:07 +0000
382
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 01:15:17 +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.
@@ -459,7 +459,7 @@ Do not include in write requests. This field is set exclusively by the server (F
459
459
  **Description:** (Read-only, Denormalized) Derived summary from loyalty/status subcollection (D08). Source of truth is LoyaltyStatus.pointsBalance.
460
460
 
461
461
  ----------------------------------------------------------------------------------------------------------------------------
462
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-16 at 00:20:07 +0000
462
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 01:15:17 +0000
463
463
 
464
464
  :::warning Server-set
465
465
  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.
@@ -372,7 +372,7 @@ Do not include in write requests. This field is set exclusively by the server (F
372
372
  **Description:** (Immutable) FK → User/staff UID who created this event.
373
373
 
374
374
  ----------------------------------------------------------------------------------------------------------------------------
375
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-16 at 00:20:07 +0000
375
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 01:15:17 +0000
376
376
 
377
377
  :::info Immutable
378
378
  Set at creation only. This field cannot be modified after the document is created. Include it in CREATE payloads; omit it (or leave unchanged) in UPDATE payloads.
@@ -304,7 +304,7 @@ Do not include in write requests. This field is set exclusively by the server (F
304
304
  | **Required** | No |
305
305
 
306
306
  ----------------------------------------------------------------------------------------------------------------------------
307
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-16 at 00:20:07 +0000
307
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 01:15:17 +0000
308
308
 
309
309
  :::warning Server-set
310
310
  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.
@@ -229,7 +229,7 @@ Do not include in write requests. This field is set exclusively by the server (F
229
229
  | **Required** | No |
230
230
 
231
231
  ----------------------------------------------------------------------------------------------------------------------------
232
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-16 at 00:20:07 +0000
232
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 01:15:17 +0000
233
233
 
234
234
  :::warning Server-set
235
235
  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.
@@ -315,7 +315,7 @@ Do not include in write requests. This field is set exclusively by the server (F
315
315
  | **Required** | No |
316
316
 
317
317
  ----------------------------------------------------------------------------------------------------------------------------
318
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-16 at 00:20:07 +0000
318
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 01:15:17 +0000
319
319
 
320
320
  :::warning Server-set
321
321
  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.