@ingenx-io/valets-schema-mcp-server 0.1.10 → 0.2.1
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.
- package/data/docs/collections/firestore-paths.md +20 -0
- package/data/docs/enums/attention-status.md +1 -1
- package/data/docs/enums/booking-status.md +1 -1
- package/data/docs/enums/customer-payment-status.md +1 -1
- package/data/docs/enums/customer-payment-target-type.md +1 -1
- package/data/docs/enums/delivery-type.md +1 -1
- package/data/docs/enums/deployment-link-type.md +1 -1
- package/data/docs/enums/event-status.md +1 -1
- package/data/docs/enums/fulfillment-status.md +1 -1
- package/data/docs/enums/loyalty-transaction-type.md +1 -1
- package/data/docs/enums/order-status.md +1 -1
- package/data/docs/enums/outbound-message-format.md +22 -0
- package/data/docs/enums/outbound-message-purpose.md +24 -0
- package/data/docs/enums/outbound-message-status.md +4 -4
- package/data/docs/enums/payment-method.md +2 -2
- package/data/docs/enums/payment-proof-status.md +2 -2
- package/data/docs/enums/payment-status.md +2 -2
- package/data/docs/enums/pending-issue.md +2 -2
- package/data/docs/enums/return-status.md +2 -2
- package/data/docs/enums/session-status.md +2 -2
- package/data/docs/enums/site-status.md +2 -2
- package/data/docs/enums/stocktake-frequency.md +2 -2
- package/data/docs/enums/stocktake-item-status.md +2 -2
- package/data/docs/enums/stocktake-status.md +2 -2
- package/data/docs/enums/ticket-status.md +2 -2
- package/data/docs/enums/waba-label.md +2 -2
- package/data/docs/enums/whatsapp-button-sub-type.md +22 -0
- package/data/docs/enums/whatsapp-template-component.md +23 -0
- package/data/docs/enums/whatsapp-template-status.md +26 -0
- package/data/docs/index.md +11 -5
- package/data/docs/models/allowed-user.md +1 -1
- package/data/docs/models/analytics-backfill.md +1 -1
- package/data/docs/models/analytics-daily.md +1 -1
- package/data/docs/models/analytics-event.md +1 -1
- package/data/docs/models/analytics-hourly.md +1 -1
- package/data/docs/models/booking-version.md +1 -1
- package/data/docs/models/booking.md +1 -1
- package/data/docs/models/customer-payment-allocation.md +1 -1
- package/data/docs/models/customer-payment.md +1 -1
- package/data/docs/models/customer.md +1 -1
- package/data/docs/models/event.md +1 -1
- package/data/docs/models/loyalty-config.md +1 -1
- package/data/docs/models/loyalty-reward.md +1 -1
- package/data/docs/models/loyalty-status.md +1 -1
- package/data/docs/models/loyalty-transaction.md +1 -1
- package/data/docs/models/magic-link-request.md +1 -1
- package/data/docs/models/metrics-current.md +1 -1
- package/data/docs/models/metrics-daily.md +1 -1
- package/data/docs/models/metrics-monthly.md +1 -1
- package/data/docs/models/order-item.md +1 -1
- package/data/docs/models/order.md +1 -1
- package/data/docs/models/sale.md +1 -1
- package/data/docs/models/site-payment.md +1 -1
- package/data/docs/models/site.md +1 -1
- package/data/docs/models/stocktake-item.md +1 -1
- package/data/docs/models/stocktake.md +1 -1
- package/data/docs/models/ticket.md +1 -1
- package/data/docs/models/whatsapp-inbound-message.md +1 -1
- package/data/docs/models/whatsapp-outbound-lifecycle-event.md +310 -0
- package/data/docs/models/whatsapp-outbound-message.md +395 -172
- package/data/docs/models/whatsapp-template.md +283 -0
- package/data/static/llms.txt +129 -32
- package/data/static/openapi.yaml +329 -66
- package/data/static/schemas.json +414 -69
- package/package.json +1 -1
- 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/{waba__name__language} ← GH#43 — Meta-approved templates (WABA-scoped), 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` | `{waba}__{name}__{language}` | Backend (synced from Meta) | WABA-scoped; dashboard reads only. Parameters carry component placement (header/body/button) per GH#46. |
|
|
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-
|
|
24
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 13:06:58 +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-
|
|
26
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 13:06:58 +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-
|
|
26
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 13:06:58 +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-
|
|
23
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 13:06:58 +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-
|
|
23
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 13:06:58 +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-
|
|
26
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 13:06:58 +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-
|
|
24
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 13:06:58 +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-
|
|
26
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 13:06:58 +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-
|
|
26
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 13:06:58 +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-
|
|
27
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 13:06:58 +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 13:06:59 +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 13:06:59 +0000
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: "OutboundMessageStatus"
|
|
3
3
|
sidebar_label: "OutboundMessageStatus"
|
|
4
|
-
sidebar_position:
|
|
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:
|
|
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
|
-
* "
|
|
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-
|
|
25
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 13:06:59 +0000
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: "PaymentMethod"
|
|
3
3
|
sidebar_label: "PaymentMethod"
|
|
4
|
-
sidebar_position:
|
|
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-
|
|
30
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 13:06:59 +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:
|
|
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-
|
|
23
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 13:06:59 +0000
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: "PaymentStatus"
|
|
3
3
|
sidebar_label: "PaymentStatus"
|
|
4
|
-
sidebar_position:
|
|
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-
|
|
27
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 13:06:59 +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:
|
|
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-
|
|
31
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 13:06:59 +0000
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: "ReturnStatus"
|
|
3
3
|
sidebar_label: "ReturnStatus"
|
|
4
|
-
sidebar_position:
|
|
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-
|
|
26
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 13:06:59 +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:
|
|
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-
|
|
26
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 13:06:59 +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:
|
|
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-
|
|
24
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 13:06:59 +0000
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: "StocktakeFrequency"
|
|
3
3
|
sidebar_label: "StocktakeFrequency"
|
|
4
|
-
sidebar_position:
|
|
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-
|
|
24
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 13:06:59 +0000
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: "StocktakeItemStatus"
|
|
3
3
|
sidebar_label: "StocktakeItemStatus"
|
|
4
|
-
sidebar_position:
|
|
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-
|
|
24
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 13:06:59 +0000
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: "StocktakeStatus"
|
|
3
3
|
sidebar_label: "StocktakeStatus"
|
|
4
|
-
sidebar_position:
|
|
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-
|
|
24
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 13:06:59 +0000
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: "TicketStatus"
|
|
3
3
|
sidebar_label: "TicketStatus"
|
|
4
|
-
sidebar_position:
|
|
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-
|
|
23
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 13:06:59 +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:
|
|
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-
|
|
22
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 13:06:59 +0000
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "WhatsappButtonSubType"
|
|
3
|
+
sidebar_label: "WhatsappButtonSubType"
|
|
4
|
+
sidebar_position: 26
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# WhatsappButtonSubType
|
|
8
|
+
|
|
9
|
+
| | |
|
|
10
|
+
| -------------- | -------------------------------------- |
|
|
11
|
+
| **Type** | `enum (of string)` |
|
|
12
|
+
| **Required** | No |
|
|
13
|
+
| **Defined in** | #/definitions/whatsapp-button-sub-type |
|
|
14
|
+
|
|
15
|
+
**Description:** Sub-type of a WhatsApp template button parameter. Set when WhatsappTemplateParameter.component === "button" — maps to Meta `components[].sub_type` (GH#46).
|
|
16
|
+
|
|
17
|
+
Must be one of:
|
|
18
|
+
* "url"
|
|
19
|
+
* "quick_reply"
|
|
20
|
+
|
|
21
|
+
----------------------------------------------------------------------------------------------------------------------------
|
|
22
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 13:06:59 +0000
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "WhatsappTemplateComponent"
|
|
3
|
+
sidebar_label: "WhatsappTemplateComponent"
|
|
4
|
+
sidebar_position: 27
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# WhatsappTemplateComponent
|
|
8
|
+
|
|
9
|
+
| | |
|
|
10
|
+
| -------------- | ----------------------------------------- |
|
|
11
|
+
| **Type** | `enum (of string)` |
|
|
12
|
+
| **Required** | No |
|
|
13
|
+
| **Defined in** | #/definitions/whatsapp-template-component |
|
|
14
|
+
|
|
15
|
+
**Description:** WhatsApp template component a parameter targets. Determines which Meta `components` entry the supplied value is placed in at send time (GH#46).
|
|
16
|
+
|
|
17
|
+
Must be one of:
|
|
18
|
+
* "header"
|
|
19
|
+
* "body"
|
|
20
|
+
* "button"
|
|
21
|
+
|
|
22
|
+
----------------------------------------------------------------------------------------------------------------------------
|
|
23
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 13:06:59 +0000
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "WhatsappTemplateStatus"
|
|
3
|
+
sidebar_label: "WhatsappTemplateStatus"
|
|
4
|
+
sidebar_position: 28
|
|
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 13:06:59 +0000
|
package/data/docs/index.md
CHANGED
|
@@ -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 (
|
|
22
|
+
### Enums (28)
|
|
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
|
-
| [
|
|
39
|
-
| [
|
|
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,12 @@ 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
|
+
| [WhatsappButtonSubType](enums/whatsapp-button-sub-type) | 2 values | Sub-type of a WhatsApp template button parameter. Set when WhatsappTemplateParameter.component === "button" — maps to Meta `components[].sub_type` (GH#46). |
|
|
54
|
+
| [WhatsappTemplateComponent](enums/whatsapp-template-component) | 3 values | WhatsApp template component a parameter targets. Determines which Meta `components` entry the supplied value is placed in at send time (GH#46). |
|
|
55
|
+
| [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
56
|
|
|
53
57
|
|
|
54
|
-
### Models (
|
|
58
|
+
### Models (31)
|
|
55
59
|
|
|
56
60
|
Core Firestore document schemas:
|
|
57
61
|
|
|
@@ -85,7 +89,9 @@ Core Firestore document schemas:
|
|
|
85
89
|
| [StocktakeItem](models/stocktake-item) | 16 | 8 | — |
|
|
86
90
|
| [Ticket](models/ticket) | 16 | 6 | — |
|
|
87
91
|
| [WhatsappInboundMessage](models/whatsapp-inbound-message) | 13 | 7 | — |
|
|
88
|
-
| [
|
|
92
|
+
| [WhatsappOutboundLifecycleEvent](models/whatsapp-outbound-lifecycle-event) | 11 | 2 | — |
|
|
93
|
+
| [WhatsappOutboundMessage](models/whatsapp-outbound-message) | 18 | 7 | — |
|
|
94
|
+
| [WhatsappTemplate](models/whatsapp-template) | 9 | 8 | — |
|
|
89
95
|
|
|
90
96
|
|
|
91
97
|
|
|
@@ -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-
|
|
188
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 13:06:58 +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-
|
|
394
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 13:06:58 +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-
|
|
347
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 13:06:58 +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-
|
|
533
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 13:06:58 +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-
|
|
368
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 13:06:58 +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-
|
|
273
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 13:06:58 +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-
|
|
1742
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 13:06:58 +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-
|
|
332
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 13:06:58 +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-
|
|
382
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 13:06:58 +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-
|
|
462
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 13:06:58 +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.
|