@ingenx-io/valets-schema-mcp-server 0.1.2 → 0.1.4
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 +22 -2
- package/data/docs/enums/attention-status.md +24 -0
- package/data/docs/enums/booking-status.md +2 -2
- 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/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/order-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 +31 -0
- package/data/docs/enums/return-status.md +2 -2
- package/data/docs/enums/session-status.md +2 -2
- package/data/docs/enums/ticket-status.md +2 -2
- package/data/docs/index.md +15 -2
- package/data/docs/models/allowed-user.md +188 -0
- package/data/docs/models/analytics-event.md +533 -0
- package/data/docs/models/booking-version.md +2 -2
- package/data/docs/models/booking.md +2 -2
- package/data/docs/models/customer-payment-allocation.md +2 -2
- package/data/docs/models/customer-payment.md +2 -2
- package/data/docs/models/customer.md +2 -2
- package/data/docs/models/event.md +2 -2
- package/data/docs/models/loyalty-config.md +2 -2
- package/data/docs/models/loyalty-reward.md +2 -2
- package/data/docs/models/loyalty-status.md +2 -2
- package/data/docs/models/loyalty-transaction.md +2 -2
- package/data/docs/models/magic-link-request.md +285 -0
- package/data/docs/models/metrics-current.md +2 -2
- package/data/docs/models/metrics-daily.md +2 -2
- package/data/docs/models/metrics-monthly.md +2 -2
- package/data/docs/models/order-item.md +2 -2
- package/data/docs/models/order.md +2 -2
- package/data/docs/models/payment-summary.md +123 -0
- package/data/docs/models/sale.md +2 -2
- package/data/docs/models/site-payment.md +200 -0
- package/data/docs/models/ticket.md +2 -2
- package/data/static/llms.txt +174 -1
- package/data/static/openapi.yaml +451 -0
- package/data/static/schemas.json +511 -1
- package/package.json +1 -1
|
@@ -0,0 +1,533 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "AnalyticsEvent"
|
|
3
|
+
sidebar_label: "AnalyticsEvent"
|
|
4
|
+
sidebar_position: 2
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# AnalyticsEvent
|
|
8
|
+
|
|
9
|
+
<details>
|
|
10
|
+
<summary>Example JSON</summary>
|
|
11
|
+
|
|
12
|
+
```json
|
|
13
|
+
{
|
|
14
|
+
"id": null,
|
|
15
|
+
"companyId": "comp_xyz789",
|
|
16
|
+
"siteId": "sit_ref123",
|
|
17
|
+
"eventId": "eve_ref123",
|
|
18
|
+
"eventName": "eventName",
|
|
19
|
+
"timestamp": "timestamp",
|
|
20
|
+
"serverTimestamp": "serverTimestamp",
|
|
21
|
+
"sessionId": "ses_ref123",
|
|
22
|
+
"userId": "use_ref123",
|
|
23
|
+
"properties": {},
|
|
24
|
+
"context": {},
|
|
25
|
+
"userTraits": null
|
|
26
|
+
}
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
</details>
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
- [1. Property `id`](#id)
|
|
33
|
+
- [2. Property `companyId`](#companyId)
|
|
34
|
+
- [3. Property `siteId`](#siteId)
|
|
35
|
+
- [4. Property `eventId`](#eventId)
|
|
36
|
+
- [5. Property `eventName`](#eventName)
|
|
37
|
+
- [6. Property `timestamp`](#timestamp)
|
|
38
|
+
- [7. Property `serverTimestamp`](#serverTimestamp)
|
|
39
|
+
- [7.1. Property `_seconds`](#serverTimestamp__seconds)
|
|
40
|
+
- [7.2. Property `_nanoseconds`](#serverTimestamp__nanoseconds)
|
|
41
|
+
- [8. Property `sessionId`](#sessionId)
|
|
42
|
+
- [9. Property `userId`](#userId)
|
|
43
|
+
- [9.1. Property `item 0`](#userId_anyOf_i0)
|
|
44
|
+
- [9.2. Property `item 1`](#userId_anyOf_i1)
|
|
45
|
+
- [10. Property `properties`](#properties)
|
|
46
|
+
- [10.1. Property `additionalProperties`](#properties_additionalProperties)
|
|
47
|
+
- [11. Property `context`](#context)
|
|
48
|
+
- [11.1. Property `url`](#context_url)
|
|
49
|
+
- [11.2. Property `origin`](#context_origin)
|
|
50
|
+
- [11.3. Property `hostname`](#context_hostname)
|
|
51
|
+
- [11.4. Property `page`](#context_page)
|
|
52
|
+
- [11.5. Property `title`](#context_title)
|
|
53
|
+
- [11.6. Property `referrer`](#context_referrer)
|
|
54
|
+
- [11.7. Property `deviceType`](#context_deviceType)
|
|
55
|
+
- [11.8. Property `platform`](#context_platform)
|
|
56
|
+
- [11.9. Property `screenWidth`](#context_screenWidth)
|
|
57
|
+
- [11.10. Property `screenHeight`](#context_screenHeight)
|
|
58
|
+
- [11.11. Property `appVersion`](#context_appVersion)
|
|
59
|
+
- [11.12. Property `online`](#context_online)
|
|
60
|
+
- [11.13. Property `locale`](#context_locale)
|
|
61
|
+
- [11.14. Property `timezone`](#context_timezone)
|
|
62
|
+
- [11.15. Property `utm`](#context_utm)
|
|
63
|
+
- [11.15.1. Property `item 0`](#context_utm_anyOf_i0)
|
|
64
|
+
- [11.15.1.1. Property `source`](#context_utm_anyOf_i0_source)
|
|
65
|
+
- [11.15.1.2. Property `medium`](#context_utm_anyOf_i0_medium)
|
|
66
|
+
- [11.15.1.3. Property `campaign`](#context_utm_anyOf_i0_campaign)
|
|
67
|
+
- [11.15.1.4. Property `term`](#context_utm_anyOf_i0_term)
|
|
68
|
+
- [11.15.1.5. Property `content`](#context_utm_anyOf_i0_content)
|
|
69
|
+
- [11.15.2. Property `item 1`](#context_utm_anyOf_i1)
|
|
70
|
+
- [12. Property `userTraits`](#userTraits)
|
|
71
|
+
- [12.1. Property `additionalProperties`](#userTraits_additionalProperties)
|
|
72
|
+
|
|
73
|
+
| | |
|
|
74
|
+
| ------------------------- | ----------------------------- |
|
|
75
|
+
| **Type** | `object` |
|
|
76
|
+
| **Required** | No |
|
|
77
|
+
| **Additional properties** | Not allowed |
|
|
78
|
+
| **Defined in** | #/definitions/analytics-event |
|
|
79
|
+
|
|
80
|
+
**Description:** AnalyticsEvent model (D40 / ING-304). Collection: companies/\{companyId\}/sites/\{siteId\}/analytics_events/\{eventId\}. Append-only, immutable product/behavior event stream. Event names are free strings; canonical vocabulary in CANONICAL_ANALYTICS_EVENT_NAMES.
|
|
81
|
+
|
|
82
|
+
| Property | Pattern | Type | Deprecated | Definition | Title/Description |
|
|
83
|
+
| -------------------------------------- | ------- | -------------- | ---------- | ------------------------------------ | ---------------------------------------------------------------------------------------------------------------- |
|
|
84
|
+
| - [id](#id ) | No | string or null | No | - | (Read-only) Firestore document ID. Equal to eventId. |
|
|
85
|
+
| + [companyId](#companyId ) | No | string | No | - | (Immutable) FK → Company document ID. |
|
|
86
|
+
| + [siteId](#siteId ) | No | string | No | - | (Immutable) FK → Site document ID (D40 sub-tenant scope). |
|
|
87
|
+
| + [eventId](#eventId ) | No | string | No | - | (Immutable) Client-generated UUID. Matches document ID. |
|
|
88
|
+
| + [eventName](#eventName ) | No | string | No | - | Event name. Free string; canonical vocabulary is encouraged (see CANONICAL_ANALYTICS_EVENT_NAMES). |
|
|
89
|
+
| + [timestamp](#timestamp ) | No | string | No | - | Client-side ISO 8601 — "when it happened on device". Can diverge from serverTimestamp for queued offline events. |
|
|
90
|
+
| + [serverTimestamp](#serverTimestamp ) | No | object | No | In #/definitions/firestore-timestamp | (Read-only) Firestore serverTimestamp() — authoritative for ordering. |
|
|
91
|
+
| + [sessionId](#sessionId ) | No | string | No | - | 30-minute rolling session identifier. |
|
|
92
|
+
| + [userId](#userId ) | No | Combination | No | - | Stable user ID if identified; explicitly null (not omitted) for anonymous sessions — simplifies querying. |
|
|
93
|
+
| + [properties](#properties ) | No | object | No | - | Free-form event-specific payload. Contract is at the event-name level. PII posture: follow-up issue pending. |
|
|
94
|
+
| + [context](#context ) | No | object | No | - | Environment context at event time (nested per D40). |
|
|
95
|
+
| - [userTraits](#userTraits ) | No | object or null | No | - | Optional — included only when includeUserTraits: true on the write. PII posture: follow-up issue pending. |
|
|
96
|
+
|
|
97
|
+
## <a name="id"></a>1. Property `id`
|
|
98
|
+
|
|
99
|
+
| | |
|
|
100
|
+
| ------------ | ---------------- |
|
|
101
|
+
| **Type** | `string or null` |
|
|
102
|
+
| **Required** | No |
|
|
103
|
+
|
|
104
|
+
**Description:** (Read-only) Firestore document ID. Equal to eventId.
|
|
105
|
+
|
|
106
|
+
:::warning Server-set
|
|
107
|
+
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.
|
|
108
|
+
:::
|
|
109
|
+
|
|
110
|
+
## <a name="companyId"></a>2. Property `companyId`
|
|
111
|
+
|
|
112
|
+
| | |
|
|
113
|
+
| ------------ | -------- |
|
|
114
|
+
| **Type** | `string` |
|
|
115
|
+
| **Required** | Yes |
|
|
116
|
+
|
|
117
|
+
**Description:** (Immutable) FK → Company document ID.
|
|
118
|
+
|
|
119
|
+
:::info Immutable
|
|
120
|
+
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.
|
|
121
|
+
:::
|
|
122
|
+
|
|
123
|
+
## <a name="siteId"></a>3. Property `siteId`
|
|
124
|
+
|
|
125
|
+
| | |
|
|
126
|
+
| ------------ | -------- |
|
|
127
|
+
| **Type** | `string` |
|
|
128
|
+
| **Required** | Yes |
|
|
129
|
+
|
|
130
|
+
**Description:** (Immutable) FK → Site document ID (D40 sub-tenant scope).
|
|
131
|
+
|
|
132
|
+
:::info Immutable
|
|
133
|
+
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.
|
|
134
|
+
:::
|
|
135
|
+
|
|
136
|
+
## <a name="eventId"></a>4. Property `eventId`
|
|
137
|
+
|
|
138
|
+
| | |
|
|
139
|
+
| ------------ | -------- |
|
|
140
|
+
| **Type** | `string` |
|
|
141
|
+
| **Required** | Yes |
|
|
142
|
+
|
|
143
|
+
**Description:** (Immutable) Client-generated UUID. Matches document ID.
|
|
144
|
+
|
|
145
|
+
:::info Immutable
|
|
146
|
+
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.
|
|
147
|
+
:::
|
|
148
|
+
|
|
149
|
+
## <a name="eventName"></a>5. Property `eventName`
|
|
150
|
+
|
|
151
|
+
| | |
|
|
152
|
+
| ------------ | -------- |
|
|
153
|
+
| **Type** | `string` |
|
|
154
|
+
| **Required** | Yes |
|
|
155
|
+
|
|
156
|
+
**Description:** Event name. Free string; canonical vocabulary is encouraged (see CANONICAL_ANALYTICS_EVENT_NAMES).
|
|
157
|
+
|
|
158
|
+
## <a name="timestamp"></a>6. Property `timestamp`
|
|
159
|
+
|
|
160
|
+
| | |
|
|
161
|
+
| ------------ | -------- |
|
|
162
|
+
| **Type** | `string` |
|
|
163
|
+
| **Required** | Yes |
|
|
164
|
+
|
|
165
|
+
**Description:** Client-side ISO 8601 — "when it happened on device". Can diverge from serverTimestamp for queued offline events.
|
|
166
|
+
|
|
167
|
+
## <a name="serverTimestamp"></a>7. Property `serverTimestamp`
|
|
168
|
+
|
|
169
|
+
| | |
|
|
170
|
+
| ------------------------- | --------------------------------- |
|
|
171
|
+
| **Type** | `object` |
|
|
172
|
+
| **Required** | Yes |
|
|
173
|
+
| **Additional properties** | Not allowed |
|
|
174
|
+
| **Defined in** | #/definitions/firestore-timestamp |
|
|
175
|
+
|
|
176
|
+
**Description:** (Read-only) Firestore serverTimestamp() — authoritative for ordering.
|
|
177
|
+
|
|
178
|
+
| Property | Pattern | Type | Deprecated | Definition | Title/Description |
|
|
179
|
+
| ------------------------------------------------ | ------- | ------- | ---------- | ---------- | ----------------- |
|
|
180
|
+
| + [_seconds](#serverTimestamp__seconds ) | No | integer | No | - | - |
|
|
181
|
+
| + [_nanoseconds](#serverTimestamp__nanoseconds ) | No | integer | No | - | - |
|
|
182
|
+
|
|
183
|
+
### <a name="serverTimestamp__seconds"></a>7.1. Property `_seconds`
|
|
184
|
+
|
|
185
|
+
| | |
|
|
186
|
+
| ------------ | --------- |
|
|
187
|
+
| **Type** | `integer` |
|
|
188
|
+
| **Required** | Yes |
|
|
189
|
+
|
|
190
|
+
| Restrictions | |
|
|
191
|
+
| ------------ | ---------------------- |
|
|
192
|
+
| **Minimum** | ≥ -9007199254740991 |
|
|
193
|
+
| **Maximum** | ≤ 9007199254740991 |
|
|
194
|
+
|
|
195
|
+
### <a name="serverTimestamp__nanoseconds"></a>7.2. Property `_nanoseconds`
|
|
196
|
+
|
|
197
|
+
| | |
|
|
198
|
+
| ------------ | --------- |
|
|
199
|
+
| **Type** | `integer` |
|
|
200
|
+
| **Required** | Yes |
|
|
201
|
+
|
|
202
|
+
| Restrictions | |
|
|
203
|
+
| ------------ | ---------------------- |
|
|
204
|
+
| **Minimum** | ≥ -9007199254740991 |
|
|
205
|
+
| **Maximum** | ≤ 9007199254740991 |
|
|
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="sessionId"></a>8. Property `sessionId`
|
|
212
|
+
|
|
213
|
+
| | |
|
|
214
|
+
| ------------ | -------- |
|
|
215
|
+
| **Type** | `string` |
|
|
216
|
+
| **Required** | Yes |
|
|
217
|
+
|
|
218
|
+
**Description:** 30-minute rolling session identifier.
|
|
219
|
+
|
|
220
|
+
## <a name="userId"></a>9. Property `userId`
|
|
221
|
+
|
|
222
|
+
| | |
|
|
223
|
+
| ------------------------- | ---------------- |
|
|
224
|
+
| **Type** | `combining` |
|
|
225
|
+
| **Required** | Yes |
|
|
226
|
+
| **Additional properties** | Any type allowed |
|
|
227
|
+
|
|
228
|
+
**Description:** Stable user ID if identified; explicitly null (not omitted) for anonymous sessions — simplifies querying.
|
|
229
|
+
|
|
230
|
+
| Any of(Option) |
|
|
231
|
+
| -------------------------- |
|
|
232
|
+
| [item 0](#userId_anyOf_i0) |
|
|
233
|
+
| [item 1](#userId_anyOf_i1) |
|
|
234
|
+
|
|
235
|
+
### <a name="userId_anyOf_i0"></a>9.1. Property `item 0`
|
|
236
|
+
|
|
237
|
+
| | |
|
|
238
|
+
| ------------ | -------- |
|
|
239
|
+
| **Type** | `string` |
|
|
240
|
+
| **Required** | No |
|
|
241
|
+
|
|
242
|
+
### <a name="userId_anyOf_i1"></a>9.2. Property `item 1`
|
|
243
|
+
|
|
244
|
+
| | |
|
|
245
|
+
| ------------ | ------ |
|
|
246
|
+
| **Type** | `null` |
|
|
247
|
+
| **Required** | No |
|
|
248
|
+
|
|
249
|
+
## <a name="properties"></a>10. Property `properties`
|
|
250
|
+
|
|
251
|
+
| | |
|
|
252
|
+
| ------------------------- | --------------------------------------------------------------------------------------- |
|
|
253
|
+
| **Type** | `object` |
|
|
254
|
+
| **Required** | Yes |
|
|
255
|
+
| **Additional properties** | [Each additional property must conform to the schema](#properties_additionalProperties) |
|
|
256
|
+
|
|
257
|
+
**Description:** Free-form event-specific payload. Contract is at the event-name level. PII posture: follow-up issue pending.
|
|
258
|
+
|
|
259
|
+
| Property | Pattern | Type | Deprecated | Definition | Title/Description |
|
|
260
|
+
| --------------------------------------- | ------- | ------ | ---------- | ---------- | ----------------- |
|
|
261
|
+
| - [](#properties_additionalProperties ) | No | object | No | - | - |
|
|
262
|
+
|
|
263
|
+
### <a name="properties_additionalProperties"></a>10.1. Property `additionalProperties`
|
|
264
|
+
|
|
265
|
+
| | |
|
|
266
|
+
| ------------------------- | ---------------- |
|
|
267
|
+
| **Type** | `object` |
|
|
268
|
+
| **Required** | No |
|
|
269
|
+
| **Additional properties** | Any type allowed |
|
|
270
|
+
|
|
271
|
+
## <a name="context"></a>11. Property `context`
|
|
272
|
+
|
|
273
|
+
| | |
|
|
274
|
+
| ------------------------- | ----------- |
|
|
275
|
+
| **Type** | `object` |
|
|
276
|
+
| **Required** | Yes |
|
|
277
|
+
| **Additional properties** | Not allowed |
|
|
278
|
+
|
|
279
|
+
**Description:** Environment context at event time (nested per D40).
|
|
280
|
+
|
|
281
|
+
| Property | Pattern | Type | Deprecated | Definition | Title/Description |
|
|
282
|
+
| ---------------------------------------- | ------- | ---------------- | ---------- | ---------- | -------------------------------------------------------- |
|
|
283
|
+
| - [url](#context_url ) | No | string | No | - | Full URL at event time. |
|
|
284
|
+
| - [origin](#context_origin ) | No | string | No | - | Protocol + host. |
|
|
285
|
+
| - [hostname](#context_hostname ) | No | string | No | - | Hostname only — useful for deployment identification. |
|
|
286
|
+
| - [page](#context_page ) | No | string | No | - | Current route/pathname. |
|
|
287
|
+
| - [title](#context_title ) | No | string | No | - | Page title. |
|
|
288
|
+
| - [referrer](#context_referrer ) | No | string | No | - | Referrer URL. |
|
|
289
|
+
| - [deviceType](#context_deviceType ) | No | enum (of string) | No | - | - |
|
|
290
|
+
| - [platform](#context_platform ) | No | string | No | - | OS/platform string. |
|
|
291
|
+
| - [screenWidth](#context_screenWidth ) | No | integer | No | - | Viewport width (flattened from screen.width). |
|
|
292
|
+
| - [screenHeight](#context_screenHeight ) | No | integer | No | - | Viewport height (flattened from screen.height). |
|
|
293
|
+
| - [appVersion](#context_appVersion ) | No | string | No | - | Consuming app version. |
|
|
294
|
+
| - [online](#context_online ) | No | boolean | No | - | Connectivity state at event time. |
|
|
295
|
+
| - [locale](#context_locale ) | No | string | No | - | User locale. |
|
|
296
|
+
| - [timezone](#context_timezone ) | No | string | No | - | IANA timezone. |
|
|
297
|
+
| - [utm](#context_utm ) | No | Combination | No | - | UTM parameters; null when not a campaign-landed session. |
|
|
298
|
+
|
|
299
|
+
### <a name="context_url"></a>11.1. Property `url`
|
|
300
|
+
|
|
301
|
+
| | |
|
|
302
|
+
| ------------ | -------- |
|
|
303
|
+
| **Type** | `string` |
|
|
304
|
+
| **Required** | No |
|
|
305
|
+
|
|
306
|
+
**Description:** Full URL at event time.
|
|
307
|
+
|
|
308
|
+
### <a name="context_origin"></a>11.2. Property `origin`
|
|
309
|
+
|
|
310
|
+
| | |
|
|
311
|
+
| ------------ | -------- |
|
|
312
|
+
| **Type** | `string` |
|
|
313
|
+
| **Required** | No |
|
|
314
|
+
|
|
315
|
+
**Description:** Protocol + host.
|
|
316
|
+
|
|
317
|
+
### <a name="context_hostname"></a>11.3. Property `hostname`
|
|
318
|
+
|
|
319
|
+
| | |
|
|
320
|
+
| ------------ | -------- |
|
|
321
|
+
| **Type** | `string` |
|
|
322
|
+
| **Required** | No |
|
|
323
|
+
|
|
324
|
+
**Description:** Hostname only — useful for deployment identification.
|
|
325
|
+
|
|
326
|
+
### <a name="context_page"></a>11.4. Property `page`
|
|
327
|
+
|
|
328
|
+
| | |
|
|
329
|
+
| ------------ | -------- |
|
|
330
|
+
| **Type** | `string` |
|
|
331
|
+
| **Required** | No |
|
|
332
|
+
|
|
333
|
+
**Description:** Current route/pathname.
|
|
334
|
+
|
|
335
|
+
### <a name="context_title"></a>11.5. Property `title`
|
|
336
|
+
|
|
337
|
+
| | |
|
|
338
|
+
| ------------ | -------- |
|
|
339
|
+
| **Type** | `string` |
|
|
340
|
+
| **Required** | No |
|
|
341
|
+
|
|
342
|
+
**Description:** Page title.
|
|
343
|
+
|
|
344
|
+
### <a name="context_referrer"></a>11.6. Property `referrer`
|
|
345
|
+
|
|
346
|
+
| | |
|
|
347
|
+
| ------------ | -------- |
|
|
348
|
+
| **Type** | `string` |
|
|
349
|
+
| **Required** | No |
|
|
350
|
+
|
|
351
|
+
**Description:** Referrer URL.
|
|
352
|
+
|
|
353
|
+
### <a name="context_deviceType"></a>11.7. Property `deviceType`
|
|
354
|
+
|
|
355
|
+
| | |
|
|
356
|
+
| ------------ | ------------------ |
|
|
357
|
+
| **Type** | `enum (of string)` |
|
|
358
|
+
| **Required** | No |
|
|
359
|
+
|
|
360
|
+
Must be one of:
|
|
361
|
+
* "mobile"
|
|
362
|
+
* "tablet"
|
|
363
|
+
* "desktop"
|
|
364
|
+
|
|
365
|
+
### <a name="context_platform"></a>11.8. Property `platform`
|
|
366
|
+
|
|
367
|
+
| | |
|
|
368
|
+
| ------------ | -------- |
|
|
369
|
+
| **Type** | `string` |
|
|
370
|
+
| **Required** | No |
|
|
371
|
+
|
|
372
|
+
**Description:** OS/platform string.
|
|
373
|
+
|
|
374
|
+
### <a name="context_screenWidth"></a>11.9. Property `screenWidth`
|
|
375
|
+
|
|
376
|
+
| | |
|
|
377
|
+
| ------------ | --------- |
|
|
378
|
+
| **Type** | `integer` |
|
|
379
|
+
| **Required** | No |
|
|
380
|
+
|
|
381
|
+
**Description:** Viewport width (flattened from screen.width).
|
|
382
|
+
|
|
383
|
+
| Restrictions | |
|
|
384
|
+
| ------------ | ---------------------- |
|
|
385
|
+
| **Minimum** | ≥ -9007199254740991 |
|
|
386
|
+
| **Maximum** | ≤ 9007199254740991 |
|
|
387
|
+
|
|
388
|
+
### <a name="context_screenHeight"></a>11.10. Property `screenHeight`
|
|
389
|
+
|
|
390
|
+
| | |
|
|
391
|
+
| ------------ | --------- |
|
|
392
|
+
| **Type** | `integer` |
|
|
393
|
+
| **Required** | No |
|
|
394
|
+
|
|
395
|
+
**Description:** Viewport height (flattened from screen.height).
|
|
396
|
+
|
|
397
|
+
| Restrictions | |
|
|
398
|
+
| ------------ | ---------------------- |
|
|
399
|
+
| **Minimum** | ≥ -9007199254740991 |
|
|
400
|
+
| **Maximum** | ≤ 9007199254740991 |
|
|
401
|
+
|
|
402
|
+
### <a name="context_appVersion"></a>11.11. Property `appVersion`
|
|
403
|
+
|
|
404
|
+
| | |
|
|
405
|
+
| ------------ | -------- |
|
|
406
|
+
| **Type** | `string` |
|
|
407
|
+
| **Required** | No |
|
|
408
|
+
|
|
409
|
+
**Description:** Consuming app version.
|
|
410
|
+
|
|
411
|
+
### <a name="context_online"></a>11.12. Property `online`
|
|
412
|
+
|
|
413
|
+
| | |
|
|
414
|
+
| ------------ | --------- |
|
|
415
|
+
| **Type** | `boolean` |
|
|
416
|
+
| **Required** | No |
|
|
417
|
+
|
|
418
|
+
**Description:** Connectivity state at event time.
|
|
419
|
+
|
|
420
|
+
### <a name="context_locale"></a>11.13. Property `locale`
|
|
421
|
+
|
|
422
|
+
| | |
|
|
423
|
+
| ------------ | -------- |
|
|
424
|
+
| **Type** | `string` |
|
|
425
|
+
| **Required** | No |
|
|
426
|
+
|
|
427
|
+
**Description:** User locale.
|
|
428
|
+
|
|
429
|
+
### <a name="context_timezone"></a>11.14. Property `timezone`
|
|
430
|
+
|
|
431
|
+
| | |
|
|
432
|
+
| ------------ | -------- |
|
|
433
|
+
| **Type** | `string` |
|
|
434
|
+
| **Required** | No |
|
|
435
|
+
|
|
436
|
+
**Description:** IANA timezone.
|
|
437
|
+
|
|
438
|
+
### <a name="context_utm"></a>11.15. Property `utm`
|
|
439
|
+
|
|
440
|
+
| | |
|
|
441
|
+
| ------------------------- | ---------------- |
|
|
442
|
+
| **Type** | `combining` |
|
|
443
|
+
| **Required** | No |
|
|
444
|
+
| **Additional properties** | Any type allowed |
|
|
445
|
+
|
|
446
|
+
**Description:** UTM parameters; null when not a campaign-landed session.
|
|
447
|
+
|
|
448
|
+
| Any of(Option) |
|
|
449
|
+
| ------------------------------- |
|
|
450
|
+
| [item 0](#context_utm_anyOf_i0) |
|
|
451
|
+
| [item 1](#context_utm_anyOf_i1) |
|
|
452
|
+
|
|
453
|
+
#### <a name="context_utm_anyOf_i0"></a>11.15.1. Property `item 0`
|
|
454
|
+
|
|
455
|
+
| | |
|
|
456
|
+
| ------------------------- | ----------- |
|
|
457
|
+
| **Type** | `object` |
|
|
458
|
+
| **Required** | No |
|
|
459
|
+
| **Additional properties** | Not allowed |
|
|
460
|
+
|
|
461
|
+
| Property | Pattern | Type | Deprecated | Definition | Title/Description |
|
|
462
|
+
| --------------------------------------------- | ------- | ------ | ---------- | ---------- | ----------------- |
|
|
463
|
+
| - [source](#context_utm_anyOf_i0_source ) | No | string | No | - | - |
|
|
464
|
+
| - [medium](#context_utm_anyOf_i0_medium ) | No | string | No | - | - |
|
|
465
|
+
| - [campaign](#context_utm_anyOf_i0_campaign ) | No | string | No | - | - |
|
|
466
|
+
| - [term](#context_utm_anyOf_i0_term ) | No | string | No | - | - |
|
|
467
|
+
| - [content](#context_utm_anyOf_i0_content ) | No | string | No | - | - |
|
|
468
|
+
|
|
469
|
+
##### <a name="context_utm_anyOf_i0_source"></a>11.15.1.1. Property `source`
|
|
470
|
+
|
|
471
|
+
| | |
|
|
472
|
+
| ------------ | -------- |
|
|
473
|
+
| **Type** | `string` |
|
|
474
|
+
| **Required** | No |
|
|
475
|
+
|
|
476
|
+
##### <a name="context_utm_anyOf_i0_medium"></a>11.15.1.2. Property `medium`
|
|
477
|
+
|
|
478
|
+
| | |
|
|
479
|
+
| ------------ | -------- |
|
|
480
|
+
| **Type** | `string` |
|
|
481
|
+
| **Required** | No |
|
|
482
|
+
|
|
483
|
+
##### <a name="context_utm_anyOf_i0_campaign"></a>11.15.1.3. Property `campaign`
|
|
484
|
+
|
|
485
|
+
| | |
|
|
486
|
+
| ------------ | -------- |
|
|
487
|
+
| **Type** | `string` |
|
|
488
|
+
| **Required** | No |
|
|
489
|
+
|
|
490
|
+
##### <a name="context_utm_anyOf_i0_term"></a>11.15.1.4. Property `term`
|
|
491
|
+
|
|
492
|
+
| | |
|
|
493
|
+
| ------------ | -------- |
|
|
494
|
+
| **Type** | `string` |
|
|
495
|
+
| **Required** | No |
|
|
496
|
+
|
|
497
|
+
##### <a name="context_utm_anyOf_i0_content"></a>11.15.1.5. Property `content`
|
|
498
|
+
|
|
499
|
+
| | |
|
|
500
|
+
| ------------ | -------- |
|
|
501
|
+
| **Type** | `string` |
|
|
502
|
+
| **Required** | No |
|
|
503
|
+
|
|
504
|
+
#### <a name="context_utm_anyOf_i1"></a>11.15.2. Property `item 1`
|
|
505
|
+
|
|
506
|
+
| | |
|
|
507
|
+
| ------------ | ------ |
|
|
508
|
+
| **Type** | `null` |
|
|
509
|
+
| **Required** | No |
|
|
510
|
+
|
|
511
|
+
## <a name="userTraits"></a>12. Property `userTraits`
|
|
512
|
+
|
|
513
|
+
| | |
|
|
514
|
+
| ------------ | ---------------- |
|
|
515
|
+
| **Type** | `object or null` |
|
|
516
|
+
| **Required** | No |
|
|
517
|
+
|
|
518
|
+
**Description:** Optional — included only when includeUserTraits: true on the write. PII posture: follow-up issue pending.
|
|
519
|
+
|
|
520
|
+
| Property | Pattern | Type | Deprecated | Definition | Title/Description |
|
|
521
|
+
| --------------------------------------- | ------- | ------ | ---------- | ---------- | ----------------- |
|
|
522
|
+
| - [](#userTraits_additionalProperties ) | No | object | No | - | - |
|
|
523
|
+
|
|
524
|
+
### <a name="userTraits_additionalProperties"></a>12.1. Property `additionalProperties`
|
|
525
|
+
|
|
526
|
+
| | |
|
|
527
|
+
| ------------------------- | ---------------- |
|
|
528
|
+
| **Type** | `object` |
|
|
529
|
+
| **Required** | No |
|
|
530
|
+
| **Additional properties** | Any type allowed |
|
|
531
|
+
|
|
532
|
+
----------------------------------------------------------------------------------------------------------------------------
|
|
533
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-04-18 at 21:21:09 +0000
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: "BookingVersion"
|
|
3
3
|
sidebar_label: "BookingVersion"
|
|
4
|
-
sidebar_position:
|
|
4
|
+
sidebar_position: 4
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# BookingVersion
|
|
@@ -270,7 +270,7 @@ Dot-notation paths for nested fields (e.g. "bookingDates.0.status"). Populated b
|
|
|
270
270
|
| **Additional properties** | Any type allowed |
|
|
271
271
|
|
|
272
272
|
----------------------------------------------------------------------------------------------------------------------------
|
|
273
|
-
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-
|
|
273
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-04-18 at 21:21:09 +0000
|
|
274
274
|
|
|
275
275
|
:::warning Server-set
|
|
276
276
|
Do not include in write requests. This field is set exclusively by the server (Firestore trigger or Admin SDK). Clients that send it will have the value silently ignored or may receive a validation error.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: "Booking"
|
|
3
3
|
sidebar_label: "Booking"
|
|
4
|
-
sidebar_position:
|
|
4
|
+
sidebar_position: 3
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Booking
|
|
@@ -1739,7 +1739,7 @@ Set at creation only. This field cannot be modified after the document is create
|
|
|
1739
1739
|
**Description:** When true, suppresses Firebase notification triggers (D20/IG-8).
|
|
1740
1740
|
|
|
1741
1741
|
----------------------------------------------------------------------------------------------------------------------------
|
|
1742
|
-
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-
|
|
1742
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-04-18 at 21:21:09 +0000
|
|
1743
1743
|
|
|
1744
1744
|
## Related Decisions
|
|
1745
1745
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: "CustomerPaymentAllocation"
|
|
3
3
|
sidebar_label: "CustomerPaymentAllocation"
|
|
4
|
-
sidebar_position:
|
|
4
|
+
sidebar_position: 7
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# CustomerPaymentAllocation
|
|
@@ -329,7 +329,7 @@ Set at creation only. This field cannot be modified after the document is create
|
|
|
329
329
|
| **Maximum** | ≤ 9007199254740991 |
|
|
330
330
|
|
|
331
331
|
----------------------------------------------------------------------------------------------------------------------------
|
|
332
|
-
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-
|
|
332
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-04-18 at 21:21:09 +0000
|
|
333
333
|
|
|
334
334
|
:::warning Server-set
|
|
335
335
|
Do not include in write requests. This field is set exclusively by the server (Firestore trigger or Admin SDK). Clients that send it will have the value silently ignored or may receive a validation error.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: "CustomerPayment"
|
|
3
3
|
sidebar_label: "CustomerPayment"
|
|
4
|
-
sidebar_position:
|
|
4
|
+
sidebar_position: 6
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# CustomerPayment
|
|
@@ -379,7 +379,7 @@ Do not include in write requests. This field is set exclusively by the server (F
|
|
|
379
379
|
| **Required** | No |
|
|
380
380
|
|
|
381
381
|
----------------------------------------------------------------------------------------------------------------------------
|
|
382
|
-
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-
|
|
382
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-04-18 at 21:21:09 +0000
|
|
383
383
|
|
|
384
384
|
:::warning Server-set
|
|
385
385
|
Do not include in write requests. This field is set exclusively by the server (Firestore trigger or Admin SDK). Clients that send it will have the value silently ignored or may receive a validation error.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: "Customer"
|
|
3
3
|
sidebar_label: "Customer"
|
|
4
|
-
sidebar_position:
|
|
4
|
+
sidebar_position: 5
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Customer
|
|
@@ -459,7 +459,7 @@ Do not include in write requests. This field is set exclusively by the server (F
|
|
|
459
459
|
**Description:** (Read-only, Denormalized) Derived summary from loyalty/status subcollection (D08). Source of truth is LoyaltyStatus.pointsBalance.
|
|
460
460
|
|
|
461
461
|
----------------------------------------------------------------------------------------------------------------------------
|
|
462
|
-
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-
|
|
462
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-04-18 at 21:21:09 +0000
|
|
463
463
|
|
|
464
464
|
:::warning Server-set
|
|
465
465
|
Do not include in write requests. This field is set exclusively by the server (Firestore trigger or Admin SDK). Clients that send it will have the value silently ignored or may receive a validation error.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: "Event"
|
|
3
3
|
sidebar_label: "Event"
|
|
4
|
-
sidebar_position:
|
|
4
|
+
sidebar_position: 8
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Event
|
|
@@ -372,7 +372,7 @@ Do not include in write requests. This field is set exclusively by the server (F
|
|
|
372
372
|
**Description:** (Immutable) FK → User/staff UID who created this event.
|
|
373
373
|
|
|
374
374
|
----------------------------------------------------------------------------------------------------------------------------
|
|
375
|
-
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-
|
|
375
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-04-18 at 21:21:09 +0000
|
|
376
376
|
|
|
377
377
|
:::info Immutable
|
|
378
378
|
Set at creation only. This field cannot be modified after the document is created. Include it in CREATE payloads; omit it (or leave unchanged) in UPDATE payloads.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: "LoyaltyConfig"
|
|
3
3
|
sidebar_label: "LoyaltyConfig"
|
|
4
|
-
sidebar_position:
|
|
4
|
+
sidebar_position: 9
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# LoyaltyConfig
|
|
@@ -304,7 +304,7 @@ Do not include in write requests. This field is set exclusively by the server (F
|
|
|
304
304
|
| **Required** | No |
|
|
305
305
|
|
|
306
306
|
----------------------------------------------------------------------------------------------------------------------------
|
|
307
|
-
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-
|
|
307
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-04-18 at 21:21:09 +0000
|
|
308
308
|
|
|
309
309
|
:::warning Server-set
|
|
310
310
|
Do not include in write requests. This field is set exclusively by the server (Firestore trigger or Admin SDK). Clients that send it will have the value silently ignored or may receive a validation error.
|