@ingenx-io/valets-schema-mcp-server 0.2.1 → 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.
- package/data/docs/collections/firestore-paths.md +15 -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/notification-channel.md +24 -0
- package/data/docs/enums/notification-entity-type.md +26 -0
- package/data/docs/enums/notification-status.md +23 -0
- package/data/docs/enums/order-status.md +2 -2
- package/data/docs/enums/outbound-message-format.md +2 -2
- package/data/docs/enums/outbound-message-purpose.md +2 -2
- package/data/docs/enums/outbound-message-status.md +2 -2
- 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 +2 -2
- package/data/docs/enums/whatsapp-template-component.md +2 -2
- package/data/docs/enums/whatsapp-template-status.md +2 -2
- package/data/docs/index.md +6 -2
- 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/notification-record.md +619 -0
- package/data/docs/models/order-item.md +2 -2
- package/data/docs/models/order.md +2 -2
- package/data/docs/models/sale.md +2 -2
- package/data/docs/models/site-payment.md +2 -2
- package/data/docs/models/site.md +2 -2
- package/data/docs/models/stocktake-item.md +2 -2
- package/data/docs/models/stocktake.md +2 -2
- package/data/docs/models/ticket.md +2 -2
- package/data/docs/models/whatsapp-inbound-message.md +2 -2
- package/data/docs/models/whatsapp-outbound-lifecycle-event.md +2 -2
- package/data/docs/models/whatsapp-outbound-message.md +2 -2
- package/data/docs/models/whatsapp-template.md +23 -12
- package/data/static/llms.txt +73 -0
- package/data/static/openapi.yaml +200 -1
- package/data/static/schemas.json +263 -2
- package/package.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: "SitePayment"
|
|
3
3
|
sidebar_label: "SitePayment"
|
|
4
|
-
sidebar_position:
|
|
4
|
+
sidebar_position: 25
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# SitePayment
|
|
@@ -197,4 +197,4 @@ Set at creation only. This field cannot be modified after the document is create
|
|
|
197
197
|
| **Maximum** | ≤ 9007199254740991 |
|
|
198
198
|
|
|
199
199
|
----------------------------------------------------------------------------------------------------------------------------
|
|
200
|
-
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at
|
|
200
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 15:51:05 +0000
|
package/data/docs/models/site.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: "Site"
|
|
3
3
|
sidebar_label: "Site"
|
|
4
|
-
sidebar_position:
|
|
4
|
+
sidebar_position: 24
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Site
|
|
@@ -546,7 +546,7 @@ Do not include in write requests. This field is set exclusively by the server (F
|
|
|
546
546
|
**Description:** Timestamp of the most recent analytics event seen for this site.
|
|
547
547
|
|
|
548
548
|
----------------------------------------------------------------------------------------------------------------------------
|
|
549
|
-
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at
|
|
549
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 15:51:05 +0000
|
|
550
550
|
|
|
551
551
|
:::warning Server-set
|
|
552
552
|
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.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: "StocktakeItem"
|
|
3
3
|
sidebar_label: "StocktakeItem"
|
|
4
|
-
sidebar_position:
|
|
4
|
+
sidebar_position: 27
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# StocktakeItem
|
|
@@ -497,4 +497,4 @@ Read-time hint snapshot of the verifier's display name (GH#29 §3 / Q10).
|
|
|
497
497
|
| **Required** | No |
|
|
498
498
|
|
|
499
499
|
----------------------------------------------------------------------------------------------------------------------------
|
|
500
|
-
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at
|
|
500
|
+
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: "Stocktake"
|
|
3
3
|
sidebar_label: "Stocktake"
|
|
4
|
-
sidebar_position:
|
|
4
|
+
sidebar_position: 26
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Stocktake
|
|
@@ -642,7 +642,7 @@ Read-time hint snapshot of the completer's display name (GH#29 §3 / Q10).
|
|
|
642
642
|
| **Required** | No |
|
|
643
643
|
|
|
644
644
|
----------------------------------------------------------------------------------------------------------------------------
|
|
645
|
-
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at
|
|
645
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 15:51:05 +0000
|
|
646
646
|
|
|
647
647
|
:::warning Server-set
|
|
648
648
|
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.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: "Ticket"
|
|
3
3
|
sidebar_label: "Ticket"
|
|
4
|
-
sidebar_position:
|
|
4
|
+
sidebar_position: 28
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Ticket
|
|
@@ -388,7 +388,7 @@ Do not include in write requests. This field is set exclusively by the server (F
|
|
|
388
388
|
**Description:** (Immutable) FK → User/staff UID who created this ticket.
|
|
389
389
|
|
|
390
390
|
----------------------------------------------------------------------------------------------------------------------------
|
|
391
|
-
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at
|
|
391
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 15:51:05 +0000
|
|
392
392
|
|
|
393
393
|
:::info Immutable
|
|
394
394
|
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.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: "WhatsappInboundMessage"
|
|
3
3
|
sidebar_label: "WhatsappInboundMessage"
|
|
4
|
-
sidebar_position:
|
|
4
|
+
sidebar_position: 29
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# WhatsappInboundMessage
|
|
@@ -366,4 +366,4 @@ Do not include in write requests. This field is set exclusively by the server (F
|
|
|
366
366
|
Specific value: `true`
|
|
367
367
|
|
|
368
368
|
----------------------------------------------------------------------------------------------------------------------------
|
|
369
|
-
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at
|
|
369
|
+
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: "WhatsappOutboundLifecycleEvent"
|
|
3
3
|
sidebar_label: "WhatsappOutboundLifecycleEvent"
|
|
4
|
-
sidebar_position:
|
|
4
|
+
sidebar_position: 30
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# WhatsappOutboundLifecycleEvent
|
|
@@ -303,7 +303,7 @@ Do not include in write requests. This field is set exclusively by the server (F
|
|
|
303
303
|
**Description:** (Read-only) Raw Meta error object(s).
|
|
304
304
|
|
|
305
305
|
----------------------------------------------------------------------------------------------------------------------------
|
|
306
|
-
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at
|
|
306
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 15:51:06 +0000
|
|
307
307
|
|
|
308
308
|
:::warning Server-set
|
|
309
309
|
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.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: "WhatsappOutboundMessage"
|
|
3
3
|
sidebar_label: "WhatsappOutboundMessage"
|
|
4
|
-
sidebar_position:
|
|
4
|
+
sidebar_position: 31
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# WhatsappOutboundMessage
|
|
@@ -582,7 +582,7 @@ Do not include in write requests. This field is set exclusively by the server (F
|
|
|
582
582
|
| **Required** | No |
|
|
583
583
|
|
|
584
584
|
----------------------------------------------------------------------------------------------------------------------------
|
|
585
|
-
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at
|
|
585
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 15:51:06 +0000
|
|
586
586
|
|
|
587
587
|
:::warning Server-set
|
|
588
588
|
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.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: "WhatsappTemplate"
|
|
3
3
|
sidebar_label: "WhatsappTemplate"
|
|
4
|
-
sidebar_position:
|
|
4
|
+
sidebar_position: 32
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# WhatsappTemplate
|
|
@@ -44,6 +44,7 @@ sidebar_position: 31
|
|
|
44
44
|
- [8.1.2. Property `component`](#parameters_items_component)
|
|
45
45
|
- [8.1.3. Property `buttonIndex`](#parameters_items_buttonIndex)
|
|
46
46
|
- [8.1.4. Property `buttonSubType`](#parameters_items_buttonSubType)
|
|
47
|
+
- [8.1.5. Property `buttonUrlBase`](#parameters_items_buttonUrlBase)
|
|
47
48
|
- [9. Property `preview`](#preview)
|
|
48
49
|
|
|
49
50
|
| | |
|
|
@@ -189,9 +190,9 @@ Do not include in write requests. This field is set exclusively by the server (F
|
|
|
189
190
|
| **Additional items** | False |
|
|
190
191
|
| **Tuple validation** | See below |
|
|
191
192
|
|
|
192
|
-
| Each item of this array must be | Description
|
|
193
|
-
| ------------------------------------- |
|
|
194
|
-
| [parameters items](#parameters_items) | Declared WhatsApp template parameter with component placement (GH#46). |
|
|
193
|
+
| Each item of this array must be | Description |
|
|
194
|
+
| ------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- |
|
|
195
|
+
| [parameters items](#parameters_items) | Declared WhatsApp template parameter with component placement (GH#46) and, for URL buttons, the configured URL pattern (GH#51). |
|
|
195
196
|
|
|
196
197
|
### <a name="parameters_items"></a>8.1. parameters items
|
|
197
198
|
|
|
@@ -201,14 +202,15 @@ Do not include in write requests. This field is set exclusively by the server (F
|
|
|
201
202
|
| **Required** | No |
|
|
202
203
|
| **Additional properties** | Not allowed |
|
|
203
204
|
|
|
204
|
-
**Description:** Declared WhatsApp template parameter with component placement (GH#46).
|
|
205
|
+
**Description:** Declared WhatsApp template parameter with component placement (GH#46) and, for URL buttons, the configured URL pattern (GH#51).
|
|
205
206
|
|
|
206
|
-
| Property | Pattern | Type | Deprecated | Definition | Title/Description
|
|
207
|
-
| --------------------------------------------------- | ------- | ---------------- | ---------- | -------------------------------------------- |
|
|
208
|
-
| + [name](#parameters_items_name ) | No | string | No | - | Parameter name/placeholder (e.g. "1"). Matches a key in WhatsappOutboundMessage.template.variables.
|
|
209
|
-
| + [component](#parameters_items_component ) | No | enum (of string) | No | In #/definitions/whatsapp-template-component | Which template component this parameter targets: header \| body \| button.
|
|
210
|
-
| - [buttonIndex](#parameters_items_buttonIndex ) | No | integer | No | - | 0-based button position. Present only when component=button (Meta requires a string index at send time).
|
|
211
|
-
| - [buttonSubType](#parameters_items_buttonSubType ) | No | enum (of string) | No | In #/definitions/whatsapp-button-sub-type | Button sub-type (url \| quick_reply). Present only when component=button.
|
|
207
|
+
| Property | Pattern | Type | Deprecated | Definition | Title/Description |
|
|
208
|
+
| --------------------------------------------------- | ------- | ---------------- | ---------- | -------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
209
|
+
| + [name](#parameters_items_name ) | No | string | No | - | Parameter name/placeholder (e.g. "1"). Matches a key in WhatsappOutboundMessage.template.variables. |
|
|
210
|
+
| + [component](#parameters_items_component ) | No | enum (of string) | No | In #/definitions/whatsapp-template-component | Which template component this parameter targets: header \| body \| button. |
|
|
211
|
+
| - [buttonIndex](#parameters_items_buttonIndex ) | No | integer | No | - | 0-based button position. Present only when component=button (Meta requires a string index at send time). |
|
|
212
|
+
| - [buttonSubType](#parameters_items_buttonSubType ) | No | enum (of string) | No | In #/definitions/whatsapp-button-sub-type | Button sub-type (url \| quick_reply). Present only when component=button. |
|
|
213
|
+
| - [buttonUrlBase](#parameters_items_buttonUrlBase ) | No | string | No | - | For component=button + buttonSubType=url: the template's configured button URL incl. the placeholder, e.g. "https://zahoui-review.web.app/\{\{1\}\}". Meta requires the variable at the URL end, so the supplied value is the suffix appended after the static prefix. Lets the dashboard display the resulting link (GH#51). |
|
|
212
214
|
|
|
213
215
|
#### <a name="parameters_items_name"></a>8.1.1. Property `name`
|
|
214
216
|
|
|
@@ -262,6 +264,15 @@ Must be one of:
|
|
|
262
264
|
* "url"
|
|
263
265
|
* "quick_reply"
|
|
264
266
|
|
|
267
|
+
#### <a name="parameters_items_buttonUrlBase"></a>8.1.5. Property `buttonUrlBase`
|
|
268
|
+
|
|
269
|
+
| | |
|
|
270
|
+
| ------------ | -------- |
|
|
271
|
+
| **Type** | `string` |
|
|
272
|
+
| **Required** | No |
|
|
273
|
+
|
|
274
|
+
**Description:** For component=button + buttonSubType=url: the template's configured button URL incl. the placeholder, e.g. "https://zahoui-review.web.app/\{\{1\}\}". Meta requires the variable at the URL end, so the supplied value is the suffix appended after the static prefix. Lets the dashboard display the resulting link (GH#51).
|
|
275
|
+
|
|
265
276
|
:::warning Server-set
|
|
266
277
|
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.
|
|
267
278
|
:::
|
|
@@ -276,7 +287,7 @@ Do not include in write requests. This field is set exclusively by the server (F
|
|
|
276
287
|
**Description:** (Read-only) Rendered preview text for display in the dashboard picker.
|
|
277
288
|
|
|
278
289
|
----------------------------------------------------------------------------------------------------------------------------
|
|
279
|
-
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at
|
|
290
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 15:51:06 +0000
|
|
280
291
|
|
|
281
292
|
:::warning Server-set
|
|
282
293
|
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.
|
package/data/static/llms.txt
CHANGED
|
@@ -46,6 +46,18 @@ Values: PREPARING, PARTIALLY_SHIPPED, SHIPPED, IN_TRANSIT, DELIVERED, PICKED_UP
|
|
|
46
46
|
Loyalty point transaction type (D07). SCREAMING_SNAKE past tense.
|
|
47
47
|
Values: EARNED, REDEEMED, ADJUSTED, EXPIRED, BONUS, REFUND
|
|
48
48
|
|
|
49
|
+
### NotificationChannel
|
|
50
|
+
Delivery channel of a NotificationRecord (GH#48).
|
|
51
|
+
Values: email, whatsapp, sms, push
|
|
52
|
+
|
|
53
|
+
### NotificationEntityType
|
|
54
|
+
Type of entity a NotificationRecord relates to. When `order`, the record is dual-written to the order-scoped subcollection (GH#48).
|
|
55
|
+
Values: order, booking, customer, digest, magic_link, other
|
|
56
|
+
|
|
57
|
+
### NotificationStatus
|
|
58
|
+
Delivery status of a NotificationRecord, set by the Cloud Function after a send attempt (GH#48).
|
|
59
|
+
Values: sent, failed, pending
|
|
60
|
+
|
|
49
61
|
### OrderStatus
|
|
50
62
|
Core order lifecycle status (D03, D34). Universal across all business types. Replaces the Dashboard's legacy 20-value flat enum (MIG-11).
|
|
51
63
|
Values: PENDING, CONFIRMED, PROCESSING, READY, COMPLETED, CANCELLED, EXPIRED
|
|
@@ -1092,6 +1104,66 @@ Example:
|
|
|
1092
1104
|
}
|
|
1093
1105
|
```
|
|
1094
1106
|
|
|
1107
|
+
### NotificationRecord
|
|
1108
|
+
Fields: 12 (6 required)
|
|
1109
|
+
|
|
1110
|
+
| Field | Type | Required | Description |
|
|
1111
|
+
|-------|------|----------|-------------|
|
|
1112
|
+
| id | ['string', 'null'] | no | (Read-only) Firestore document ID, auto-generated. Same ID is used in both the company-wide and order-scoped copies. |
|
|
1113
|
+
| type | NotificationChannel | yes | (Read-only) Delivery channel. |
|
|
1114
|
+
| status | NotificationStatus | yes | (Read-only) Delivery status after the send attempt. |
|
|
1115
|
+
| subject | ['string', 'null'] | no | (Read-only) Subject line. Present for email notifications only. |
|
|
1116
|
+
| recipients | object | yes | (Read-only) Recipients of the notification. |
|
|
1117
|
+
| recipients.to | array<object> | yes | Primary recipients. |
|
|
1118
|
+
| recipients.to[].email | string | no | Recipient email address. Present for email notifications. |
|
|
1119
|
+
| recipients.to[].phone | string | no | Recipient phone number (E.164). Present for whatsapp/sms notifications. |
|
|
1120
|
+
| recipients.to[].name | string | no | Recipient display name. |
|
|
1121
|
+
| recipients.to[].role | string | no | Recipient role (e.g. organizer, customer). |
|
|
1122
|
+
| recipients.cc | array<object> | no | CC recipients (email). |
|
|
1123
|
+
| recipients.cc[].email | string | no | Recipient email address. Present for email notifications. |
|
|
1124
|
+
| recipients.cc[].phone | string | no | Recipient phone number (E.164). Present for whatsapp/sms notifications. |
|
|
1125
|
+
| recipients.cc[].name | string | no | Recipient display name. |
|
|
1126
|
+
| recipients.cc[].role | string | no | Recipient role (e.g. organizer, customer). |
|
|
1127
|
+
| recipients.bcc | array<object> | no | BCC recipients (email). |
|
|
1128
|
+
| recipients.bcc[].email | string | no | Recipient email address. Present for email notifications. |
|
|
1129
|
+
| recipients.bcc[].phone | string | no | Recipient phone number (E.164). Present for whatsapp/sms notifications. |
|
|
1130
|
+
| recipients.bcc[].name | string | no | Recipient display name. |
|
|
1131
|
+
| recipients.bcc[].role | string | no | Recipient role (e.g. organizer, customer). |
|
|
1132
|
+
| relatedEntity | object | yes | (Read-only) Entity that triggered the notification. type=order triggers the dual-write to the order subcollection. |
|
|
1133
|
+
| relatedEntity.type | NotificationEntityType | yes | Entity type this notification relates to. |
|
|
1134
|
+
| relatedEntity.id | string | yes | Entity document ID (e.g. orderId when type=order). |
|
|
1135
|
+
| wamid | ['string', 'null'] | no | (Read-only) WhatsApp message ID from the Meta API response. Present on successful whatsapp sends only. |
|
|
1136
|
+
| templateParams | ['object', 'null'] | no | (Read-only) Filled-in template variable values at send time. Allows reconstructing the sent message without fetching from Meta. |
|
|
1137
|
+
| metadata | ['object', 'null'] | no | (Read-only) Channel-specific extras (e.g. senderPhoneId, templateName, orderNumber). |
|
|
1138
|
+
| error | ['string', 'null'] | no | (Read-only) Failure reason. Present on status=failed. |
|
|
1139
|
+
| sentAt | FirestoreTimestamp | yes | (Read-only) When the send was attempted. |
|
|
1140
|
+
| createdAt | FirestoreTimestamp | yes | (Read-only) When the record was created. |
|
|
1141
|
+
|
|
1142
|
+
Example:
|
|
1143
|
+
```json
|
|
1144
|
+
{
|
|
1145
|
+
"id": null,
|
|
1146
|
+
"type": "phone",
|
|
1147
|
+
"status": "status",
|
|
1148
|
+
"subject": null,
|
|
1149
|
+
"recipients": {
|
|
1150
|
+
"to": [
|
|
1151
|
+
{}
|
|
1152
|
+
]
|
|
1153
|
+
},
|
|
1154
|
+
"relatedEntity": {
|
|
1155
|
+
"type": "phone",
|
|
1156
|
+
"id": "bk_abc123def456"
|
|
1157
|
+
},
|
|
1158
|
+
"wamid": null,
|
|
1159
|
+
"templateParams": null,
|
|
1160
|
+
"metadata": null,
|
|
1161
|
+
"error": null,
|
|
1162
|
+
"sentAt": "sentAt",
|
|
1163
|
+
"createdAt": "createdAt"
|
|
1164
|
+
}
|
|
1165
|
+
```
|
|
1166
|
+
|
|
1095
1167
|
### Order
|
|
1096
1168
|
Fields: 48 (8 required)
|
|
1097
1169
|
|
|
@@ -1637,6 +1709,7 @@ Fields: 9 (8 required)
|
|
|
1637
1709
|
| parameters[].component | WhatsappTemplateComponent | yes | Which template component this parameter targets: header | body | button. |
|
|
1638
1710
|
| parameters[].buttonIndex | integer | no | 0-based button position. Present only when component=button (Meta requires a string index at send time). |
|
|
1639
1711
|
| parameters[].buttonSubType | WhatsappButtonSubType | no | Button sub-type (url | quick_reply). Present only when component=button. |
|
|
1712
|
+
| parameters[].buttonUrlBase | string | no | For component=button + buttonSubType=url: the template's configured button URL incl. the placeholder, e.g. "https://zahoui-review.web.app/{{1}}". Meta requires the variable at the URL end, so the supplied value is the suffix appended after the static prefix. Lets the dashboard display the resulting link (GH#51). |
|
|
1640
1713
|
| preview | string | yes | (Read-only) Rendered preview text for display in the dashboard picker. |
|
|
1641
1714
|
|
|
1642
1715
|
Example:
|
package/data/static/openapi.yaml
CHANGED
|
@@ -110,6 +110,33 @@ components:
|
|
|
110
110
|
- BONUS
|
|
111
111
|
- REFUND
|
|
112
112
|
description: Loyalty point transaction type (D07). SCREAMING_SNAKE past tense.
|
|
113
|
+
NotificationChannel:
|
|
114
|
+
type: string
|
|
115
|
+
enum:
|
|
116
|
+
- email
|
|
117
|
+
- whatsapp
|
|
118
|
+
- sms
|
|
119
|
+
- push
|
|
120
|
+
description: Delivery channel of a NotificationRecord (GH#48).
|
|
121
|
+
NotificationEntityType:
|
|
122
|
+
type: string
|
|
123
|
+
enum:
|
|
124
|
+
- order
|
|
125
|
+
- booking
|
|
126
|
+
- customer
|
|
127
|
+
- digest
|
|
128
|
+
- magic_link
|
|
129
|
+
- other
|
|
130
|
+
description: Type of entity a NotificationRecord relates to. When `order`, the
|
|
131
|
+
record is dual-written to the order-scoped subcollection (GH#48).
|
|
132
|
+
NotificationStatus:
|
|
133
|
+
type: string
|
|
134
|
+
enum:
|
|
135
|
+
- sent
|
|
136
|
+
- failed
|
|
137
|
+
- pending
|
|
138
|
+
description: Delivery status of a NotificationRecord, set by the Cloud Function
|
|
139
|
+
after a send attempt (GH#48).
|
|
113
140
|
OrderStatus:
|
|
114
141
|
type: string
|
|
115
142
|
enum:
|
|
@@ -3074,6 +3101,171 @@ components:
|
|
|
3074
3101
|
description: Write payload for partial update (PATCH) of a MetricsMonthly document.
|
|
3075
3102
|
All fields optional. Fields marked `readOnly` or `x-immutable` must not be
|
|
3076
3103
|
sent.
|
|
3104
|
+
NotificationRecord:
|
|
3105
|
+
type: object
|
|
3106
|
+
properties:
|
|
3107
|
+
id:
|
|
3108
|
+
readOnly: true
|
|
3109
|
+
description: (Read-only) Firestore document ID, auto-generated. Same ID
|
|
3110
|
+
is used in both the company-wide and order-scoped copies.
|
|
3111
|
+
type:
|
|
3112
|
+
- string
|
|
3113
|
+
- 'null'
|
|
3114
|
+
type:
|
|
3115
|
+
$ref: '#/components/schemas/NotificationChannel'
|
|
3116
|
+
description: (Read-only) Delivery channel.
|
|
3117
|
+
readOnly: true
|
|
3118
|
+
status:
|
|
3119
|
+
$ref: '#/components/schemas/NotificationStatus'
|
|
3120
|
+
description: (Read-only) Delivery status after the send attempt.
|
|
3121
|
+
readOnly: true
|
|
3122
|
+
subject:
|
|
3123
|
+
readOnly: true
|
|
3124
|
+
description: (Read-only) Subject line. Present for email notifications only.
|
|
3125
|
+
type:
|
|
3126
|
+
- string
|
|
3127
|
+
- 'null'
|
|
3128
|
+
recipients:
|
|
3129
|
+
type: object
|
|
3130
|
+
properties:
|
|
3131
|
+
to:
|
|
3132
|
+
type: array
|
|
3133
|
+
items:
|
|
3134
|
+
type: object
|
|
3135
|
+
properties:
|
|
3136
|
+
email:
|
|
3137
|
+
description: Recipient email address. Present for email notifications.
|
|
3138
|
+
type: string
|
|
3139
|
+
phone:
|
|
3140
|
+
description: Recipient phone number (E.164). Present for whatsapp/sms
|
|
3141
|
+
notifications.
|
|
3142
|
+
type: string
|
|
3143
|
+
name:
|
|
3144
|
+
description: Recipient display name.
|
|
3145
|
+
type: string
|
|
3146
|
+
role:
|
|
3147
|
+
description: Recipient role (e.g. organizer, customer).
|
|
3148
|
+
type: string
|
|
3149
|
+
additionalProperties: false
|
|
3150
|
+
description: A notification recipient (GH#48).
|
|
3151
|
+
description: Primary recipients.
|
|
3152
|
+
cc:
|
|
3153
|
+
description: CC recipients (email).
|
|
3154
|
+
type: array
|
|
3155
|
+
items:
|
|
3156
|
+
type: object
|
|
3157
|
+
properties:
|
|
3158
|
+
email:
|
|
3159
|
+
description: Recipient email address. Present for email notifications.
|
|
3160
|
+
type: string
|
|
3161
|
+
phone:
|
|
3162
|
+
description: Recipient phone number (E.164). Present for whatsapp/sms
|
|
3163
|
+
notifications.
|
|
3164
|
+
type: string
|
|
3165
|
+
name:
|
|
3166
|
+
description: Recipient display name.
|
|
3167
|
+
type: string
|
|
3168
|
+
role:
|
|
3169
|
+
description: Recipient role (e.g. organizer, customer).
|
|
3170
|
+
type: string
|
|
3171
|
+
additionalProperties: false
|
|
3172
|
+
description: A notification recipient (GH#48).
|
|
3173
|
+
bcc:
|
|
3174
|
+
description: BCC recipients (email).
|
|
3175
|
+
type: array
|
|
3176
|
+
items:
|
|
3177
|
+
type: object
|
|
3178
|
+
properties:
|
|
3179
|
+
email:
|
|
3180
|
+
description: Recipient email address. Present for email notifications.
|
|
3181
|
+
type: string
|
|
3182
|
+
phone:
|
|
3183
|
+
description: Recipient phone number (E.164). Present for whatsapp/sms
|
|
3184
|
+
notifications.
|
|
3185
|
+
type: string
|
|
3186
|
+
name:
|
|
3187
|
+
description: Recipient display name.
|
|
3188
|
+
type: string
|
|
3189
|
+
role:
|
|
3190
|
+
description: Recipient role (e.g. organizer, customer).
|
|
3191
|
+
type: string
|
|
3192
|
+
additionalProperties: false
|
|
3193
|
+
description: A notification recipient (GH#48).
|
|
3194
|
+
required:
|
|
3195
|
+
- to
|
|
3196
|
+
additionalProperties: false
|
|
3197
|
+
readOnly: true
|
|
3198
|
+
description: (Read-only) Recipients of the notification.
|
|
3199
|
+
relatedEntity:
|
|
3200
|
+
type: object
|
|
3201
|
+
properties:
|
|
3202
|
+
type:
|
|
3203
|
+
$ref: '#/components/schemas/NotificationEntityType'
|
|
3204
|
+
description: Entity type this notification relates to.
|
|
3205
|
+
id:
|
|
3206
|
+
type: string
|
|
3207
|
+
description: Entity document ID (e.g. orderId when type=order).
|
|
3208
|
+
required:
|
|
3209
|
+
- type
|
|
3210
|
+
- id
|
|
3211
|
+
additionalProperties: false
|
|
3212
|
+
readOnly: true
|
|
3213
|
+
description: (Read-only) Entity that triggered the notification. type=order
|
|
3214
|
+
triggers the dual-write to the order subcollection.
|
|
3215
|
+
wamid:
|
|
3216
|
+
readOnly: true
|
|
3217
|
+
description: (Read-only) WhatsApp message ID from the Meta API response.
|
|
3218
|
+
Present on successful whatsapp sends only.
|
|
3219
|
+
type:
|
|
3220
|
+
- string
|
|
3221
|
+
- 'null'
|
|
3222
|
+
templateParams:
|
|
3223
|
+
readOnly: true
|
|
3224
|
+
description: (Read-only) Filled-in template variable values at send time.
|
|
3225
|
+
Allows reconstructing the sent message without fetching from Meta.
|
|
3226
|
+
type:
|
|
3227
|
+
- object
|
|
3228
|
+
- 'null'
|
|
3229
|
+
propertyNames:
|
|
3230
|
+
type: string
|
|
3231
|
+
additionalProperties:
|
|
3232
|
+
type: string
|
|
3233
|
+
metadata:
|
|
3234
|
+
readOnly: true
|
|
3235
|
+
description: (Read-only) Channel-specific extras (e.g. senderPhoneId, templateName,
|
|
3236
|
+
orderNumber).
|
|
3237
|
+
type:
|
|
3238
|
+
- object
|
|
3239
|
+
- 'null'
|
|
3240
|
+
propertyNames:
|
|
3241
|
+
type: string
|
|
3242
|
+
additionalProperties: {}
|
|
3243
|
+
error:
|
|
3244
|
+
readOnly: true
|
|
3245
|
+
description: (Read-only) Failure reason. Present on status=failed.
|
|
3246
|
+
type:
|
|
3247
|
+
- string
|
|
3248
|
+
- 'null'
|
|
3249
|
+
sentAt:
|
|
3250
|
+
$ref: '#/components/schemas/FirestoreTimestamp'
|
|
3251
|
+
description: (Read-only) When the send was attempted.
|
|
3252
|
+
readOnly: true
|
|
3253
|
+
createdAt:
|
|
3254
|
+
$ref: '#/components/schemas/FirestoreTimestamp'
|
|
3255
|
+
description: (Read-only) When the record was created.
|
|
3256
|
+
readOnly: true
|
|
3257
|
+
required:
|
|
3258
|
+
- type
|
|
3259
|
+
- status
|
|
3260
|
+
- recipients
|
|
3261
|
+
- relatedEntity
|
|
3262
|
+
- sentAt
|
|
3263
|
+
- createdAt
|
|
3264
|
+
additionalProperties: false
|
|
3265
|
+
description: 'NotificationRecord — backend-written, multi-channel notification
|
|
3266
|
+
audit log (GH#48). Paths: companies/{cid}/notifications/{id} (always) and
|
|
3267
|
+
companies/{cid}/orders/{oid}/notifications/{id} (dual-write when relatedEntity.type=order).
|
|
3268
|
+
Consumers read only. Distinct from WhatsappOutboundMessage (GH#43).'
|
|
3077
3269
|
Order:
|
|
3078
3270
|
type: object
|
|
3079
3271
|
properties:
|
|
@@ -4874,12 +5066,19 @@ components:
|
|
|
4874
5066
|
$ref: '#/components/schemas/WhatsappButtonSubType'
|
|
4875
5067
|
description: Button sub-type (url | quick_reply). Present only when
|
|
4876
5068
|
component=button.
|
|
5069
|
+
buttonUrlBase:
|
|
5070
|
+
description: 'For component=button + buttonSubType=url: the template''s
|
|
5071
|
+
configured button URL incl. the placeholder, e.g. "https://zahoui-review.web.app/{{1}}".
|
|
5072
|
+
Meta requires the variable at the URL end, so the supplied value
|
|
5073
|
+
is the suffix appended after the static prefix. Lets the dashboard
|
|
5074
|
+
display the resulting link (GH#51).'
|
|
5075
|
+
type: string
|
|
4877
5076
|
required:
|
|
4878
5077
|
- name
|
|
4879
5078
|
- component
|
|
4880
5079
|
additionalProperties: false
|
|
4881
5080
|
description: Declared WhatsApp template parameter with component placement
|
|
4882
|
-
(GH#46).
|
|
5081
|
+
(GH#46) and, for URL buttons, the configured URL pattern (GH#51).
|
|
4883
5082
|
readOnly: true
|
|
4884
5083
|
description: (Read-only) Declared parameters with component placement. Supersedes
|
|
4885
5084
|
the flat `variables` list (GH#46) — lets the send group values into the
|