@ingenx-io/valets-schema-mcp-server 0.1.3 → 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.
Files changed (43) hide show
  1. package/data/docs/collections/firestore-paths.md +21 -2
  2. package/data/docs/enums/attention-status.md +24 -0
  3. package/data/docs/enums/booking-status.md +2 -2
  4. package/data/docs/enums/customer-payment-status.md +2 -2
  5. package/data/docs/enums/customer-payment-target-type.md +2 -2
  6. package/data/docs/enums/delivery-type.md +2 -2
  7. package/data/docs/enums/event-status.md +2 -2
  8. package/data/docs/enums/fulfillment-status.md +2 -2
  9. package/data/docs/enums/loyalty-transaction-type.md +2 -2
  10. package/data/docs/enums/order-status.md +2 -2
  11. package/data/docs/enums/payment-method.md +2 -2
  12. package/data/docs/enums/payment-proof-status.md +2 -2
  13. package/data/docs/enums/payment-status.md +2 -2
  14. package/data/docs/enums/pending-issue.md +31 -0
  15. package/data/docs/enums/return-status.md +2 -2
  16. package/data/docs/enums/session-status.md +2 -2
  17. package/data/docs/enums/ticket-status.md +2 -2
  18. package/data/docs/index.md +8 -2
  19. package/data/docs/models/allowed-user.md +188 -0
  20. package/data/docs/models/analytics-event.md +533 -0
  21. package/data/docs/models/booking-version.md +2 -2
  22. package/data/docs/models/booking.md +2 -2
  23. package/data/docs/models/customer-payment-allocation.md +2 -2
  24. package/data/docs/models/customer-payment.md +2 -2
  25. package/data/docs/models/customer.md +2 -2
  26. package/data/docs/models/event.md +2 -2
  27. package/data/docs/models/loyalty-config.md +2 -2
  28. package/data/docs/models/loyalty-reward.md +2 -2
  29. package/data/docs/models/loyalty-status.md +2 -2
  30. package/data/docs/models/loyalty-transaction.md +2 -2
  31. package/data/docs/models/magic-link-request.md +285 -0
  32. package/data/docs/models/metrics-current.md +2 -2
  33. package/data/docs/models/metrics-daily.md +2 -2
  34. package/data/docs/models/metrics-monthly.md +2 -2
  35. package/data/docs/models/order-item.md +2 -2
  36. package/data/docs/models/order.md +2 -2
  37. package/data/docs/models/sale.md +2 -2
  38. package/data/docs/models/site-payment.md +200 -0
  39. package/data/docs/models/ticket.md +2 -2
  40. package/data/static/llms.txt +164 -1
  41. package/data/static/openapi.yaml +451 -0
  42. package/data/static/schemas.json +511 -44
  43. 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** | &ge; -9007199254740991 |
193
+ | **Maximum** | &le; 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** | &ge; -9007199254740991 |
205
+ | **Maximum** | &le; 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** | &ge; -9007199254740991 |
386
+ | **Maximum** | &le; 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** | &ge; -9007199254740991 |
400
+ | **Maximum** | &le; 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: 2
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-04-06 at 19:27:48 +0000
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: 1
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-04-06 at 19:27:48 +0000
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: 5
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** | &le; 9007199254740991 |
330
330
 
331
331
  ----------------------------------------------------------------------------------------------------------------------------
332
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-04-06 at 19:27:48 +0000
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
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-04-06 at 19:27:48 +0000
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: 3
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-04-06 at 19:27:48 +0000
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: 6
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-04-06 at 19:27:48 +0000
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: 7
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-04-06 at 19:27:48 +0000
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.