@ingenx-io/valets-schema-mcp-server 0.2.4 → 0.2.6

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 (79) hide show
  1. package/data/docs/collections/firestore-paths.md +32 -20
  2. package/data/docs/enums/app-status.md +24 -0
  3. package/data/docs/enums/attention-status.md +2 -2
  4. package/data/docs/enums/booking-status.md +2 -2
  5. package/data/docs/enums/contract-status.md +24 -0
  6. package/data/docs/enums/customer-payment-status.md +2 -2
  7. package/data/docs/enums/customer-payment-target-type.md +2 -2
  8. package/data/docs/enums/delivery-type.md +2 -2
  9. package/data/docs/enums/deployment-link-type.md +2 -2
  10. package/data/docs/enums/event-status.md +2 -2
  11. package/data/docs/enums/fulfillment-status.md +2 -2
  12. package/data/docs/enums/loyalty-transaction-type.md +2 -2
  13. package/data/docs/enums/milestone-status.md +23 -0
  14. package/data/docs/enums/notification-channel.md +2 -2
  15. package/data/docs/enums/notification-entity-type.md +2 -2
  16. package/data/docs/enums/notification-status.md +2 -2
  17. package/data/docs/enums/order-status.md +2 -2
  18. package/data/docs/enums/outbound-message-format.md +2 -2
  19. package/data/docs/enums/outbound-message-purpose.md +2 -2
  20. package/data/docs/enums/outbound-message-status.md +2 -2
  21. package/data/docs/enums/payment-method.md +2 -2
  22. package/data/docs/enums/payment-proof-status.md +2 -2
  23. package/data/docs/enums/payment-status.md +2 -2
  24. package/data/docs/enums/pending-issue.md +2 -2
  25. package/data/docs/enums/return-status.md +2 -2
  26. package/data/docs/enums/session-status.md +2 -2
  27. package/data/docs/enums/site-status.md +2 -2
  28. package/data/docs/enums/stocktake-frequency.md +2 -2
  29. package/data/docs/enums/stocktake-item-status.md +2 -2
  30. package/data/docs/enums/stocktake-status.md +2 -2
  31. package/data/docs/enums/ticket-status.md +2 -2
  32. package/data/docs/enums/waba-label.md +3 -3
  33. package/data/docs/enums/whatsapp-button-sub-type.md +2 -2
  34. package/data/docs/enums/whatsapp-template-component.md +2 -2
  35. package/data/docs/enums/whatsapp-template-status.md +2 -2
  36. package/data/docs/index.md +17 -7
  37. package/data/docs/models/allowed-user.md +7 -7
  38. package/data/docs/models/analytics-backfill.md +7 -7
  39. package/data/docs/models/analytics-daily.md +6 -6
  40. package/data/docs/models/analytics-event.md +7 -7
  41. package/data/docs/models/analytics-hourly.md +6 -6
  42. package/data/docs/models/app-payment.md +200 -0
  43. package/data/docs/models/app.md +585 -0
  44. package/data/docs/models/booking-version.md +2 -2
  45. package/data/docs/models/booking.md +127 -127
  46. package/data/docs/models/contract.md +454 -0
  47. package/data/docs/models/customer-payment-allocation.md +20 -20
  48. package/data/docs/models/customer-payment.md +23 -23
  49. package/data/docs/models/customer.md +11 -11
  50. package/data/docs/models/event.md +22 -22
  51. package/data/docs/models/loyalty-config.md +4 -4
  52. package/data/docs/models/loyalty-reward.md +3 -3
  53. package/data/docs/models/loyalty-status.md +6 -6
  54. package/data/docs/models/loyalty-transaction.md +2 -2
  55. package/data/docs/models/magic-link-request.md +9 -9
  56. package/data/docs/models/metrics-current.md +169 -37
  57. package/data/docs/models/metrics-daily.md +172 -40
  58. package/data/docs/models/metrics-monthly.md +172 -40
  59. package/data/docs/models/notification-record.md +3 -3
  60. package/data/docs/models/order-item.md +6 -6
  61. package/data/docs/models/order.md +314 -294
  62. package/data/docs/models/outbound-payment-allocation.md +195 -0
  63. package/data/docs/models/outbound-payment.md +318 -0
  64. package/data/docs/models/payment-webhook-endpoint.md +191 -0
  65. package/data/docs/models/sale.md +18 -18
  66. package/data/docs/models/site-payment.md +2 -2
  67. package/data/docs/models/site.md +2 -2
  68. package/data/docs/models/stocktake-item.md +4 -4
  69. package/data/docs/models/stocktake.md +5 -5
  70. package/data/docs/models/ticket.md +3 -3
  71. package/data/docs/models/user.md +249 -0
  72. package/data/docs/models/whatsapp-inbound-message.md +6 -2
  73. package/data/docs/models/whatsapp-outbound-lifecycle-event.md +2 -2
  74. package/data/docs/models/whatsapp-outbound-message.md +43 -27
  75. package/data/docs/models/whatsapp-template.md +6 -2
  76. package/data/static/llms.txt +322 -36
  77. package/data/static/openapi.yaml +1074 -66
  78. package/data/static/schemas.json +1183 -104
  79. package/package.json +1 -1
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  title: "WhatsappInboundMessage"
3
3
  sidebar_label: "WhatsappInboundMessage"
