@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.
- package/data/docs/collections/firestore-paths.md +32 -20
- package/data/docs/enums/app-status.md +24 -0
- package/data/docs/enums/attention-status.md +2 -2
- package/data/docs/enums/booking-status.md +2 -2
- package/data/docs/enums/contract-status.md +24 -0
- package/data/docs/enums/customer-payment-status.md +2 -2
- package/data/docs/enums/customer-payment-target-type.md +2 -2
- package/data/docs/enums/delivery-type.md +2 -2
- package/data/docs/enums/deployment-link-type.md +2 -2
- package/data/docs/enums/event-status.md +2 -2
- package/data/docs/enums/fulfillment-status.md +2 -2
- package/data/docs/enums/loyalty-transaction-type.md +2 -2
- package/data/docs/enums/milestone-status.md +23 -0
- package/data/docs/enums/notification-channel.md +2 -2
- package/data/docs/enums/notification-entity-type.md +2 -2
- package/data/docs/enums/notification-status.md +2 -2
- 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 +3 -3
- 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 +17 -7
- package/data/docs/models/allowed-user.md +7 -7
- package/data/docs/models/analytics-backfill.md +7 -7
- package/data/docs/models/analytics-daily.md +6 -6
- package/data/docs/models/analytics-event.md +7 -7
- package/data/docs/models/analytics-hourly.md +6 -6
- package/data/docs/models/app-payment.md +200 -0
- package/data/docs/models/app.md +585 -0
- package/data/docs/models/booking-version.md +2 -2
- package/data/docs/models/booking.md +127 -127
- package/data/docs/models/contract.md +454 -0
- package/data/docs/models/customer-payment-allocation.md +20 -20
- package/data/docs/models/customer-payment.md +23 -23
- package/data/docs/models/customer.md +11 -11
- package/data/docs/models/event.md +22 -22
- package/data/docs/models/loyalty-config.md +4 -4
- package/data/docs/models/loyalty-reward.md +3 -3
- package/data/docs/models/loyalty-status.md +6 -6
- package/data/docs/models/loyalty-transaction.md +2 -2
- package/data/docs/models/magic-link-request.md +9 -9
- package/data/docs/models/metrics-current.md +169 -37
- package/data/docs/models/metrics-daily.md +172 -40
- package/data/docs/models/metrics-monthly.md +172 -40
- package/data/docs/models/notification-record.md +3 -3
- package/data/docs/models/order-item.md +6 -6
- package/data/docs/models/order.md +314 -294
- package/data/docs/models/outbound-payment-allocation.md +195 -0
- package/data/docs/models/outbound-payment.md +318 -0
- package/data/docs/models/payment-webhook-endpoint.md +191 -0
- package/data/docs/models/sale.md +18 -18
- package/data/docs/models/site-payment.md +2 -2
- package/data/docs/models/site.md +2 -2
- package/data/docs/models/stocktake-item.md +4 -4
- package/data/docs/models/stocktake.md +5 -5
- package/data/docs/models/ticket.md +3 -3
- package/data/docs/models/user.md +249 -0
- package/data/docs/models/whatsapp-inbound-message.md +6 -2
- package/data/docs/models/whatsapp-outbound-lifecycle-event.md +2 -2
- package/data/docs/models/whatsapp-outbound-message.md +43 -27
- package/data/docs/models/whatsapp-template.md +6 -2
- package/data/static/llms.txt +322 -36
- package/data/static/openapi.yaml +1074 -66
- package/data/static/schemas.json +1183 -104
- package/package.json +1 -1
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "PaymentWebhookEndpoint"
|
|
3
|
+
sidebar_label: "PaymentWebhookEndpoint"
|
|
4
|
+
sidebar_position: 28
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# PaymentWebhookEndpoint
|
|
8
|
+
|
|
9
|
+
<details>
|
|
10
|
+
<summary>Example JSON</summary>
|
|
11
|
+
|
|
12
|
+
```json
|
|
13
|
+
{
|
|
14
|
+
"token": "token",
|
|
15
|
+
"company": "company",
|
|
16
|
+
"provider": "wave",
|
|
17
|
+
"secret": "secret",
|
|
18
|
+
"active": true,
|
|
19
|
+
"createdAt": "createdAt"
|
|
20
|
+
}
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
</details>
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
- [1. Property `token`](#token)
|
|
27
|
+
- [2. Property `company`](#company)
|
|
28
|
+
- [3. Property `provider`](#provider)
|
|
29
|
+
- [4. Property `secret`](#secret)
|
|
30
|
+
- [5. Property `active`](#active)
|
|
31
|
+
- [6. Property `createdAt`](#createdAt)
|
|
32
|
+
- [6.1. Property `firestore-timestamp`](#createdAt_anyOf_i0)
|
|
33
|
+
- [6.1.1. Property `_seconds`](#createdAt_anyOf_i0__seconds)
|
|
34
|
+
- [6.1.2. Property `_nanoseconds`](#createdAt_anyOf_i0__nanoseconds)
|
|
35
|
+
- [6.2. Property `item 1`](#createdAt_anyOf_i1)
|
|
36
|
+
|
|
37
|
+
| | |
|
|
38
|
+
| ------------------------- | -------------------------------------- |
|
|
39
|
+
| **Type** | `object` |
|
|
40
|
+
| **Required** | No |
|
|
41
|
+
| **Additional properties** | Not allowed |
|
|
42
|
+
| **Defined in** | #/definitions/payment-webhook-endpoint |
|
|
43
|
+
|
|
44
|
+
**Description:** PaymentWebhookEndpoint (GH#41). Collection: payment_webhook_endpoints/\{token\}. Top-level, not tenant-scoped. Provisioned by superadmin; used by the backend to verify inbound payment webhooks from Wave and Jeko. The delivery log collection (raw webhook payloads + verification outcomes) is tracked in GH#41 — shape TBD.
|
|
45
|
+
|
|
46
|
+
| Property | Pattern | Type | Deprecated | Definition | Title/Description |
|
|
47
|
+
| -------------------------- | ------- | ---------------- | ---------- | ---------- | ------------------------------------------------------------------------------------------------------------ |
|
|
48
|
+
| + [token](#token ) | No | string | No | - | (Immutable) base64url-encoded 24-byte random token. Also the Firestore document ID and the URL path segment. |
|
|
49
|
+
| + [company](#company ) | No | string | No | - | (Immutable) Company slug (e.g. gerko_studios). Identifies the tenant that owns this endpoint. |
|
|
50
|
+
| + [provider](#provider ) | No | enum (of string) | No | - | (Immutable) Payment provider whose webhooks this endpoint accepts. |
|
|
51
|
+
| + [secret](#secret ) | No | string | No | - | Webhook signing secret for HMAC verification. Backend-only — never returned to dashboard or mobile clients. |
|
|
52
|
+
| + [active](#active ) | No | boolean | No | - | Whether this endpoint is currently active. Inactive endpoints reject incoming webhooks. |
|
|
53
|
+
| - [createdAt](#createdAt ) | No | Combination | No | - | (Read-only) When this endpoint was provisioned. |
|
|
54
|
+
|
|
55
|
+
## <a name="token"></a>1. Property `token`
|
|
56
|
+
|
|
57
|
+
| | |
|
|
58
|
+
| ------------ | -------- |
|
|
59
|
+
| **Type** | `string` |
|
|
60
|
+
| **Required** | Yes |
|
|
61
|
+
|
|
62
|
+
**Description:** (Immutable) base64url-encoded 24-byte random token. Also the Firestore document ID and the URL path segment.
|
|
63
|
+
|
|
64
|
+
:::info Immutable
|
|
65
|
+
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.
|
|
66
|
+
:::
|
|
67
|
+
|
|
68
|
+
## <a name="company"></a>2. Property `company`
|
|
69
|
+
|
|
70
|
+
| | |
|
|
71
|
+
| ------------ | -------- |
|
|
72
|
+
| **Type** | `string` |
|
|
73
|
+
| **Required** | Yes |
|
|
74
|
+
|
|
75
|
+
**Description:** (Immutable) Company slug (e.g. gerko_studios). Identifies the tenant that owns this endpoint.
|
|
76
|
+
|
|
77
|
+
:::info Immutable
|
|
78
|
+
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.
|
|
79
|
+
:::
|
|
80
|
+
|
|
81
|
+
## <a name="provider"></a>3. Property `provider`
|
|
82
|
+
|
|
83
|
+
| | |
|
|
84
|
+
| ------------ | ------------------ |
|
|
85
|
+
| **Type** | `enum (of string)` |
|
|
86
|
+
| **Required** | Yes |
|
|
87
|
+
|
|
88
|
+
**Description:** (Immutable) Payment provider whose webhooks this endpoint accepts.
|
|
89
|
+
|
|
90
|
+
Must be one of:
|
|
91
|
+
* "wave"
|
|
92
|
+
* "jeko"
|
|
93
|
+
|
|
94
|
+
:::info Immutable
|
|
95
|
+
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.
|
|
96
|
+
:::
|
|
97
|
+
|
|
98
|
+
## <a name="secret"></a>4. Property `secret`
|
|
99
|
+
|
|
100
|
+
| | |
|
|
101
|
+
| ------------ | -------- |
|
|
102
|
+
| **Type** | `string` |
|
|
103
|
+
| **Required** | Yes |
|
|
104
|
+
|
|
105
|
+
**Description:** Webhook signing secret for HMAC verification. Backend-only — never returned to dashboard or mobile clients.
|
|
106
|
+
|
|
107
|
+
:::warning Server-set
|
|
108
|
+
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.
|
|
109
|
+
:::
|
|
110
|
+
|
|
111
|
+
:::note
|
|
112
|
+
Provider-specific webhook signing secret. Used to verify HMAC-SHA256 signatures on inbound payloads. Never expose to clients.
|
|
113
|
+
:::
|
|
114
|
+
|
|
115
|
+
## <a name="active"></a>5. Property `active`
|
|
116
|
+
|
|
117
|
+
| | |
|
|
118
|
+
| ------------ | --------- |
|
|
119
|
+
| **Type** | `boolean` |
|
|
120
|
+
| **Required** | Yes |
|
|
121
|
+
|
|
122
|
+
**Description:** Whether this endpoint is currently active. Inactive endpoints reject incoming webhooks.
|
|
123
|
+
|
|
124
|
+
## <a name="createdAt"></a>6. Property `createdAt`
|
|
125
|
+
|
|
126
|
+
| | |
|
|
127
|
+
| ------------------------- | ---------------- |
|
|
128
|
+
| **Type** | `combining` |
|
|
129
|
+
| **Required** | No |
|
|
130
|
+
| **Additional properties** | Any type allowed |
|
|
131
|
+
|
|
132
|
+
**Description:** (Read-only) When this endpoint was provisioned.
|
|
133
|
+
|
|
134
|
+
| Any of(Option) |
|
|
135
|
+
| ------------------------------------------ |
|
|
136
|
+
| [firestore-timestamp](#createdAt_anyOf_i0) |
|
|
137
|
+
| [item 1](#createdAt_anyOf_i1) |
|
|
138
|
+
|
|
139
|
+
### <a name="createdAt_anyOf_i0"></a>6.1. Property `firestore-timestamp`
|
|
140
|
+
|
|
141
|
+
| | |
|
|
142
|
+
| ------------------------- | --------------------------------- |
|
|
143
|
+
| **Type** | `object` |
|
|
144
|
+
| **Required** | No |
|
|
145
|
+
| **Additional properties** | Not allowed |
|
|
146
|
+
| **Defined in** | #/definitions/firestore-timestamp |
|
|
147
|
+
|
|
148
|
+
**Description:** Firestore Timestamp — Admin SDK form: \{ _seconds, _nanoseconds \}. See types/firestore.ts for REST API v1 and client SDK serialization notes (#10).
|
|
149
|
+
|
|
150
|
+
| Property | Pattern | Type | Deprecated | Definition | Title/Description |
|
|
151
|
+
| --------------------------------------------------- | ------- | ------- | ---------- | ---------- | ----------------- |
|
|
152
|
+
| + [_seconds](#createdAt_anyOf_i0__seconds ) | No | integer | No | - | - |
|
|
153
|
+
| + [_nanoseconds](#createdAt_anyOf_i0__nanoseconds ) | No | integer | No | - | - |
|
|
154
|
+
|
|
155
|
+
#### <a name="createdAt_anyOf_i0__seconds"></a>6.1.1. Property `_seconds`
|
|
156
|
+
|
|
157
|
+
| | |
|
|
158
|
+
| ------------ | --------- |
|
|
159
|
+
| **Type** | `integer` |
|
|
160
|
+
| **Required** | Yes |
|
|
161
|
+
|
|
162
|
+
| Restrictions | |
|
|
163
|
+
| ------------ | ---------------------- |
|
|
164
|
+
| **Minimum** | ≥ -9007199254740991 |
|
|
165
|
+
| **Maximum** | ≤ 9007199254740991 |
|
|
166
|
+
|
|
167
|
+
#### <a name="createdAt_anyOf_i0__nanoseconds"></a>6.1.2. Property `_nanoseconds`
|
|
168
|
+
|
|
169
|
+
| | |
|
|
170
|
+
| ------------ | --------- |
|
|
171
|
+
| **Type** | `integer` |
|
|
172
|
+
| **Required** | Yes |
|
|
173
|
+
|
|
174
|
+
| Restrictions | |
|
|
175
|
+
| ------------ | ---------------------- |
|
|
176
|
+
| **Minimum** | ≥ -9007199254740991 |
|
|
177
|
+
| **Maximum** | ≤ 9007199254740991 |
|
|
178
|
+
|
|
179
|
+
### <a name="createdAt_anyOf_i1"></a>6.2. Property `item 1`
|
|
180
|
+
|
|
181
|
+
| | |
|
|
182
|
+
| ------------ | ------ |
|
|
183
|
+
| **Type** | `null` |
|
|
184
|
+
| **Required** | No |
|
|
185
|
+
|
|
186
|
+
----------------------------------------------------------------------------------------------------------------------------
|
|
187
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 13:38:45 +0000
|
|
188
|
+
|
|
189
|
+
:::warning Server-set
|
|
190
|
+
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.
|
|
191
|
+
:::
|
package/data/docs/models/sale.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: "Sale"
|
|
3
3
|
sidebar_label: "Sale"
|
|
4
|
-
sidebar_position:
|
|
4
|
+
sidebar_position: 29
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Sale
|
|
@@ -77,20 +77,20 @@ sidebar_position: 23
|
|
|
77
77
|
|
|
78
78
|
**Description:** Sale/Purchase model (D06). Collection: companies/\{companyId\}/purchases/\{purchaseId\}. Code alias: SalesService. [Deprecated path: customers/\{custId\}/purchases/\{purchaseId\} — migrate to company-wide path per MIG-04/IG-5]
|
|
79
79
|
|
|
80
|
-
| Property | Pattern | Type | Deprecated | Definition | Title/Description
|
|
81
|
-
| -------------------------------- | ------- | -------------- | ---------- | ------------------------------------ |
|
|
82
|
-
| - [id](#id ) | No | string or null | No | - | (Read-only) Firestore document ID. Note: optional in current schema — some legacy docs may lack this field.
|
|
83
|
-
| - [companyId](#companyId ) | No | string or null | No | - | (Immutable) FK → Company document ID. Note: optional in current schema — should be required (see ID consistency audit).
|
|
84
|
-
| - [customerId](#customerId ) | No | string or null | No | - | FK → Customer.id (Firestore doc ID).
|
|
85
|
-
| - [customerName](#customerName ) | No | string or null | No | - | (Denormalized) From Customer.name at write time.
|
|
86
|
-
| - [amount](#amount ) | No | number or null | No | - | -
|
|
87
|
-
| - [items](#items ) | No | array or null | No | - | Line items. Reuses Order item schema.
|
|
88
|
-
| - [imageUrl](#imageUrl ) | No | string or null | No | - | -
|
|
89
|
-
| - [notes](#notes ) | No | string or null | No | - | -
|
|
90
|
-
| - [orderId](#orderId ) | No | string or null | No | - | FK → Order.id. Link to associated Order document.
|
|
91
|
-
| - [bookingId](#bookingId ) | No | string or null | No | - | FK → Booking.id. Link to associated Booking document (IG-12).
|
|
92
|
-
| + [purchaseDate](#purchaseDate ) | No | object | No | In #/definitions/firestore-timestamp | Firestore Timestamp
|
|
93
|
-
| - [createdAt](#createdAt ) | No | Combination | No | - | (Read-only) Server-generated creation timestamp.
|
|
80
|
+
| Property | Pattern | Type | Deprecated | Definition | Title/Description |
|
|
81
|
+
| -------------------------------- | ------- | -------------- | ---------- | ------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
82
|
+
| - [id](#id ) | No | string or null | No | - | (Read-only) Firestore document ID. Note: optional in current schema — some legacy docs may lack this field. |
|
|
83
|
+
| - [companyId](#companyId ) | No | string or null | No | - | (Immutable) FK → Company document ID. Note: optional in current schema — should be required (see ID consistency audit). |
|
|
84
|
+
| - [customerId](#customerId ) | No | string or null | No | - | FK → Customer.id (Firestore doc ID). |
|
|
85
|
+
| - [customerName](#customerName ) | No | string or null | No | - | (Denormalized) From Customer.name at write time. |
|
|
86
|
+
| - [amount](#amount ) | No | number or null | No | - | - |
|
|
87
|
+
| - [items](#items ) | No | array or null | No | - | Line items. Reuses Order item schema. |
|
|
88
|
+
| - [imageUrl](#imageUrl ) | No | string or null | No | - | - |
|
|
89
|
+
| - [notes](#notes ) | No | string or null | No | - | - |
|
|
90
|
+
| - [orderId](#orderId ) | No | string or null | No | - | FK → Order.id. Link to associated Order document. |
|
|
91
|
+
| - [bookingId](#bookingId ) | No | string or null | No | - | FK → Booking.id. Link to associated Booking document (IG-12). |
|
|
92
|
+
| + [purchaseDate](#purchaseDate ) | No | object | No | In #/definitions/firestore-timestamp | Firestore Timestamp — Admin SDK form: \{ _seconds, _nanoseconds \}. See types/firestore.ts for REST API v1 and client SDK serialization notes (#10). |
|
|
93
|
+
| - [createdAt](#createdAt ) | No | Combination | No | - | (Read-only) Server-generated creation timestamp. |
|
|
94
94
|
|
|
95
95
|
## <a name="id"></a>1. Property `id`
|
|
96
96
|
|
|
@@ -459,7 +459,7 @@ Set at creation only. This field cannot be modified after the document is create
|
|
|
459
459
|
| **Additional properties** | Not allowed |
|
|
460
460
|
| **Defined in** | #/definitions/firestore-timestamp |
|
|
461
461
|
|
|
462
|
-
**Description:** Firestore Timestamp
|
|
462
|
+
**Description:** Firestore Timestamp — Admin SDK form: \{ _seconds, _nanoseconds \}. See types/firestore.ts for REST API v1 and client SDK serialization notes (#10).
|
|
463
463
|
|
|
464
464
|
| Property | Pattern | Type | Deprecated | Definition | Title/Description |
|
|
465
465
|
| --------------------------------------------- | ------- | ------- | ---------- | ---------- | ----------------- |
|
|
@@ -514,7 +514,7 @@ Set at creation only. This field cannot be modified after the document is create
|
|
|
514
514
|
| **Additional properties** | Not allowed |
|
|
515
515
|
| **Same definition as** | [purchaseDate](#purchaseDate) |
|
|
516
516
|
|
|
517
|
-
**Description:** Firestore Timestamp
|
|
517
|
+
**Description:** Firestore Timestamp — Admin SDK form: \{ _seconds, _nanoseconds \}. See types/firestore.ts for REST API v1 and client SDK serialization notes (#10).
|
|
518
518
|
|
|
519
519
|
### <a name="createdAt_anyOf_i1"></a>12.2. Property `item 1`
|
|
520
520
|
|
|
@@ -524,7 +524,7 @@ Set at creation only. This field cannot be modified after the document is create
|
|
|
524
524
|
| **Required** | No |
|
|
525
525
|
|
|
526
526
|
----------------------------------------------------------------------------------------------------------------------------
|
|
527
|
-
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-
|
|
527
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 13:38:45 +0000
|
|
528
528
|
|
|
529
529
|
:::warning Server-set
|
|
530
530
|
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: "SitePayment"
|
|
3
3
|
sidebar_label: "SitePayment"
|
|
4
|
-
sidebar_position:
|
|
4
|
+
sidebar_position: 31
|
|
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-
|
|
200
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 13:38:45 +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: 30
|
|
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-
|
|
549
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 13:38:45 +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: 33
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# StocktakeItem
|
|
@@ -363,7 +363,7 @@ Read-time hint snapshot of the counter's display name (GH#29 §3 / Q10).
|
|
|
363
363
|
| **Additional properties** | Not allowed |
|
|
364
364
|
| **Defined in** | #/definitions/firestore-timestamp |
|
|
365
365
|
|
|
366
|
-
**Description:** Firestore Timestamp
|
|
366
|
+
**Description:** Firestore Timestamp — Admin SDK form: \{ _seconds, _nanoseconds \}. See types/firestore.ts for REST API v1 and client SDK serialization notes (#10).
|
|
367
367
|
|
|
368
368
|
| Property | Pattern | Type | Deprecated | Definition | Title/Description |
|
|
369
369
|
| --------------------------------------------------- | ------- | ------- | ---------- | ---------- | ----------------- |
|
|
@@ -487,7 +487,7 @@ Read-time hint snapshot of the verifier's display name (GH#29 §3 / Q10).
|
|
|
487
487
|
| **Additional properties** | Not allowed |
|
|
488
488
|
| **Same definition as** | [countedAt_anyOf_i0](#countedAt_anyOf_i0) |
|
|
489
489
|
|
|
490
|
-
**Description:** Firestore Timestamp
|
|
490
|
+
**Description:** Firestore Timestamp — Admin SDK form: \{ _seconds, _nanoseconds \}. See types/firestore.ts for REST API v1 and client SDK serialization notes (#10).
|
|
491
491
|
|
|
492
492
|
### <a name="verifiedAt_anyOf_i1"></a>16.2. Property `item 1`
|
|
493
493
|
|
|
@@ -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-
|
|
500
|
+
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: "Stocktake"
|
|
3
3
|
sidebar_label: "Stocktake"
|
|
4
|
-
sidebar_position:
|
|
4
|
+
sidebar_position: 32
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Stocktake
|
|
@@ -462,7 +462,7 @@ Server-derived = sum of (item.delta × item.costPerUnit) across COUNTED items, i
|
|
|
462
462
|
| **Additional properties** | Not allowed |
|
|
463
463
|
| **Same definition as** | [stocktakeDate](#stocktakeDate) |
|
|
464
464
|
|
|
465
|
-
**Description:** Firestore Timestamp
|
|
465
|
+
**Description:** Firestore Timestamp — Admin SDK form: \{ _seconds, _nanoseconds \}. See types/firestore.ts for REST API v1 and client SDK serialization notes (#10).
|
|
466
466
|
|
|
467
467
|
### <a name="completedAt_anyOf_i1"></a>15.2. Property `item 1`
|
|
468
468
|
|
|
@@ -503,7 +503,7 @@ Server-set on transition to COMPLETED. Distinct from stocktakeDate (the period c
|
|
|
503
503
|
| **Additional properties** | Not allowed |
|
|
504
504
|
| **Same definition as** | [stocktakeDate](#stocktakeDate) |
|
|
505
505
|
|
|
506
|
-
**Description:** Firestore Timestamp
|
|
506
|
+
**Description:** Firestore Timestamp — Admin SDK form: \{ _seconds, _nanoseconds \}. See types/firestore.ts for REST API v1 and client SDK serialization notes (#10).
|
|
507
507
|
|
|
508
508
|
### <a name="createdAt_anyOf_i1"></a>16.2. Property `item 1`
|
|
509
509
|
|
|
@@ -632,7 +632,7 @@ Read-time hint snapshot of the completer's display name (GH#29 §3 / Q10).
|
|
|
632
632
|
| **Additional properties** | Not allowed |
|
|
633
633
|
| **Same definition as** | [stocktakeDate](#stocktakeDate) |
|
|
634
634
|
|
|
635
|
-
**Description:** Firestore Timestamp
|
|
635
|
+
**Description:** Firestore Timestamp — Admin SDK form: \{ _seconds, _nanoseconds \}. See types/firestore.ts for REST API v1 and client SDK serialization notes (#10).
|
|
636
636
|
|
|
637
637
|
### <a name="updatedAt_anyOf_i1"></a>21.2. Property `item 1`
|
|
638
638
|
|
|
@@ -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-
|
|
645
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 13:38:45 +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: 34
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Ticket
|
|
@@ -208,7 +208,7 @@ Must be one of:
|
|
|
208
208
|
| **Additional properties** | Not allowed |
|
|
209
209
|
| **Defined in** | #/definitions/firestore-timestamp |
|
|
210
210
|
|
|
211
|
-
**Description:** Firestore Timestamp
|
|
211
|
+
**Description:** Firestore Timestamp — Admin SDK form: \{ _seconds, _nanoseconds \}. See types/firestore.ts for REST API v1 and client SDK serialization notes (#10).
|
|
212
212
|
|
|
213
213
|
| Property | Pattern | Type | Deprecated | Definition | Title/Description |
|
|
214
214
|
| ------------------------------------------------ | ------- | ------- | ---------- | ---------- | ----------------- |
|
|
@@ -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-
|
|
391
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 13:38:45 +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.
|
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "User"
|
|
3
|
+
sidebar_label: "User"
|
|
4
|
+
sidebar_position: 35
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# User
|
|
8
|
+
|
|
9
|
+
<details>
|
|
10
|
+
<summary>Example JSON</summary>
|
|
11
|
+
|
|
12
|
+
```json
|
|
13
|
+
{
|
|
14
|
+
"id": null,
|
|
15
|
+
"displayName": null,
|
|
16
|
+
"email": null,
|
|
17
|
+
"phoneE164": null,
|
|
18
|
+
"companyId": null,
|
|
19
|
+
"role": null,
|
|
20
|
+
"isActive": null,
|
|
21
|
+
"createdAt": "createdAt",
|
|
22
|
+
"updatedAt": "updatedAt"
|
|
23
|
+
}
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
</details>
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
- [1. Property `id`](#id)
|
|
30
|
+
- [2. Property `displayName`](#displayName)
|
|
31
|
+
- [3. Property `email`](#email)
|
|
32
|
+
- [4. Property `phoneE164`](#phoneE164)
|
|
33
|
+
- [5. Property `companyId`](#companyId)
|
|
34
|
+
- [6. Property `role`](#role)
|
|
35
|
+
- [7. Property `isActive`](#isActive)
|
|
36
|
+
- [8. Property `createdAt`](#createdAt)
|
|
37
|
+
- [8.1. Property `firestore-timestamp`](#createdAt_anyOf_i0)
|
|
38
|
+
- [8.1.1. Property `_seconds`](#createdAt_anyOf_i0__seconds)
|
|
39
|
+
- [8.1.2. Property `_nanoseconds`](#createdAt_anyOf_i0__nanoseconds)
|
|
40
|
+
- [8.2. Property `item 1`](#createdAt_anyOf_i1)
|
|
41
|
+
- [9. Property `updatedAt`](#updatedAt)
|
|
42
|
+
- [9.1. Property `firestore-timestamp`](#updatedAt_anyOf_i0)
|
|
43
|
+
- [9.2. Property `item 1`](#updatedAt_anyOf_i1)
|
|
44
|
+
|
|
45
|
+
| | |
|
|
46
|
+
| ------------------------- | ------------------ |
|
|
47
|
+
| **Type** | `object` |
|
|
48
|
+
| **Required** | No |
|
|
49
|
+
| **Additional properties** | Not allowed |
|
|
50
|
+
| **Defined in** | #/definitions/user |
|
|
51
|
+
|
|
52
|
+
**Description:** User / staff account. Collection: users/\{uid\}. Document ID is always the Firebase Auth UID (decision #27). phoneE164 is the canonical E.164 phone field for OTP lookup. Legacy phone-keyed documents must be migrated to uid-keyed docs with phoneE164 set.
|
|
53
|
+
|
|
54
|
+
| Property | Pattern | Type | Deprecated | Definition | Title/Description |
|
|
55
|
+
| ------------------------------ | ------- | --------------- | ---------- | ---------- | ------------------------------------------------------------------------------------------------------------------------------------ |
|
|
56
|
+
| - [id](#id ) | No | string or null | No | - | (Read-only) Firebase Auth UID. Matches the Firestore document ID. |
|
|
57
|
+
| - [displayName](#displayName ) | No | string or null | No | - | User display name from Firebase Auth or manually set. |
|
|
58
|
+
| - [email](#email ) | No | string or null | No | - | Email address. Present for email/Google auth users. |
|
|
59
|
+
| - [phoneE164](#phoneE164 ) | No | string or null | No | - | E.164-normalized phone number (e.g. +2250777471485). Canonical phone identity field; used for WhatsApp OTP lookup via indexed query. |
|
|
60
|
+
| - [companyId](#companyId ) | No | string or null | No | - | (Immutable) FK → Company document ID. Present for staff accounts scoped to a company. |
|
|
61
|
+
| - [role](#role ) | No | string or null | No | - | Staff role within the company (e.g. admin, manager, staff). Application-defined. |
|
|
62
|
+
| - [isActive](#isActive ) | No | boolean or null | No | - | Whether this user account is active. Inactive accounts are denied access. |
|
|
63
|
+
| - [createdAt](#createdAt ) | No | Combination | No | - | (Read-only) When the user document was created. |
|
|
64
|
+
| - [updatedAt](#updatedAt ) | No | Combination | No | - | (Read-only) When the user document was last updated. |
|
|
65
|
+
|
|
66
|
+
## <a name="id"></a>1. Property `id`
|
|
67
|
+
|
|
68
|
+
| | |
|
|
69
|
+
| ------------ | ---------------- |
|
|
70
|
+
| **Type** | `string or null` |
|
|
71
|
+
| **Required** | No |
|
|
72
|
+
|
|
73
|
+
**Description:** (Read-only) Firebase Auth UID. Matches the Firestore document ID.
|
|
74
|
+
|
|
75
|
+
:::warning Server-set
|
|
76
|
+
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.
|
|
77
|
+
:::
|
|
78
|
+
|
|
79
|
+
## <a name="displayName"></a>2. Property `displayName`
|
|
80
|
+
|
|
81
|
+
| | |
|
|
82
|
+
| ------------ | ---------------- |
|
|
83
|
+
| **Type** | `string or null` |
|
|
84
|
+
| **Required** | No |
|
|
85
|
+
|
|
86
|
+
**Description:** User display name from Firebase Auth or manually set.
|
|
87
|
+
|
|
88
|
+
## <a name="email"></a>3. Property `email`
|
|
89
|
+
|
|
90
|
+
| | |
|
|
91
|
+
| ------------ | ---------------- |
|
|
92
|
+
| **Type** | `string or null` |
|
|
93
|
+
| **Required** | No |
|
|
94
|
+
|
|
95
|
+
**Description:** Email address. Present for email/Google auth users.
|
|
96
|
+
|
|
97
|
+
## <a name="phoneE164"></a>4. Property `phoneE164`
|
|
98
|
+
|
|
99
|
+
| | |
|
|
100
|
+
| ------------ | ---------------- |
|
|
101
|
+
| **Type** | `string or null` |
|
|
102
|
+
| **Required** | No |
|
|
103
|
+
|
|
104
|
+
**Description:** E.164-normalized phone number (e.g. +2250777471485). Canonical phone identity field; used for WhatsApp OTP lookup via indexed query.
|
|
105
|
+
|
|
106
|
+
:::note
|
|
107
|
+
E.164 format with leading + (e.g. +2250777471485). Canonical phone identity field (decision #27). Distinct from wa_id (Meta conversation key). Server must normalize at write time: 8-digit CI local → prepend +225.
|
|
108
|
+
:::
|
|
109
|
+
|
|
110
|
+
:::tip When to set
|
|
111
|
+
Set when the user authenticated via phone (WhatsApp OTP) or when a staff member's phone is known. Required for WhatsApp OTP lookup — add a Firestore composite index on phoneE164.
|
|
112
|
+
:::
|
|
113
|
+
|
|
114
|
+
## <a name="companyId"></a>5. Property `companyId`
|
|
115
|
+
|
|
116
|
+
| | |
|
|
117
|
+
| ------------ | ---------------- |
|
|
118
|
+
| **Type** | `string or null` |
|
|
119
|
+
| **Required** | No |
|
|
120
|
+
|
|
121
|
+
**Description:** (Immutable) FK → Company document ID. Present for staff accounts scoped to a company.
|
|
122
|
+
|
|
123
|
+
:::info Immutable
|
|
124
|
+
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.
|
|
125
|
+
:::
|
|
126
|
+
|
|
127
|
+
## <a name="role"></a>6. Property `role`
|
|
128
|
+
|
|
129
|
+
| | |
|
|
130
|
+
| ------------ | ---------------- |
|
|
131
|
+
| **Type** | `string or null` |
|
|
132
|
+
| **Required** | No |
|
|
133
|
+
|
|
134
|
+
**Description:** Staff role within the company (e.g. admin, manager, staff). Application-defined.
|
|
135
|
+
|
|
136
|
+
## <a name="isActive"></a>7. Property `isActive`
|
|
137
|
+
|
|
138
|
+
| | |
|
|
139
|
+
| ------------ | ----------------- |
|
|
140
|
+
| **Type** | `boolean or null` |
|
|
141
|
+
| **Required** | No |
|
|
142
|
+
|
|
143
|
+
**Description:** Whether this user account is active. Inactive accounts are denied access.
|
|
144
|
+
|
|
145
|
+
## <a name="createdAt"></a>8. Property `createdAt`
|
|
146
|
+
|
|
147
|
+
| | |
|
|
148
|
+
| ------------------------- | ---------------- |
|
|
149
|
+
| **Type** | `combining` |
|
|
150
|
+
| **Required** | No |
|
|
151
|
+
| **Additional properties** | Any type allowed |
|
|
152
|
+
|
|
153
|
+
**Description:** (Read-only) When the user document was created.
|
|
154
|
+
|
|
155
|
+
| Any of(Option) |
|
|
156
|
+
| ------------------------------------------ |
|
|
157
|
+
| [firestore-timestamp](#createdAt_anyOf_i0) |
|
|
158
|
+
| [item 1](#createdAt_anyOf_i1) |
|
|
159
|
+
|
|
160
|
+
### <a name="createdAt_anyOf_i0"></a>8.1. Property `firestore-timestamp`
|
|
161
|
+
|
|
162
|
+
| | |
|
|
163
|
+
| ------------------------- | --------------------------------- |
|
|
164
|
+
| **Type** | `object` |
|
|
165
|
+
| **Required** | No |
|
|
166
|
+
| **Additional properties** | Not allowed |
|
|
167
|
+
| **Defined in** | #/definitions/firestore-timestamp |
|
|
168
|
+
|
|
169
|
+
**Description:** Firestore Timestamp — Admin SDK form: \{ _seconds, _nanoseconds \}. See types/firestore.ts for REST API v1 and client SDK serialization notes (#10).
|
|
170
|
+
|
|
171
|
+
| Property | Pattern | Type | Deprecated | Definition | Title/Description |
|
|
172
|
+
| --------------------------------------------------- | ------- | ------- | ---------- | ---------- | ----------------- |
|
|
173
|
+
| + [_seconds](#createdAt_anyOf_i0__seconds ) | No | integer | No | - | - |
|
|
174
|
+
| + [_nanoseconds](#createdAt_anyOf_i0__nanoseconds ) | No | integer | No | - | - |
|
|
175
|
+
|
|
176
|
+
#### <a name="createdAt_anyOf_i0__seconds"></a>8.1.1. Property `_seconds`
|
|
177
|
+
|
|
178
|
+
| | |
|
|
179
|
+
| ------------ | --------- |
|
|
180
|
+
| **Type** | `integer` |
|
|
181
|
+
| **Required** | Yes |
|
|
182
|
+
|
|
183
|
+
| Restrictions | |
|
|
184
|
+
| ------------ | ---------------------- |
|
|
185
|
+
| **Minimum** | ≥ -9007199254740991 |
|
|
186
|
+
| **Maximum** | ≤ 9007199254740991 |
|
|
187
|
+
|
|
188
|
+
#### <a name="createdAt_anyOf_i0__nanoseconds"></a>8.1.2. Property `_nanoseconds`
|
|
189
|
+
|
|
190
|
+
| | |
|
|
191
|
+
| ------------ | --------- |
|
|
192
|
+
| **Type** | `integer` |
|
|
193
|
+
| **Required** | Yes |
|
|
194
|
+
|
|
195
|
+
| Restrictions | |
|
|
196
|
+
| ------------ | ---------------------- |
|
|
197
|
+
| **Minimum** | ≥ -9007199254740991 |
|
|
198
|
+
| **Maximum** | ≤ 9007199254740991 |
|
|
199
|
+
|
|
200
|
+
### <a name="createdAt_anyOf_i1"></a>8.2. Property `item 1`
|
|
201
|
+
|
|
202
|
+
| | |
|
|
203
|
+
| ------------ | ------ |
|
|
204
|
+
| **Type** | `null` |
|
|
205
|
+
| **Required** | No |
|
|
206
|
+
|
|
207
|
+
:::warning Server-set
|
|
208
|
+
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.
|
|
209
|
+
:::
|
|
210
|
+
|
|
211
|
+
## <a name="updatedAt"></a>9. Property `updatedAt`
|
|
212
|
+
|
|
213
|
+
| | |
|
|
214
|
+
| ------------------------- | ---------------- |
|
|
215
|
+
| **Type** | `combining` |
|
|
216
|
+
| **Required** | No |
|
|
217
|
+
| **Additional properties** | Any type allowed |
|
|
218
|
+
|
|
219
|
+
**Description:** (Read-only) When the user document was last updated.
|
|
220
|
+
|
|
221
|
+
| Any of(Option) |
|
|
222
|
+
| ------------------------------------------ |
|
|
223
|
+
| [firestore-timestamp](#updatedAt_anyOf_i0) |
|
|
224
|
+
| [item 1](#updatedAt_anyOf_i1) |
|
|
225
|
+
|
|
226
|
+
### <a name="updatedAt_anyOf_i0"></a>9.1. Property `firestore-timestamp`
|
|
227
|
+
|
|
228
|
+
| | |
|
|
229
|
+
| ------------------------- | ----------------------------------------- |
|
|
230
|
+
| **Type** | `object` |
|
|
231
|
+
| **Required** | No |
|
|
232
|
+
| **Additional properties** | Not allowed |
|
|
233
|
+
| **Same definition as** | [createdAt_anyOf_i0](#createdAt_anyOf_i0) |
|
|
234
|
+
|
|
235
|
+
**Description:** Firestore Timestamp — Admin SDK form: \{ _seconds, _nanoseconds \}. See types/firestore.ts for REST API v1 and client SDK serialization notes (#10).
|
|
236
|
+
|
|
237
|
+
### <a name="updatedAt_anyOf_i1"></a>9.2. Property `item 1`
|
|
238
|
+
|
|
239
|
+
| | |
|
|
240
|
+
| ------------ | ------ |
|
|
241
|
+
| **Type** | `null` |
|
|
242
|
+
| **Required** | No |
|
|
243
|
+
|
|
244
|
+
----------------------------------------------------------------------------------------------------------------------------
|
|
245
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 13:38:45 +0000
|
|
246
|
+
|
|
247
|
+
:::warning Server-set
|
|
248
|
+
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.
|
|
249
|
+
:::
|