@ingenx-io/valets-schema-mcp-server 0.1.3 → 0.1.5

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 (49) hide show
  1. package/data/docs/collections/firestore-paths.md +56 -3
  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/deployment-link-type.md +26 -0
  8. package/data/docs/enums/event-status.md +2 -2
  9. package/data/docs/enums/fulfillment-status.md +2 -2
  10. package/data/docs/enums/loyalty-transaction-type.md +2 -2
  11. package/data/docs/enums/order-status.md +2 -2
  12. package/data/docs/enums/payment-method.md +2 -2
  13. package/data/docs/enums/payment-proof-status.md +2 -2
  14. package/data/docs/enums/payment-status.md +2 -2
  15. package/data/docs/enums/pending-issue.md +31 -0
  16. package/data/docs/enums/return-status.md +2 -2
  17. package/data/docs/enums/session-status.md +2 -2
  18. package/data/docs/enums/site-status.md +24 -0
  19. package/data/docs/enums/ticket-status.md +2 -2
  20. package/data/docs/index.md +15 -3
  21. package/data/docs/models/allowed-user.md +188 -0
  22. package/data/docs/models/analytics-backfill.md +398 -0
  23. package/data/docs/models/analytics-daily.md +351 -0
  24. package/data/docs/models/analytics-event.md +533 -0
  25. package/data/docs/models/analytics-hourly.md +372 -0
  26. package/data/docs/models/booking-version.md +2 -2
  27. package/data/docs/models/booking.md +2 -2
  28. package/data/docs/models/customer-payment-allocation.md +2 -2
  29. package/data/docs/models/customer-payment.md +2 -2
  30. package/data/docs/models/customer.md +2 -2
  31. package/data/docs/models/event.md +2 -2
  32. package/data/docs/models/loyalty-config.md +2 -2
  33. package/data/docs/models/loyalty-reward.md +2 -2
  34. package/data/docs/models/loyalty-status.md +2 -2
  35. package/data/docs/models/loyalty-transaction.md +2 -2
  36. package/data/docs/models/magic-link-request.md +285 -0
  37. package/data/docs/models/metrics-current.md +2 -2
  38. package/data/docs/models/metrics-daily.md +2 -2
  39. package/data/docs/models/metrics-monthly.md +2 -2
  40. package/data/docs/models/order-item.md +2 -2
  41. package/data/docs/models/order.md +248 -220
  42. package/data/docs/models/sale.md +2 -2
  43. package/data/docs/models/site-payment.md +200 -0
  44. package/data/docs/models/site.md +561 -0
  45. package/data/docs/models/ticket.md +2 -2
  46. package/data/static/llms.txt +362 -2
  47. package/data/static/openapi.yaml +1068 -0
  48. package/data/static/schemas.json +1229 -44
  49. package/package.json +1 -1