4
- sidebar_position: 29
4
+ sidebar_position: 36
5
5
  ---
6
6
 
7
7
  # WhatsappInboundMessage
@@ -122,6 +122,10 @@ Must be one of:
122
122
  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.
123
123
  :::
124
124
 
125
+ :::note
126
+ cmz = "IngenX - Chez Miss Zahoui", phone number ID 446424085225188, used for chez_miss_zahoui_* companies. val = "IngenX - Valets", phone number ID 425582173979125, used for all other companies. Templates are approved at WABA level — if cmz and val share a WABA ID, all templates are available to both. Routing logic: functions/src/orders/order.ts#isSender2Company. See messaging/whatsapp-platform-constraints (#50).
127
+ :::
128
+
125
129
  ## <a name="messageId"></a>4. Property `messageId`
126
130
 
127
131
  | | |
@@ -366,4 +370,4 @@ Do not include in write requests. This field is set exclusively by the server (F
366
370
  Specific value: `true`
367
371
 
368
372
  ----------------------------------------------------------------------------------------------------------------------------
369
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 15:51:05 +0000
373
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 13:38:45 +0000
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  title: "WhatsappOutboundLifecycleEvent"
3
3
  sidebar_label: "WhatsappOutboundLifecycleEvent"
4
- sidebar_position: 30
4
+ sidebar_position: 37
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 15:51:06 +0000
306
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 13:38:45 +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: 31
4
+ sidebar_position: 38
5
5
  ---
6
6
 
7
7
  # WhatsappOutboundMessage
@@ -83,26 +83,26 @@ sidebar_position: 31
83
83
 
84
84
  **Description:** WhatsappOutboundMessage — Firestore-as-the-bus outbox doc (GH#43). Collection: whatsapp_outbound_messages/\{docId\}. Top-level scope; mirrors WhatsappInboundMessage. Dashboard enqueues `queued`; backend sends and owns the lifecycle.
85
85
 
86
- | Property | Pattern | Type | Deprecated | Definition | Title/Description |
87
- | ------------------------------ | ------- | ---------------- | ---------- | ---------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
88
- | - [id](#id ) | No | string or null | No | - | (Read-only) Firestore document ID — auto-generated at enqueue time. |
89
- | + [to](#to ) | No | string | No | - | (Immutable) Recipient phone number in E.164 format. Must match the inbound \`from\` for the same conversation. |
90
- | + [waba](#waba ) | No | enum (of string) | No | In #/definitions/waba-label | (Immutable) WABA that will send the message. Mirrors inbound \`waba\`. |
91
- | + [wabaId](#wabaId ) | No | string | No | - | (Immutable) Meta WABA ID. Mirrors inbound \`wabaId\`. |
92
- | + [kind](#kind ) | No | enum (of string) | No | In #/definitions/outbound-message-format | (Immutable) Message format: \`text\` or \`template\`. Set \`text\` xor \`template\` to match. |
93
- | - [text](#text ) | No | string or null | No | - | Free-form message body. Present only when kind=text. |
94
- | - [template](#template ) | No | object or null | No | - | Template send payload. Present only when kind=template. |
95
- | - [purpose](#purpose ) | No | Combination | No | - | Business purpose (otp \| review_request \| adhoc \| conversational). Optional. |
96
- | - [orderUuid](#orderUuid ) | No | string or null | No | - | Order reference. Present on review_request messages. |
97
- | + [sentBy](#sentBy ) | No | object | No | - | (Immutable) Dashboard actor who enqueued the message. |
98
- | + [createdAt](#createdAt ) | No | object | No | In #/definitions/firestore-timestamp | (Immutable) Enqueue timestamp, set by the dashboard at create. |
99
- | + [status](#status ) | No | enum (of string) | No | In #/definitions/outbound-message-status | Delivery status. Created as \`queued\` by the dashboard; updated in place by the backend. |
100
- | - [wamid](#wamid ) | No | string or null | No | - | (Read-only) WhatsApp message ID returned by Meta once the backend sends. Absent while queued or on failure. |
101
- | - [error](#error ) | No | string or null | No | - | (Read-only) Human-readable failure reason. Present on status=failed. Raw Meta error detail lives in the lifecycle_events subcollection. |
102
- | - [sentAt](#sentAt ) | No | Combination | No | - | (Read-only) When the backend sent the message to Meta. |
103
- | - [deliveredAt](#deliveredAt ) | No | Combination | No | - | (Read-only) When Meta reported delivery. |
104
- | - [readAt](#readAt ) | No | Combination | No | - | (Read-only) When Meta reported the recipient read the message. |
105
- | - [failedAt](#failedAt ) | No | Combination | No | - | (Read-only) When the send failed. |
86
+ | Property | Pattern | Type | Deprecated | Definition | Title/Description |
87
+ | ------------------------------ | ------- | ---------------- | ---------- | ---------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
88
+ | - [id](#id ) | No | string or null | No | - | (Read-only) Firestore document ID — auto-generated at enqueue time. |
89
+ | + [to](#to ) | No | string | No | - | (Immutable) Recipient Meta wa_id digits only, no leading + (e.g. 22577471485). Equal to the inbound \`from\` for the same conversation. NOT literal E.164; see x-note (#54). |
90
+ | + [waba](#waba ) | No | enum (of string) | No | In #/definitions/waba-label | (Immutable) WABA that will send the message. Mirrors inbound \`waba\`. |
91
+ | + [wabaId](#wabaId ) | No | string | No | - | (Immutable) Meta WABA ID. Mirrors inbound \`wabaId\`. |
92
+ | + [kind](#kind ) | No | enum (of string) | No | In #/definitions/outbound-message-format | (Immutable) Message format: \`text\` or \`template\`. Set \`text\` xor \`template\` to match. |
93
+ | - [text](#text ) | No | string or null | No | - | Free-form message body. Present only when kind=text. |
94
+ | - [template](#template ) | No | object or null | No | - | Template send payload. Present only when kind=template. |
95
+ | - [purpose](#purpose ) | No | Combination | No | - | Business purpose (otp \| review_request \| adhoc \| conversational). Optional. |
96
+ | - [orderUuid](#orderUuid ) | No | string or null | No | - | Order reference. Present on review_request messages. |
97
+ | + [sentBy](#sentBy ) | No | object | No | - | (Immutable) Dashboard actor who enqueued the message. |
98
+ | + [createdAt](#createdAt ) | No | object | No | In #/definitions/firestore-timestamp | (Immutable) Enqueue timestamp, set by the dashboard at create. |
99
+ | + [status](#status ) | No | enum (of string) | No | In #/definitions/outbound-message-status | Delivery status. Created as \`queued\` by the dashboard; updated in place by the backend. |
100
+ | - [wamid](#wamid ) | No | string or null | No | - | (Read-only) WhatsApp message ID returned by Meta once the backend sends. Absent while queued or on failure. |
101
+ | - [error](#error ) | No | string or null | No | - | (Read-only) Human-readable failure reason. Present on status=failed. Raw Meta error detail lives in the lifecycle_events subcollection. |
102
+ | - [sentAt](#sentAt ) | No | Combination | No | - | (Read-only) When the backend sent the message to Meta. |
103
+ | - [deliveredAt](#deliveredAt ) | No | Combination | No | - | (Read-only) When Meta reported delivery. |
104
+ | - [readAt](#readAt ) | No | Combination | No | - | (Read-only) When Meta reported the recipient read the message. |
105
+ | - [failedAt](#failedAt ) | No | Combination | No | - | (Read-only) When the send failed. |
106
106
 
107
107
  ## <a name="id"></a>1. Property `id`
108
108
 
@@ -124,12 +124,20 @@ Do not include in write requests. This field is set exclusively by the server (F
124
124
  | **Type** | `string` |
125
125
  | **Required** | Yes |
126
126
 
127
- **Description:** (Immutable) Recipient phone number in E.164 format. Must match the inbound `from` for the same conversation.
127
+ **Description:** (Immutable) Recipient Meta wa_id digits only, no leading + (e.g. 22577471485). Equal to the inbound `from` for the same conversation. NOT literal E.164; see x-note (#54).
128
128
 
129
129
  :::info Immutable
130
130
  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.
131
131
  :::
132
132
 
133
+ :::note
134
+ This is the Meta wa_id (digits only, no leading +), NOT a literal E.164 string. Meta normalizes phone numbers in non-obvious ways (e.g. +2250777471485 → wa_id 22577471485, dropping the trunk zero). The only reliable source is Meta's contacts[].wa_id from the send response — do not derive from E.164 by stripping + alone. The dashboard conversational sends and the whatsapp-server OTP path both use the wa_id form. Confirmed in prod: ING-368.
135
+ :::
136
+
137
+ :::tip When to set
138
+ Set at enqueue time to the recipient's Meta wa_id. Use inbound WhatsappInboundMessage.from (also wa_id) as the join key for the conversation thread.
139
+ :::
140
+
133
141
  ## <a name="waba"></a>3. Property `waba`
134
142
 
135
143
  | | |
@@ -148,6 +156,10 @@ Must be one of:
148
156
  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.
149
157
  :::
150
158
 
159
+ :::note
160
+ cmz = "IngenX - Chez Miss Zahoui", phone number ID 446424085225188, used for chez_miss_zahoui_* companies. val = "IngenX - Valets", phone number ID 425582173979125, used for all other companies. Templates are approved at WABA level — if cmz and val share a WABA ID, all templates are available to both. Routing logic: functions/src/orders/order.ts#isSender2Company. See messaging/whatsapp-platform-constraints (#50).
161
+ :::
162
+
151
163
  ## <a name="wabaId"></a>4. Property `wabaId`
152
164
 
153
165
  | | |
@@ -424,6 +436,10 @@ Dashboard must create with `queued`. The backend owns every transition after (se
424
436
  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.
425
437
  :::
426
438
 
439
+ :::note
440
+ Useful for audit and dedup. Does NOT enable reply-threading for template messages — Meta silently ignores context.message_id on templates. Threading only works for kind=text within the 24-hour service window (#50).
441
+ :::
442
+
427
443
  ## <a name="error"></a>14. Property `error`
428
444
 
429
445
  | | |
@@ -461,7 +477,7 @@ Do not include in write requests. This field is set exclusively by the server (F
461
477
  | **Additional properties** | Not allowed |
462
478
  | **Same definition as** | [createdAt](#createdAt) |
463
479
 
464
- **Description:** Firestore Timestamp serialized representation
480
+ **Description:** Firestore Timestamp Admin SDK form: \{ _seconds, _nanoseconds \}. See types/firestore.ts for REST API v1 and client SDK serialization notes (#10).
465
481
 
466
482
  ### <a name="sentAt_anyOf_i1"></a>15.2. Property `item 1`
467
483
 
@@ -498,7 +514,7 @@ Do not include in write requests. This field is set exclusively by the server (F
498
514
  | **Additional properties** | Not allowed |
499
515
  | **Same definition as** | [createdAt](#createdAt) |
500
516
 
501
- **Description:** Firestore Timestamp serialized representation
517
+ **Description:** Firestore Timestamp Admin SDK form: \{ _seconds, _nanoseconds \}. See types/firestore.ts for REST API v1 and client SDK serialization notes (#10).
502
518
 
503
519
  ### <a name="deliveredAt_anyOf_i1"></a>16.2. Property `item 1`
504
520
 
@@ -535,7 +551,7 @@ Do not include in write requests. This field is set exclusively by the server (F
535
551
  | **Additional properties** | Not allowed |
536
552
  | **Same definition as** | [createdAt](#createdAt) |
537
553
 
538
- **Description:** Firestore Timestamp serialized representation
554
+ **Description:** Firestore Timestamp Admin SDK form: \{ _seconds, _nanoseconds \}. See types/firestore.ts for REST API v1 and client SDK serialization notes (#10).
539
555
 
540
556
  ### <a name="readAt_anyOf_i1"></a>17.2. Property `item 1`
541
557
 
@@ -572,7 +588,7 @@ Do not include in write requests. This field is set exclusively by the server (F
572
588
  | **Additional properties** | Not allowed |
573
589
  | **Same definition as** | [createdAt](#createdAt) |
574
590
 
575
- **Description:** Firestore Timestamp serialized representation
591
+ **Description:** Firestore Timestamp Admin SDK form: \{ _seconds, _nanoseconds \}. See types/firestore.ts for REST API v1 and client SDK serialization notes (#10).
576
592
 
577
593
  ### <a name="failedAt_anyOf_i1"></a>18.2. Property `item 1`
578
594
 
@@ -582,7 +598,7 @@ Do not include in write requests. This field is set exclusively by the server (F
582
598
  | **Required** | No |
583
599
 
584
600
  ----------------------------------------------------------------------------------------------------------------------------
585
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 15:51:06 +0000
601
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 13:38:45 +0000
586
602
 
587
603
  :::warning Server-set
588
604
  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: 32
4
+ sidebar_position: 39
5
5
  ---
6
6
 
7
7
  # WhatsappTemplate
@@ -99,6 +99,10 @@ Must be one of:
99
99
  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.
100
100
  :::
101
101
 
102
+ :::note
103
+ cmz = "IngenX - Chez Miss Zahoui", phone number ID 446424085225188, used for chez_miss_zahoui_* companies. val = "IngenX - Valets", phone number ID 425582173979125, used for all other companies. Templates are approved at WABA level — if cmz and val share a WABA ID, all templates are available to both. Routing logic: functions/src/orders/order.ts#isSender2Company. See messaging/whatsapp-platform-constraints (#50).
104
+ :::
105
+
102
106
  ## <a name="wabaId"></a>3. Property `wabaId`
103
107
 
104
108
  | | |
@@ -287,7 +291,7 @@ Do not include in write requests. This field is set exclusively by the server (F
287
291
  **Description:** (Read-only) Rendered preview text for display in the dashboard picker.
288
292
 
289
293
  ----------------------------------------------------------------------------------------------------------------------------
290
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 15:51:06 +0000
294
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 13:38:45 +0000
291
295
 
292
296
  :::warning Server-set
293
297
  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.