@@ -0,0 +1,188 @@
1
+ ---
2
+ title: "AllowedUser"
3
+ sidebar_label: "AllowedUser"
4
+ sidebar_position: 1
5
+ ---
6
+
7
+ # AllowedUser
8
+
9
+ <details>
10
+ <summary>Example JSON</summary>
11
+
12
+ ```json
13
+ {
14
+ "id": null,
15
+ "companyId": "comp_xyz789",
16
+ "siteId": "sit_ref123",
17
+ "contact": "contact",
18
+ "tier": "Gold",
19
+ "amount": 45000,
20
+ "currency": "XOF",
21
+ "transactionId": "tra_ref123",
22
+ "paidAt": "pai_ref123"
23
+ }
24
+ ```
25
+
26
+ </details>
27
+
28
+
29
+ - [1. Property `id`](#id)
30
+ - [2. Property `companyId`](#companyId)
31
+ - [3. Property `siteId`](#siteId)
32
+ - [4. Property `contact`](#contact)
33
+ - [5. Property `tier`](#tier)
34
+ - [6. Property `amount`](#amount)
35
+ - [7. Property `currency`](#currency)
36
+ - [8. Property `transactionId`](#transactionId)
37
+ - [9. Property `paidAt`](#paidAt)
38
+ - [9.1. Property `_seconds`](#paidAt__seconds)
39
+ - [9.2. Property `_nanoseconds`](#paidAt__nanoseconds)
40
+
41
+ | | |
42
+ | ------------------------- | -------------------------- |
43
+ | **Type** | `object` |
44
+ | **Required** | No |
45
+ | **Additional properties** | Not allowed |
46
+ | **Defined in** | #/definitions/allowed-user |
47
+
48
+ **Description:** AllowedUser model (D40 / ING-304). Collection: companies/\{companyId\}/sites/\{siteId\}/allowed_users/\{contactId\}. Authoritative paid-access allowlist. Upsert semantics — tier upgrades overwrite. Source of truth for access checks and referral code resolution.
49
+
50
+ | Property | Pattern | Type | Deprecated | Definition | Title/Description |
51
+ | ---------------------------------- | ------- | -------------- | ---------- | ------------------------------------ | ------------------------------------------------------------------------------------------------ |
52
+ | - [id](#id ) | No | string or null | No | - | (Read-only) Firestore document ID = contact identifier (email or E.164 phone), URL-escaped. |
53
+ | + [companyId](#companyId ) | No | string | No | - | (Immutable) FK → Company document ID. |
54
+ | + [siteId](#siteId ) | No | string | No | - | (Immutable) FK → Site document ID (D40 sub-tenant scope). |
55
+ | + [contact](#contact ) | No | string | No | - | Email or E.164 phone number. Canonical identifier for this user within the site. |
56
+ | + [tier](#tier ) | No | string | No | - | Access tier. Free string per site (ING-304 open question — tier values are site-specific today). |
57
+ | + [amount](#amount ) | No | number | No | - | Amount paid. Generalized from amount_xof per D40 decision. |
58
+ | + [currency](#currency ) | No | string | No | - | Currency code (ISO 4217). Defaults to XOF for legacy SR-Single parity. |
59
+ | + [transactionId](#transactionId ) | No | string | No | - | Payment provider transaction ID (e.g. Wave). |
60
+ | + [paidAt](#paidAt ) | No | object | No | In #/definitions/firestore-timestamp | RFC3339Nano UTC when payment was completed. |
61
+
62
+ ## <a name="id"></a>1. Property `id`
63
+
64
+ | | |
65
+ | ------------ | ---------------- |
66
+ | **Type** | `string or null` |
67
+ | **Required** | No |
68
+
69
+ **Description:** (Read-only) Firestore document ID = contact identifier (email or E.164 phone), URL-escaped.
70
+
71
+ :::warning Server-set
72
+ 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.
73
+ :::
74
+
75
+ ## <a name="companyId"></a>2. Property `companyId`
76
+
77
+ | | |
78
+ | ------------ | -------- |
79
+ | **Type** | `string` |
80
+ | **Required** | Yes |
81
+
82
+ **Description:** (Immutable) FK → Company document ID.
83
+
84
+ :::info Immutable
85
+ 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.
86
+ :::
87
+
88
+ ## <a name="siteId"></a>3. Property `siteId`
89
+
90
+ | | |
91
+ | ------------ | -------- |
92
+ | **Type** | `string` |
93
+ | **Required** | Yes |
94
+
95
+ **Description:** (Immutable) FK → Site document ID (D40 sub-tenant scope).
96
+
97
+ :::info Immutable
98
+ 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.
99
+ :::
100
+
101
+ ## <a name="contact"></a>4. Property `contact`
102
+
103
+ | | |
104
+ | ------------ | -------- |
105
+ | **Type** | `string` |
106
+ | **Required** | Yes |
107
+
108
+ **Description:** Email or E.164 phone number. Canonical identifier for this user within the site.
109
+
110
+ ## <a name="tier"></a>5. Property `tier`
111
+
112
+ | | |
113
+ | ------------ | -------- |
114
+ | **Type** | `string` |
115
+ | **Required** | Yes |
116
+
117
+ **Description:** Access tier. Free string per site (ING-304 open question — tier values are site-specific today).
118
+
119
+ ## <a name="amount"></a>6. Property `amount`
120
+
121
+ | | |
122
+ | ------------ | -------- |
123
+ | **Type** | `number` |
124
+ | **Required** | Yes |
125
+
126
+ **Description:** Amount paid. Generalized from amount_xof per D40 decision.
127
+
128
+ ## <a name="currency"></a>7. Property `currency`
129
+
130
+ | | |
131
+ | ------------ | -------- |
132
+ | **Type** | `string` |
133
+ | **Required** | Yes |
134
+ | **Default** | `"XOF"` |
135
+
136
+ **Description:** Currency code (ISO 4217). Defaults to XOF for legacy SR-Single parity.
137
+
138
+ ## <a name="transactionId"></a>8. Property `transactionId`
139
+
140
+ | | |
141
+ | ------------ | -------- |
142
+ | **Type** | `string` |
143
+ | **Required** | Yes |
144
+
145
+ **Description:** Payment provider transaction ID (e.g. Wave).
146
+
147
+ ## <a name="paidAt"></a>9. Property `paidAt`
148
+
149
+ | | |
150
+ | ------------------------- | --------------------------------- |
151
+ | **Type** | `object` |
152
+ | **Required** | Yes |
153
+ | **Additional properties** | Not allowed |
154
+ | **Defined in** | #/definitions/firestore-timestamp |
155
+
156
+ **Description:** RFC3339Nano UTC when payment was completed.
157
+
158
+ | Property | Pattern | Type | Deprecated | Definition | Title/Description |
159
+ | --------------------------------------- | ------- | ------- | ---------- | ---------- | ----------------- |
160
+ | + [_seconds](#paidAt__seconds ) | No | integer | No | - | - |
161
+ | + [_nanoseconds](#paidAt__nanoseconds ) | No | integer | No | - | - |
162
+
163
+ ### <a name="paidAt__seconds"></a>9.1. Property `_seconds`
164
+
165
+ | | |
166
+ | ------------ | --------- |
167
+ | **Type** | `integer` |
168
+ | **Required** | Yes |
169
+
170
+ | Restrictions | |
171
+ | ------------ | ---------------------- |
172
+ | **Minimum** | &ge; -9007199254740991 |
173
+ | **Maximum** | &le; 9007199254740991 |
174
+
175
+ ### <a name="paidAt__nanoseconds"></a>9.2. Property `_nanoseconds`
176
+
177
+ | | |
178
+ | ------------ | --------- |
179
+ | **Type** | `integer` |
180
+ | **Required** | Yes |
181
+
182
+ | Restrictions | |
183
+ | ------------ | ---------------------- |
184
+ | **Minimum** | &ge; -9007199254740991 |
185
+ | **Maximum** | &le; 9007199254740991 |
186
+
187
+ ----------------------------------------------------------------------------------------------------------------------------
188
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-04-18 at 22:24:54 +0000
@@ -0,0 +1,398 @@
1
+ ---
2
+ title: "AnalyticsBackfill"
3
+ sidebar_label: "AnalyticsBackfill"
4
+ sidebar_position: 2
5
+ ---
6
+
7
+ # AnalyticsBackfill
8
+
9
+ <details>
10
+ <summary>Example JSON</summary>
11
+
12
+ ```json
13
+ {
14
+ "id": null,
15
+ "companyId": "comp_xyz789",
16
+ "siteId": "sit_ref123",
17
+ "status": "pending",
18
+ "from": "from",
19
+ "to": "to",
20
+ "dryRun": true,
21
+ "processedDates": [
22
+ "example"
23
+ ],
24
+ "errors": [
25
+ {
26
+ "date": "2026-02-15",
27
+ "message": "message",
28
+ "at": "at"
29
+ }
30
+ ],
31
+ "triggeredBy": "triggeredBy",
32
+ "startedAt": "startedAt",
33
+ "completedAt": "completedAt"
34
+ }
35
+ ```
36
+
37
+ </details>
38
+
39
+
40
+ - [1. Property `id`](#id)
41
+ - [2. Property `companyId`](#companyId)
42
+ - [3. Property `siteId`](#siteId)
43
+ - [4. Property `status`](#status)
44
+ - [5. Property `from`](#from)
45
+ - [6. Property `to`](#to)
46
+ - [7. Property `dryRun`](#dryRun)
47
+ - [8. Property `processedDates`](#processedDates)
48
+ - [8.1. processedDates items](#processedDates_items)
49
+ - [9. Property `errors`](#errors)
50
+ - [9.1. errors items](#errors_items)
51
+ - [9.1.1. Property `date`](#errors_items_date)
52
+ - [9.1.2. Property `message`](#errors_items_message)
53
+ - [9.1.3. Property `at`](#errors_items_at)
54
+ - [9.1.3.1. Property `_seconds`](#errors_items_at__seconds)
55
+ - [9.1.3.2. Property `_nanoseconds`](#errors_items_at__nanoseconds)
56
+ - [10. Property `triggeredBy`](#triggeredBy)
57
+ - [11. Property `startedAt`](#startedAt)
58
+ - [11.1. Property `_seconds`](#errors_items_at__seconds)
59
+ - [11.2. Property `_nanoseconds`](#errors_items_at__nanoseconds)
60
+ - [12. Property `completedAt`](#completedAt)
61
+ - [12.1. Property `firestore-timestamp`](#completedAt_anyOf_i0)
62
+ - [12.2. Property `item 1`](#completedAt_anyOf_i1)
63
+
64
+ | | |
65
+ | ------------------------- | -------------------------------- |
66
+ | **Type** | `object` |
67
+ | **Required** | No |
68
+ | **Additional properties** | Not allowed |
69
+ | **Defined in** | #/definitions/analytics-backfill |
70
+
71
+ **Description:** AnalyticsBackfill run (D42 / ING-304). Collection: companies/\{companyId\}/sites/\{siteId\}/analytics_backfills/\{runId\}. Tracks admin-triggered rollup backfill jobs; supports dry-run.
72
+
73
+ | Property | Pattern | Type | Deprecated | Definition | Title/Description |
74
+ | ------------------------------------ | ------- | ---------------- | ---------- | ------------------------------------ | ----------------------------------------------------------------------------------------------- |
75
+ | - [id](#id ) | No | string or null | No | - | (Read-only) Firestore document ID, auto-generated. |
76
+ | + [companyId](#companyId ) | No | string | No | - | (Immutable) FK → Company document ID. |
77
+ | + [siteId](#siteId ) | No | string | No | - | (Immutable) FK → Site document ID (D40). |
78
+ | + [status](#status ) | No | enum (of string) | No | - | Run status. |
79
+ | + [from](#from ) | No | string | No | - | (Immutable) Inclusive start date (\`YYYY-MM-DD\`, UTC). |
80
+ | + [to](#to ) | No | string | No | - | (Immutable) Inclusive end date (\`YYYY-MM-DD\`, UTC). |
81
+ | + [dryRun](#dryRun ) | No | boolean | No | - | (Immutable) When true, rollup writes are skipped — only source counts are returned for diffing. |
82
+ | + [processedDates](#processedDates ) | No | array of string | No | - | Ordered list of \`YYYY-MM-DD\` dates already processed by this run. |
83
+ | + [errors](#errors ) | No | array of object | No | - | Per-date errors collected during the run. |
84
+ | + [triggeredBy](#triggeredBy ) | No | string | No | - | (Immutable) UID of the admin who triggered the backfill. |
85
+ | + [startedAt](#startedAt ) | No | object | No | In #/definitions/firestore-timestamp | (Read-only) When the run actually started. |
86
+ | - [completedAt](#completedAt ) | No | Combination | No | - | (Read-only) When the run reached a terminal status. |
87
+
88
+ ## <a name="id"></a>1. Property `id`
89
+
90
+ | | |
91
+ | ------------ | ---------------- |
92
+ | **Type** | `string or null` |
93
+ | **Required** | No |
94
+
95
+ **Description:** (Read-only) Firestore document ID, auto-generated.
96
+
97
+ :::warning Server-set
98
+ 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.
99
+ :::
100
+
101
+ ## <a name="companyId"></a>2. Property `companyId`
102
+
103
+ | | |
104
+ | ------------ | -------- |
105
+ | **Type** | `string` |
106
+ | **Required** | Yes |
107
+
108
+ **Description:** (Immutable) FK → Company document ID.
109
+
110
+ :::info Immutable
111
+ 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.
112
+ :::
113
+
114
+ ## <a name="siteId"></a>3. Property `siteId`
115
+
116
+ | | |
117
+ | ------------ | -------- |
118
+ | **Type** | `string` |
119
+ | **Required** | Yes |
120
+
121
+ **Description:** (Immutable) FK → Site document ID (D40).
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="status"></a>4. Property `status`
128
+
129
+ | | |
130
+ | ------------ | ------------------ |
131
+ | **Type** | `enum (of string)` |
132
+ | **Required** | Yes |
133
+
134
+ **Description:** Run status.
135
+
136
+ Must be one of:
137
+ * "pending"
138
+ * "running"
139
+ * "completed"
140
+ * "failed"
141
+ * "cancelled"
142
+
143
+ ## <a name="from"></a>5. Property `from`
144
+
145
+ | | |
146
+ | ------------ | -------- |
147
+ | **Type** | `string` |
148
+ | **Required** | Yes |
149
+
150
+ **Description:** (Immutable) Inclusive start date (`YYYY-MM-DD`, UTC).
151
+
152
+ :::info Immutable
153
+ 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.
154
+ :::
155
+
156
+ ## <a name="to"></a>6. Property `to`
157
+
158
+ | | |
159
+ | ------------ | -------- |
160
+ | **Type** | `string` |
161
+ | **Required** | Yes |
162
+
163
+ **Description:** (Immutable) Inclusive end date (`YYYY-MM-DD`, UTC).
164
+
165
+ :::info Immutable
166
+ 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.
167
+ :::
168
+
169
+ ## <a name="dryRun"></a>7. Property `dryRun`
170
+
171
+ | | |
172
+ | ------------ | --------- |
173
+ | **Type** | `boolean` |
174
+ | **Required** | Yes |
175
+
176
+ **Description:** (Immutable) When true, rollup writes are skipped — only source counts are returned for diffing.
177
+
178
+ :::info Immutable
179
+ 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.
180
+ :::
181
+
182
+ ## <a name="processedDates"></a>8. Property `processedDates`
183
+
184
+ | | |
185
+ | ------------ | ----------------- |
186
+ | **Type** | `array of string` |
187
+ | **Required** | Yes |
188
+
189
+ **Description:** Ordered list of `YYYY-MM-DD` dates already processed by this run.
190
+
191
+ | | Array restrictions |
192
+ | -------------------- | ------------------ |
193
+ | **Min items** | N/A |
194
+ | **Max items** | N/A |
195
+ | **Items unicity** | False |
196
+ | **Additional items** | False |
197
+ | **Tuple validation** | See below |
198
+
199
+ | Each item of this array must be | Description |
200
+ | --------------------------------------------- | ----------- |
201
+ | [processedDates items](#processedDates_items) | - |
202
+
203
+ ### <a name="processedDates_items"></a>8.1. processedDates items
204
+
205
+ | | |
206
+ | ------------ | -------- |
207
+ | **Type** | `string` |
208
+ | **Required** | No |
209
+
210
+ ## <a name="errors"></a>9. Property `errors`
211
+
212
+ | | |
213
+ | ------------ | ----------------- |
214
+ | **Type** | `array of object` |
215
+ | **Required** | Yes |
216
+
217
+ **Description:** Per-date errors collected during the run.
218
+
219
+ | | Array restrictions |
220
+ | -------------------- | ------------------ |
221
+ | **Min items** | N/A |
222
+ | **Max items** | N/A |
223
+ | **Items unicity** | False |
224
+ | **Additional items** | False |
225
+ | **Tuple validation** | See below |
226
+
227
+ | Each item of this array must be | Description |
228
+ | ------------------------------- | ----------- |
229
+ | [errors items](#errors_items) | - |
230
+
231
+ ### <a name="errors_items"></a>9.1. errors items
232
+
233
+ | | |
234
+ | ------------------------- | ----------- |
235
+ | **Type** | `object` |
236
+ | **Required** | No |
237
+ | **Additional properties** | Not allowed |
238
+
239
+ | Property | Pattern | Type | Deprecated | Definition | Title/Description |
240
+ | ----------------------------------- | ------- | ------ | ---------- | ------------------------------------ | ---------------------------------- |
241
+ | + [date](#errors_items_date ) | No | string | No | - | \`YYYY-MM-DD\` date that failed. |
242
+ | + [message](#errors_items_message ) | No | string | No | - | Error message captured at failure. |
243
+ | + [at](#errors_items_at ) | No | object | No | In #/definitions/firestore-timestamp | When the error occurred. |
244
+
245
+ #### <a name="errors_items_date"></a>9.1.1. Property `date`
246
+
247
+ | | |
248
+ | ------------ | -------- |
249
+ | **Type** | `string` |
250
+ | **Required** | Yes |
251
+
252
+ **Description:** `YYYY-MM-DD` date that failed.
253
+
254
+ #### <a name="errors_items_message"></a>9.1.2. Property `message`
255
+
256
+ | | |
257
+ | ------------ | -------- |
258
+ | **Type** | `string` |
259
+ | **Required** | Yes |
260
+
261
+ **Description:** Error message captured at failure.
262
+
263
+ #### <a name="errors_items_at"></a>9.1.3. Property `at`
264
+
265
+ | | |
266
+ | ------------------------- | --------------------------------- |
267
+ | **Type** | `object` |
268
+ | **Required** | Yes |
269
+ | **Additional properties** | Not allowed |
270
+ | **Defined in** | #/definitions/firestore-timestamp |
271
+
272
+ **Description:** When the error occurred.
273
+
274
+ | Property | Pattern | Type | Deprecated | Definition | Title/Description |
275
+ | ------------------------------------------------ | ------- | ------- | ---------- | ---------- | ----------------- |
276
+ | + [_seconds](#errors_items_at__seconds ) | No | integer | No | - | - |
277
+ | + [_nanoseconds](#errors_items_at__nanoseconds ) | No | integer | No | - | - |
278
+
279
+ ##### <a name="errors_items_at__seconds"></a>9.1.3.1. Property `_seconds`
280
+
281
+ | | |
282
+ | ------------ | --------- |
283
+ | **Type** | `integer` |
284
+ | **Required** | Yes |
285
+
286
+ | Restrictions | |
287
+ | ------------ | ---------------------- |
288
+ | **Minimum** | &ge; -9007199254740991 |
289
+ | **Maximum** | &le; 9007199254740991 |
290
+
291
+ ##### <a name="errors_items_at__nanoseconds"></a>9.1.3.2. Property `_nanoseconds`
292
+
293
+ | | |
294
+ | ------------ | --------- |
295
+ | **Type** | `integer` |
296
+ | **Required** | Yes |
297
+
298
+ | Restrictions | |
299
+ | ------------ | ---------------------- |
300
+ | **Minimum** | &ge; -9007199254740991 |
301
+ | **Maximum** | &le; 9007199254740991 |
302
+
303
+ ## <a name="triggeredBy"></a>10. Property `triggeredBy`
304
+
305
+ | | |
306
+ | ------------ | -------- |
307
+ | **Type** | `string` |
308
+ | **Required** | Yes |
309
+
310
+ **Description:** (Immutable) UID of the admin who triggered the backfill.
311
+
312
+ :::info Immutable
313
+ 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.
314
+ :::
315
+
316
+ ## <a name="startedAt"></a>11. Property `startedAt`
317
+
318
+ | | |
319
+ | ------------------------- | --------------------------------- |
320
+ | **Type** | `object` |
321
+ | **Required** | Yes |
322
+ | **Additional properties** | Not allowed |
323
+ | **Defined in** | #/definitions/firestore-timestamp |
324
+
325
+ **Description:** (Read-only) When the run actually started.
326
+
327
+ | Property | Pattern | Type | Deprecated | Definition | Title/Description |
328
+ | ------------------------------------------------ | ------- | ------- | ---------- | ---------- | ----------------- |
329
+ | + [_seconds](#errors_items_at__seconds ) | No | integer | No | - | - |
330
+ | + [_nanoseconds](#errors_items_at__nanoseconds ) | No | integer | No | - | - |
331
+
332
+ ### <a name="errors_items_at__seconds"></a>11.1. Property `_seconds`
333
+
334
+ | | |
335
+ | ------------ | --------- |
336
+ | **Type** | `integer` |
337
+ | **Required** | Yes |
338
+
339
+ | Restrictions | |
340
+ | ------------ | ---------------------- |
341
+ | **Minimum** | &ge; -9007199254740991 |
342
+ | **Maximum** | &le; 9007199254740991 |
343
+
344
+ ### <a name="errors_items_at__nanoseconds"></a>11.2. Property `_nanoseconds`
345
+
346
+ | | |
347
+ | ------------ | --------- |
348
+ | **Type** | `integer` |
349
+ | **Required** | Yes |
350
+
351
+ | Restrictions | |
352
+ | ------------ | ---------------------- |
353
+ | **Minimum** | &ge; -9007199254740991 |
354
+ | **Maximum** | &le; 9007199254740991 |
355
+
356
+ :::warning Server-set
357
+ 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.
358
+ :::
359
+
360
+ ## <a name="completedAt"></a>12. Property `completedAt`
361
+
362
+ | | |
363
+ | ------------------------- | ---------------- |
364
+ | **Type** | `combining` |
365
+ | **Required** | No |
366
+ | **Additional properties** | Any type allowed |
367
+
368
+ **Description:** (Read-only) When the run reached a terminal status.
369
+
370
+ | Any of(Option) |
371
+ | -------------------------------------------- |
372
+ | [firestore-timestamp](#completedAt_anyOf_i0) |
373
+ | [item 1](#completedAt_anyOf_i1) |
374
+
375
+ ### <a name="completedAt_anyOf_i0"></a>12.1. Property `firestore-timestamp`
376
+
377
+ | | |
378
+ | ------------------------- | ---------------------- |
379
+ | **Type** | `object` |
380
+ | **Required** | No |
381
+ | **Additional properties** | Not allowed |
382
+ | **Same definition as** | [at](#errors_items_at) |
383
+
384
+ **Description:** Firestore Timestamp serialized representation
385
+
386
+ ### <a name="completedAt_anyOf_i1"></a>12.2. Property `item 1`
387
+
388
+ | | |
389
+ | ------------ | ------ |
390
+ | **Type** | `null` |
391
+ | **Required** | No |
392
+
393
+ ----------------------------------------------------------------------------------------------------------------------------
394
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-04-18 at 22:24:54 +0000
395
+
396
+ :::warning Server-set
397
+ 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.
398
+ :::