@ingenx-io/valets-schema-mcp-server 0.1.4 → 0.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/data/docs/collections/firestore-paths.md +42 -8
  2. package/data/docs/enums/attention-status.md +1 -1
  3. package/data/docs/enums/booking-status.md +1 -1
  4. package/data/docs/enums/customer-payment-status.md +1 -1
  5. package/data/docs/enums/customer-payment-target-type.md +1 -1
  6. package/data/docs/enums/delivery-type.md +1 -1
  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 +2 -2
  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/stocktake-frequency.md +24 -0
  20. package/data/docs/enums/stocktake-item-status.md +24 -0
  21. package/data/docs/enums/stocktake-status.md +24 -0
  22. package/data/docs/enums/ticket-status.md +2 -2
  23. package/data/docs/index.md +14 -3
  24. package/data/docs/models/allowed-user.md +1 -1
  25. package/data/docs/models/analytics-backfill.md +398 -0
  26. package/data/docs/models/analytics-daily.md +351 -0
  27. package/data/docs/models/analytics-event.md +2 -2
  28. package/data/docs/models/analytics-hourly.md +372 -0
  29. package/data/docs/models/booking-version.md +2 -2
  30. package/data/docs/models/booking.md +2 -2
  31. package/data/docs/models/customer-payment-allocation.md +2 -2
  32. package/data/docs/models/customer-payment.md +2 -2
  33. package/data/docs/models/customer.md +2 -2
  34. package/data/docs/models/event.md +2 -2
  35. package/data/docs/models/loyalty-config.md +2 -2
  36. package/data/docs/models/loyalty-reward.md +2 -2
  37. package/data/docs/models/loyalty-status.md +2 -2
  38. package/data/docs/models/loyalty-transaction.md +2 -2
  39. package/data/docs/models/magic-link-request.md +2 -2
  40. package/data/docs/models/metrics-current.md +2 -2
  41. package/data/docs/models/metrics-daily.md +2 -2
  42. package/data/docs/models/metrics-monthly.md +2 -2
  43. package/data/docs/models/order-item.md +2 -2
  44. package/data/docs/models/order.md +248 -220
  45. package/data/docs/models/sale.md +2 -2
  46. package/data/docs/models/site-payment.md +2 -2
  47. package/data/docs/models/site.md +561 -0
  48. package/data/docs/models/stocktake-item.md +500 -0
  49. package/data/docs/models/stocktake.md +649 -0
  50. package/data/docs/models/ticket.md +2 -2
  51. package/data/static/llms.txt +309 -2
  52. package/data/static/openapi.yaml +972 -0
  53. package/data/static/schemas.json +1249 -77
  54. package/package.json +1 -1
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  title: "Order"
3
3
  sidebar_label: "Order"
4
- sidebar_position: 17
4
+ sidebar_position: 20
5
5
  ---
6
6
 
7
7
  # Order
@@ -14,6 +14,7 @@ sidebar_position: 17
14
14
  "id": "bk_abc123def456",
15
15
  "uid": "user_u8x92kqm",
16
16
  "companyId": "comp_xyz789",
17
+ "siteId": null,
17
18
  "orderNumber": "ORD-2026-0042",
18
19
  "status": "status",
19
20
  "paymentStatus": "paymentStatus",
@@ -67,115 +68,116 @@ sidebar_position: 17
67
68
  - [1. Property `id`](#id)
68
69
  - [2. Property `uid`](#uid)
69
70
  - [3. Property `companyId`](#companyId)
70
- - [4. Property `orderNumber`](#orderNumber)
71
- - [5. Property `status`](#status)
72
- - [6. Property `paymentStatus`](#paymentStatus)
73
- - [6.1. Property `payment-status`](#paymentStatus_anyOf_i0)
74
- - [6.2. Property `item 1`](#paymentStatus_anyOf_i1)
75
- - [7. Property `fulfillmentStatus`](#fulfillmentStatus)
76
- - [7.1. Property `fulfillment-status`](#fulfillmentStatus_anyOf_i0)
77
- - [7.2. Property `item 1`](#fulfillmentStatus_anyOf_i1)
78
- - [8. Property `returnStatus`](#returnStatus)
79
- - [8.1. Property `return-status`](#returnStatus_anyOf_i0)
80
- - [8.2. Property `item 1`](#returnStatus_anyOf_i1)
81
- - [9. Property `deliveryType`](#deliveryType)
82
- - [9.1. Property `delivery-type`](#deliveryType_anyOf_i0)
83
- - [9.2. Property `item 1`](#deliveryType_anyOf_i1)
84
- - [10. Property `paymentMethod`](#paymentMethod)
85
- - [10.1. Property `payment-method`](#paymentMethod_anyOf_i0)
86
- - [10.2. Property `item 1`](#paymentMethod_anyOf_i1)
87
- - [11. Property `invoiceId`](#invoiceId)
88
- - [12. Property `customerId`](#customerId)
89
- - [13. Property `customerName`](#customerName)
90
- - [14. Property `customerEmail`](#customerEmail)
91
- - [15. Property `customerPhone`](#customerPhone)
92
- - [16. Property `clientEmail`](#clientEmail)
93
- - [17. Property `clientPhoneNumber`](#clientPhoneNumber)
94
- - [18. Property `items`](#items)
95
- - [18.1. order-item](#items_items)
96
- - [18.1.1. Property `name`](#items_items_name)
97
- - [18.1.2. Property `quantity`](#items_items_quantity)
98
- - [18.1.3. Property `price`](#items_items_price)
99
- - [18.1.4. Property `productId`](#items_items_productId)
100
- - [18.1.5. Property `increment`](#items_items_increment)
101
- - [18.1.6. Property `variantId`](#items_items_variantId)
102
- - [18.1.7. Property `supplierId`](#items_items_supplierId)
103
- - [18.1.8. Property `supplierName`](#items_items_supplierName)
104
- - [18.1.9. Property `sentAt`](#items_items_sentAt)
105
- - [18.1.9.1. Property `_seconds`](#items_items_sentAt__seconds)
106
- - [18.1.9.2. Property `_nanoseconds`](#items_items_sentAt__nanoseconds)
107
- - [18.1.10. Property `startedCookingAt`](#items_items_startedCookingAt)
108
- - [18.1.10.1. Property `_seconds`](#items_items_startedCookingAt__seconds)
109
- - [18.1.10.2. Property `_nanoseconds`](#items_items_startedCookingAt__nanoseconds)
110
- - [18.1.11. Property `readyAt`](#items_items_readyAt)
111
- - [18.1.11.1. Property `_seconds`](#items_items_readyAt__seconds)
112
- - [18.1.11.2. Property `_nanoseconds`](#items_items_readyAt__nanoseconds)
113
- - [18.1.12. Property `servedAt`](#items_items_servedAt)
114
- - [18.1.12.1. Property `_seconds`](#items_items_servedAt__seconds)
115
- - [18.1.12.2. Property `_nanoseconds`](#items_items_servedAt__nanoseconds)
116
- - [19. Property `amount`](#amount)
117
- - [20. Property `amountPaid`](#amountPaid)
118
- - [21. Property `total`](#total)
119
- - [22. Property `createdAt`](#createdAt)
120
- - [22.1. Property `_seconds`](#createdAt__seconds)
121
- - [22.2. Property `_nanoseconds`](#createdAt__nanoseconds)
122
- - [23. Property `orderDate`](#orderDate)
123
- - [24. Property `PROCESSING_ON`](#PROCESSING_ON)
124
- - [24.1. Property `firestore-timestamp`](#PROCESSING_ON_anyOf_i0)
125
- - [24.2. Property `item 1`](#PROCESSING_ON_anyOf_i1)
126
- - [25. Property `COMPLETED_ON`](#COMPLETED_ON)
127
- - [25.1. Property `firestore-timestamp`](#COMPLETED_ON_anyOf_i0)
128
- - [25.2. Property `item 1`](#COMPLETED_ON_anyOf_i1)
129
- - [26. Property `CANCELLED_ON`](#CANCELLED_ON)
130
- - [26.1. Property `firestore-timestamp`](#CANCELLED_ON_anyOf_i0)
131
- - [26.2. Property `item 1`](#CANCELLED_ON_anyOf_i1)
132
- - [27. Property `cancellationReason`](#cancellationReason)
133
- - [28. Property `shippingCarrier`](#shippingCarrier)
134
- - [29. Property `trackingNumber`](#trackingNumber)
135
- - [30. Property `estimatedDeliveryDate`](#estimatedDeliveryDate)
136
- - [30.1. Property `firestore-timestamp`](#estimatedDeliveryDate_anyOf_i0)
137
- - [30.2. Property `item 1`](#estimatedDeliveryDate_anyOf_i1)
138
- - [31. Property `shippingCost`](#shippingCost)
139
- - [32. Property `paymentProofUrl`](#paymentProofUrl)
140
- - [33. Property `paymentProofStatus`](#paymentProofStatus)
141
- - [33.1. Property `payment-proof-status`](#paymentProofStatus_anyOf_i0)
142
- - [33.2. Property `item 1`](#paymentProofStatus_anyOf_i1)
143
- - [34. Property `paymentProofAddedAt`](#paymentProofAddedAt)
144
- - [34.1. Property `firestore-timestamp`](#paymentProofAddedAt_anyOf_i0)
145
- - [34.2. Property `item 1`](#paymentProofAddedAt_anyOf_i1)
146
- - [35. Property `paymentProofAddedBy`](#paymentProofAddedBy)
147
- - [36. Property `paymentProofReviewedAt`](#paymentProofReviewedAt)
148
- - [36.1. Property `firestore-timestamp`](#paymentProofReviewedAt_anyOf_i0)
149
- - [36.2. Property `item 1`](#paymentProofReviewedAt_anyOf_i1)
150
- - [37. Property `paymentProofReviewedBy`](#paymentProofReviewedBy)
151
- - [38. Property `paymentProofRejectionReason`](#paymentProofRejectionReason)
152
- - [39. Property `paymentStatusChangeReason`](#paymentStatusChangeReason)
153
- - [40. Property `paymentStatusChangedBy`](#paymentStatusChangedBy)
154
- - [41. Property `paymentStatusChangedAt`](#paymentStatusChangedAt)
155
- - [41.1. Property `firestore-timestamp`](#paymentStatusChangedAt_anyOf_i0)
156
- - [41.2. Property `item 1`](#paymentStatusChangedAt_anyOf_i1)
157
- - [42. Property `payments`](#payments)
158
- - [42.1. payments items](#payments_items)
159
- - [42.1.1. Property `paymentId`](#payments_items_paymentId)
160
- - [42.1.2. Property `amount`](#payments_items_amount)
161
- - [42.1.3. Property `currency`](#payments_items_currency)
162
- - [42.1.4. Property `paymentMethod`](#payments_items_paymentMethod)
163
- - [42.1.5. Property `paymentDate`](#payments_items_paymentDate)
164
- - [42.1.6. Property `referenceNumber`](#payments_items_referenceNumber)
165
- - [42.1.7. Property `status`](#payments_items_status)
166
- - [43. Property `totalOverridden`](#totalOverridden)
167
- - [44. Property `notes`](#notes)
168
- - [44.1. notes items](#notes_items)
169
- - [44.1.1. Property `id`](#notes_items_id)
170
- - [44.1.2. Property `text`](#notes_items_text)
171
- - [44.1.3. Property `createdAt`](#notes_items_createdAt)
172
- - [44.1.3.1. Property `_seconds`](#createdAt__seconds)
173
- - [44.1.3.2. Property `_nanoseconds`](#createdAt__nanoseconds)
174
- - [44.1.4. Property `createdBy`](#notes_items_createdBy)
175
- - [44.1.5. Property `createdByName`](#notes_items_createdByName)
176
- - [45. Property `additionalInfo`](#additionalInfo)
177
- - [46. Property `appliedDiscountCode`](#appliedDiscountCode)
178
- - [47. Property `purchaseId`](#purchaseId)
71
+ - [4. Property `siteId`](#siteId)
72
+ - [5. Property `orderNumber`](#orderNumber)
73
+ - [6. Property `status`](#status)
74
+ - [7. Property `paymentStatus`](#paymentStatus)
75
+ - [7.1. Property `payment-status`](#paymentStatus_anyOf_i0)
76
+ - [7.2. Property `item 1`](#paymentStatus_anyOf_i1)
77
+ - [8. Property `fulfillmentStatus`](#fulfillmentStatus)
78
+ - [8.1. Property `fulfillment-status`](#fulfillmentStatus_anyOf_i0)
79
+ - [8.2. Property `item 1`](#fulfillmentStatus_anyOf_i1)
80
+ - [9. Property `returnStatus`](#returnStatus)
81
+ - [9.1. Property `return-status`](#returnStatus_anyOf_i0)
82
+ - [9.2. Property `item 1`](#returnStatus_anyOf_i1)
83
+ - [10. Property `deliveryType`](#deliveryType)
84
+ - [10.1. Property `delivery-type`](#deliveryType_anyOf_i0)
85
+ - [10.2. Property `item 1`](#deliveryType_anyOf_i1)
86
+ - [11. Property `paymentMethod`](#paymentMethod)
87
+ - [11.1. Property `payment-method`](#paymentMethod_anyOf_i0)
88
+ - [11.2. Property `item 1`](#paymentMethod_anyOf_i1)
89
+ - [12. Property `invoiceId`](#invoiceId)
90
+ - [13. Property `customerId`](#customerId)
91
+ - [14. Property `customerName`](#customerName)
92
+ - [15. Property `customerEmail`](#customerEmail)
93
+ - [16. Property `customerPhone`](#customerPhone)
94
+ - [17. Property `clientEmail`](#clientEmail)
95
+ - [18. Property `clientPhoneNumber`](#clientPhoneNumber)
96
+ - [19. Property `items`](#items)
97
+ - [19.1. order-item](#items_items)
98
+ - [19.1.1. Property `name`](#items_items_name)
99
+ - [19.1.2. Property `quantity`](#items_items_quantity)
100
+ - [19.1.3. Property `price`](#items_items_price)
101
+ - [19.1.4. Property `productId`](#items_items_productId)
102
+ - [19.1.5. Property `increment`](#items_items_increment)
103
+ - [19.1.6. Property `variantId`](#items_items_variantId)
104
+ - [19.1.7. Property `supplierId`](#items_items_supplierId)
105
+ - [19.1.8. Property `supplierName`](#items_items_supplierName)
106
+ - [19.1.9. Property `sentAt`](#items_items_sentAt)
107
+ - [19.1.9.1. Property `_seconds`](#items_items_sentAt__seconds)
108
+ - [19.1.9.2. Property `_nanoseconds`](#items_items_sentAt__nanoseconds)
109
+ - [19.1.10. Property `startedCookingAt`](#items_items_startedCookingAt)
110
+ - [19.1.10.1. Property `_seconds`](#items_items_startedCookingAt__seconds)
111
+ - [19.1.10.2. Property `_nanoseconds`](#items_items_startedCookingAt__nanoseconds)
112
+ - [19.1.11. Property `readyAt`](#items_items_readyAt)
113
+ - [19.1.11.1. Property `_seconds`](#items_items_readyAt__seconds)
114
+ - [19.1.11.2. Property `_nanoseconds`](#items_items_readyAt__nanoseconds)
115
+ - [19.1.12. Property `servedAt`](#items_items_servedAt)
116
+ - [19.1.12.1. Property `_seconds`](#items_items_servedAt__seconds)
117
+ - [19.1.12.2. Property `_nanoseconds`](#items_items_servedAt__nanoseconds)
118
+ - [20. Property `amount`](#amount)
119
+ - [21. Property `amountPaid`](#amountPaid)
120
+ - [22. Property `total`](#total)
121
+ - [23. Property `createdAt`](#createdAt)
122
+ - [23.1. Property `_seconds`](#createdAt__seconds)
123
+ - [23.2. Property `_nanoseconds`](#createdAt__nanoseconds)
124
+ - [24. Property `orderDate`](#orderDate)
125
+ - [25. Property `PROCESSING_ON`](#PROCESSING_ON)
126
+ - [25.1. Property `firestore-timestamp`](#PROCESSING_ON_anyOf_i0)
127
+ - [25.2. Property `item 1`](#PROCESSING_ON_anyOf_i1)
128
+ - [26. Property `COMPLETED_ON`](#COMPLETED_ON)
129
+ - [26.1. Property `firestore-timestamp`](#COMPLETED_ON_anyOf_i0)
130
+ - [26.2. Property `item 1`](#COMPLETED_ON_anyOf_i1)
131
+ - [27. Property `CANCELLED_ON`](#CANCELLED_ON)
132
+ - [27.1. Property `firestore-timestamp`](#CANCELLED_ON_anyOf_i0)
133
+ - [27.2. Property `item 1`](#CANCELLED_ON_anyOf_i1)
134
+ - [28. Property `cancellationReason`](#cancellationReason)
135
+ - [29. Property `shippingCarrier`](#shippingCarrier)
136
+ - [30. Property `trackingNumber`](#trackingNumber)
137
+ - [31. Property `estimatedDeliveryDate`](#estimatedDeliveryDate)
138
+ - [31.1. Property `firestore-timestamp`](#estimatedDeliveryDate_anyOf_i0)
139
+ - [31.2. Property `item 1`](#estimatedDeliveryDate_anyOf_i1)
140
+ - [32. Property `shippingCost`](#shippingCost)
141
+ - [33. Property `paymentProofUrl`](#paymentProofUrl)
142
+ - [34. Property `paymentProofStatus`](#paymentProofStatus)
143
+ - [34.1. Property `payment-proof-status`](#paymentProofStatus_anyOf_i0)
144
+ - [34.2. Property `item 1`](#paymentProofStatus_anyOf_i1)
145
+ - [35. Property `paymentProofAddedAt`](#paymentProofAddedAt)
146
+ - [35.1. Property `firestore-timestamp`](#paymentProofAddedAt_anyOf_i0)
147
+ - [35.2. Property `item 1`](#paymentProofAddedAt_anyOf_i1)
148
+ - [36. Property `paymentProofAddedBy`](#paymentProofAddedBy)
149
+ - [37. Property `paymentProofReviewedAt`](#paymentProofReviewedAt)
150
+ - [37.1. Property `firestore-timestamp`](#paymentProofReviewedAt_anyOf_i0)
151
+ - [37.2. Property `item 1`](#paymentProofReviewedAt_anyOf_i1)
152
+ - [38. Property `paymentProofReviewedBy`](#paymentProofReviewedBy)
153
+ - [39. Property `paymentProofRejectionReason`](#paymentProofRejectionReason)
154
+ - [40. Property `paymentStatusChangeReason`](#paymentStatusChangeReason)
155
+ - [41. Property `paymentStatusChangedBy`](#paymentStatusChangedBy)
156
+ - [42. Property `paymentStatusChangedAt`](#paymentStatusChangedAt)
157
+ - [42.1. Property `firestore-timestamp`](#paymentStatusChangedAt_anyOf_i0)
158
+ - [42.2. Property `item 1`](#paymentStatusChangedAt_anyOf_i1)
159
+ - [43. Property `payments`](#payments)
160
+ - [43.1. payments items](#payments_items)
161
+ - [43.1.1. Property `paymentId`](#payments_items_paymentId)
162
+ - [43.1.2. Property `amount`](#payments_items_amount)
163
+ - [43.1.3. Property `currency`](#payments_items_currency)
164
+ - [43.1.4. Property `paymentMethod`](#payments_items_paymentMethod)
165
+ - [43.1.5. Property `paymentDate`](#payments_items_paymentDate)
166
+ - [43.1.6. Property `referenceNumber`](#payments_items_referenceNumber)
167
+ - [43.1.7. Property `status`](#payments_items_status)
168
+ - [44. Property `totalOverridden`](#totalOverridden)
169
+ - [45. Property `notes`](#notes)
170
+ - [45.1. notes items](#notes_items)
171
+ - [45.1.1. Property `id`](#notes_items_id)
172
+ - [45.1.2. Property `text`](#notes_items_text)
173
+ - [45.1.3. Property `createdAt`](#notes_items_createdAt)
174
+ - [45.1.3.1. Property `_seconds`](#createdAt__seconds)
175
+ - [45.1.3.2. Property `_nanoseconds`](#createdAt__nanoseconds)
176
+ - [45.1.4. Property `createdBy`](#notes_items_createdBy)
177
+ - [45.1.5. Property `createdByName`](#notes_items_createdByName)
178
+ - [46. Property `additionalInfo`](#additionalInfo)
179
+ - [47. Property `appliedDiscountCode`](#appliedDiscountCode)
180
+ - [48. Property `purchaseId`](#purchaseId)
179
181
 
180
182
  | | |
181
183
  | ------------------------- | ------------------- |
@@ -191,6 +193,7 @@ sidebar_position: 17
191
193
  | + [id](#id ) | No | string | No | - | (Read-only) Firestore document ID. Note: some models also have uid; see ID conventions. |
192
194
  | + [uid](#uid ) | No | string | No | - | (Read-only) Entity UID. Often mirrors id. |
193
195
  | + [companyId](#companyId ) | No | string | No | - | (Immutable) FK → Company document ID. Scopes all queries. |
196
+ | - [siteId](#siteId ) | No | string or null | No | - | (Immutable, Optional) FK → Site document ID (D43 / ADR-003). null = company-wide. |
194
197
  | + [orderNumber](#orderNumber ) | No | string | No | - | (Read-only) Server-generated order number. |
195
198
  | + [status](#status ) | No | enum (of string) | No | In #/definitions/order-status | Core lifecycle status (D34, MIG-11). See OrderStatus enum for the legacy value migration mapping. |
196
199
  | - [paymentStatus](#paymentStatus ) | No | Combination | No | - | Payment lifecycle (D34). Null until payment is initiated. |
@@ -275,7 +278,32 @@ Do not include in write requests. This field is set exclusively by the server (F
275
278
  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.
276
279
  :::
277
280
 
278
- ## <a name="orderNumber"></a>4. Property `orderNumber`
281
+ ## <a name="siteId"></a>4. Property `siteId`
282
+
283
+ | | |
284
+ | ------------ | ---------------- |
285
+ | **Type** | `string or null` |
286
+ | **Required** | No |
287
+
288
+ **Description:** (Immutable, Optional) FK → Site document ID (D43 / ADR-003). null = company-wide.
289
+
290
+ :::info Immutable
291
+ 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.
292
+ :::
293
+
294
+ :::note
295
+ D43 / ADR-003: optional site attribution. Absent/null means company-wide (legacy). When set, the order is attributed to a specific site for analytics and site-scoped dashboards. No migration — existing orders keep null. Flat path; Order continues to live at `companies/\{companyId\}/orders/\{orderId\}`.
296
+ :::
297
+
298
+ :::tip When to set
299
+ Set at order creation when the client knows which site the order originated from (e.g. SR Single, Lifesense). Leave null for legacy/company-wide orders. Composite index: (companyId, siteId, createdAt).
300
+ :::
301
+
302
+ :::info See also
303
+ **Decisions:** `D43`
304
+ :::
305
+
306
+ ## <a name="orderNumber"></a>5. Property `orderNumber`
279
307
 
280
308
  | | |
281
309
  | ------------ | -------- |
@@ -288,7 +316,7 @@ Set at creation only. This field cannot be modified after the document is create
288
316
  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.
289
317
  :::
290
318
 
291
- ## <a name="status"></a>5. Property `status`
319
+ ## <a name="status"></a>6. Property `status`
292
320
 
293
321
  | | |
294
322
  | -------------- | -------------------------- |
@@ -307,7 +335,7 @@ Must be one of:
307
335
  * "CANCELLED"
308
336
  * "EXPIRED"
309
337
 
310
- ## <a name="paymentStatus"></a>6. Property `paymentStatus`
338
+ ## <a name="paymentStatus"></a>7. Property `paymentStatus`
311
339
 
312
340
  | | |
313
341
  | ------------------------- | ---------------- |
@@ -322,7 +350,7 @@ Must be one of:
322
350
  | [payment-status](#paymentStatus_anyOf_i0) |
323
351
  | [item 1](#paymentStatus_anyOf_i1) |
324
352
 
325
- ### <a name="paymentStatus_anyOf_i0"></a>6.1. Property `payment-status`
353
+ ### <a name="paymentStatus_anyOf_i0"></a>7.1. Property `payment-status`
326
354
 
327
355
  | | |
328
356
  | -------------- | ---------------------------- |
@@ -341,14 +369,14 @@ Must be one of:
341
369
  * "REFUNDED"
342
370
  * "PARTIALLY_REFUNDED"
343
371
 
344
- ### <a name="paymentStatus_anyOf_i1"></a>6.2. Property `item 1`
372
+ ### <a name="paymentStatus_anyOf_i1"></a>7.2. Property `item 1`
345
373
 
346
374
  | | |
347
375
  | ------------ | ------ |
348
376
  | **Type** | `null` |
349
377
  | **Required** | No |
350
378
 
351
- ## <a name="fulfillmentStatus"></a>7. Property `fulfillmentStatus`
379
+ ## <a name="fulfillmentStatus"></a>8. Property `fulfillmentStatus`
352
380
 
353
381
  | | |
354
382
  | ------------------------- | ---------------- |
@@ -363,7 +391,7 @@ Must be one of:
363
391
  | [fulfillment-status](#fulfillmentStatus_anyOf_i0) |
364
392
  | [item 1](#fulfillmentStatus_anyOf_i1) |
365
393
 
366
- ### <a name="fulfillmentStatus_anyOf_i0"></a>7.1. Property `fulfillment-status`
394
+ ### <a name="fulfillmentStatus_anyOf_i0"></a>8.1. Property `fulfillment-status`
367
395
 
368
396
  | | |
369
397
  | -------------- | -------------------------------- |
@@ -381,7 +409,7 @@ Must be one of:
381
409
  * "DELIVERED"
382
410
  * "PICKED_UP"
383
411
 
384
- ### <a name="fulfillmentStatus_anyOf_i1"></a>7.2. Property `item 1`
412
+ ### <a name="fulfillmentStatus_anyOf_i1"></a>8.2. Property `item 1`
385
413
 
386
414
  | | |
387
415
  | ------------ | ------ |
@@ -396,7 +424,7 @@ Null for ON_SITE and PICK_UP orders. Set when deliveryType is DELIVERY and a phy
396
424
  **Decisions:** `D34`
397
425
  :::
398
426
 
399
- ## <a name="returnStatus"></a>8. Property `returnStatus`
427
+ ## <a name="returnStatus"></a>9. Property `returnStatus`
400
428
 
401
429
  | | |
402
430
  | ------------------------- | ---------------- |
@@ -411,7 +439,7 @@ Null for ON_SITE and PICK_UP orders. Set when deliveryType is DELIVERY and a phy
411
439
  | [return-status](#returnStatus_anyOf_i0) |
412
440
  | [item 1](#returnStatus_anyOf_i1) |
413
441
 
414
- ### <a name="returnStatus_anyOf_i0"></a>8.1. Property `return-status`
442
+ ### <a name="returnStatus_anyOf_i0"></a>9.1. Property `return-status`
415
443
 
416
444
  | | |
417
445
  | -------------- | --------------------------- |
@@ -429,14 +457,14 @@ Must be one of:
429
457
  * "EXCHANGE_PROCESSING"
430
458
  * "EXCHANGE_COMPLETED"
431
459
 
432
- ### <a name="returnStatus_anyOf_i1"></a>8.2. Property `item 1`
460
+ ### <a name="returnStatus_anyOf_i1"></a>9.2. Property `item 1`
433
461
 
434
462
  | | |
435
463
  | ------------ | ------ |
436
464
  | **Type** | `null` |
437
465
  | **Required** | No |
438
466
 
439
- ## <a name="deliveryType"></a>9. Property `deliveryType`
467
+ ## <a name="deliveryType"></a>10. Property `deliveryType`
440
468
 
441
469
  | | |
442
470
  | ------------------------- | ---------------- |
@@ -451,7 +479,7 @@ Must be one of:
451
479
  | [delivery-type](#deliveryType_anyOf_i0) |
452
480
  | [item 1](#deliveryType_anyOf_i1) |
453
481
 
454
- ### <a name="deliveryType_anyOf_i0"></a>9.1. Property `delivery-type`
482
+ ### <a name="deliveryType_anyOf_i0"></a>10.1. Property `delivery-type`
455
483
 
456
484
  | | |
457
485
  | -------------- | --------------------------- |
@@ -466,7 +494,7 @@ Must be one of:
466
494
  * "PICK_UP"
467
495
  * "DELIVERY"
468
496
 
469
- ### <a name="deliveryType_anyOf_i1"></a>9.2. Property `item 1`
497
+ ### <a name="deliveryType_anyOf_i1"></a>10.2. Property `item 1`
470
498
 
471
499
  | | |
472
500
  | ------------ | ------ |
@@ -477,7 +505,7 @@ Must be one of:
477
505
  Drives whether fulfillmentStatus is relevant. ON_SITE and PICK_UP orders typically have no fulfillmentStatus.
478
506
  :::
479
507
 
480
- ## <a name="paymentMethod"></a>10. Property `paymentMethod`
508
+ ## <a name="paymentMethod"></a>11. Property `paymentMethod`
481
509
 
482
510
  | | |
483
511
  | ------------------------- | ---------------- |
@@ -492,7 +520,7 @@ Drives whether fulfillmentStatus is relevant. ON_SITE and PICK_UP orders typical
492
520
  | [payment-method](#paymentMethod_anyOf_i0) |
493
521
  | [item 1](#paymentMethod_anyOf_i1) |
494
522
 
495
- ### <a name="paymentMethod_anyOf_i0"></a>10.1. Property `payment-method`
523
+ ### <a name="paymentMethod_anyOf_i0"></a>11.1. Property `payment-method`
496
524
 
497
525
  | | |
498
526
  | -------------- | ---------------------------- |
@@ -514,14 +542,14 @@ Must be one of:
514
542
  * "STRIPE"
515
543
  * "OTHER"
516
544
 
517
- ### <a name="paymentMethod_anyOf_i1"></a>10.2. Property `item 1`
545
+ ### <a name="paymentMethod_anyOf_i1"></a>11.2. Property `item 1`
518
546
 
519
547
  | | |
520
548
  | ------------ | ------ |
521
549
  | **Type** | `null` |
522
550
  | **Required** | No |
523
551
 
524
- ## <a name="invoiceId"></a>11. Property `invoiceId`
552
+ ## <a name="invoiceId"></a>12. Property `invoiceId`
525
553
 
526
554
  | | |
527
555
  | ------------ | ---------------- |
@@ -530,7 +558,7 @@ Must be one of:
530
558
 
531
559
  **Description:** FK → Invoice document ID.
532
560
 
533
- ## <a name="customerId"></a>12. Property `customerId`
561
+ ## <a name="customerId"></a>13. Property `customerId`
534
562
 
535
563
  | | |
536
564
  | ------------ | ---------------- |
@@ -539,7 +567,7 @@ Must be one of:
539
567
 
540
568
  **Description:** FK → Customer.id (Firestore doc ID). Used to resolve customer details.
541
569
 
542
- ## <a name="customerName"></a>13. Property `customerName`
570
+ ## <a name="customerName"></a>14. Property `customerName`
543
571
 
544
572
  | | |
545
573
  | ------------ | ---------------- |
@@ -548,7 +576,7 @@ Must be one of:
548
576
 
549
577
  **Description:** (Denormalized) From Customer.name at write time.
550
578
 
551
- ## <a name="customerEmail"></a>14. Property `customerEmail`
579
+ ## <a name="customerEmail"></a>15. Property `customerEmail`
552
580
 
553
581
  | | |
554
582
  | ------------ | ---------------- |
@@ -557,7 +585,7 @@ Must be one of:
557
585
 
558
586
  **Description:** (Denormalized) From Customer.email at write time. Canonical field per D24.
559
587
 
560
- ## <a name="customerPhone"></a>15. Property `customerPhone`
588
+ ## <a name="customerPhone"></a>16. Property `customerPhone`
561
589
 
562
590
  | | |
563
591
  | ------------ | ---------------- |
@@ -566,7 +594,7 @@ Must be one of:
566
594
 
567
595
  **Description:** (Denormalized) From Customer.phone at write time. Canonical field per D24.
568
596
 
569
- ## <a name="clientEmail"></a>16. Property `clientEmail`
597
+ ## <a name="clientEmail"></a>17. Property `clientEmail`
570
598
 
571
599
  | | |
572
600
  | ------------ | ---------------- |
@@ -583,7 +611,7 @@ This field is deprecated. Do not write it in new code.
583
611
  Use `customerEmail` instead.
584
612
  :::
585
613
 
586
- ## <a name="clientPhoneNumber"></a>17. Property `clientPhoneNumber`
614
+ ## <a name="clientPhoneNumber"></a>18. Property `clientPhoneNumber`
587
615
 
588
616
  | | |
589
617
  | ------------ | ---------------- |
@@ -600,7 +628,7 @@ This field is deprecated. Do not write it in new code.
600
628
  Use `customerPhone` instead.
601
629
  :::
602
630
 
603
- ## <a name="items"></a>18. Property `items`
631
+ ## <a name="items"></a>19. Property `items`
604
632
 
605
633
  | | |
606
634
  | ------------ | --------------- |
@@ -619,7 +647,7 @@ Use `customerPhone` instead.
619
647
  | ------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
620
648
  | [order-item](#items_items) | Line item within an Order or Sale/Purchase. Canonical fields: name, quantity, price, productId. Optional commerce fields (increment, variantId, supplierId, supplierName) and kitchen tracking fields (sentAt, startedCookingAt, readyAt, servedAt) are TBD/WIP pending cross-platform alignment. |
621
649
 
622
- ### <a name="items_items"></a>18.1. order-item
650
+ ### <a name="items_items"></a>19.1. order-item
623
651
 
624
652
  | | |
625
653
  | ------------------------- | ------------------------ |
@@ -645,7 +673,7 @@ Use `customerPhone` instead.
645
673
  | - [readyAt](#items_items_readyAt ) | No | object | No | - | (Read-only) Timestamp when the item was ready for pickup or service. TBD/WIP — archived CBL flow. |
646
674
  | - [servedAt](#items_items_servedAt ) | No | object | No | - | (Read-only) Timestamp when the item was served to the customer. TBD/WIP — archived CBL flow. |
647
675
 
648
- #### <a name="items_items_name"></a>18.1.1. Property `name`
676
+ #### <a name="items_items_name"></a>19.1.1. Property `name`
649
677
 
650
678
  | | |
651
679
  | ------------ | -------- |
@@ -654,7 +682,7 @@ Use `customerPhone` instead.
654
682
 
655
683
  **Description:** Display name of the product or service.
656
684
 
657
- #### <a name="items_items_quantity"></a>18.1.2. Property `quantity`
685
+ #### <a name="items_items_quantity"></a>19.1.2. Property `quantity`
658
686
 
659
687
  | | |
660
688
  | ------------ | -------- |
@@ -663,7 +691,7 @@ Use `customerPhone` instead.
663
691
 
664
692
  **Description:** Number of units ordered.
665
693
 
666
- #### <a name="items_items_price"></a>18.1.3. Property `price`
694
+ #### <a name="items_items_price"></a>19.1.3. Property `price`
667
695
 
668
696
  | | |
669
697
  | ------------ | -------- |
@@ -672,7 +700,7 @@ Use `customerPhone` instead.
672
700
 
673
701
  **Description:** Unit price. Canonical name per D11.
674
702
 
675
- #### <a name="items_items_productId"></a>18.1.4. Property `productId`
703
+ #### <a name="items_items_productId"></a>19.1.4. Property `productId`
676
704
 
677
705
  | | |
678
706
  | ------------ | -------- |
@@ -681,7 +709,7 @@ Use `customerPhone` instead.
681
709
 
682
710
  **Description:** FK → Product document ID.
683
711
 
684
- #### <a name="items_items_increment"></a>18.1.5. Property `increment`
712
+ #### <a name="items_items_increment"></a>19.1.5. Property `increment`
685
713
 
686
714
  | | |
687
715
  | ------------ | -------- |
@@ -690,7 +718,7 @@ Use `customerPhone` instead.
690
718
 
691
719
  **Description:** Quantity step for bundle/bulk items (e.g. 5 for a 5-pack). Dashboard/Firebase only.
692
720
 
693
- #### <a name="items_items_variantId"></a>18.1.6. Property `variantId`
721
+ #### <a name="items_items_variantId"></a>19.1.6. Property `variantId`
694
722
 
695
723
  | | |
696
724
  | ------------ | -------- |
@@ -699,7 +727,7 @@ Use `customerPhone` instead.
699
727
 
700
728
  **Description:** FK → ProductVariant ID within the product. Dashboard/Firebase only.
701
729
 
702
- #### <a name="items_items_supplierId"></a>18.1.7. Property `supplierId`
730
+ #### <a name="items_items_supplierId"></a>19.1.7. Property `supplierId`
703
731
 
704
732
  | | |
705
733
  | ------------ | -------- |
@@ -708,7 +736,7 @@ Use `customerPhone` instead.
708
736
 
709
737
  **Description:** FK → Supplier document ID. B2B orders only.
710
738
 
711
- #### <a name="items_items_supplierName"></a>18.1.8. Property `supplierName`
739
+ #### <a name="items_items_supplierName"></a>19.1.8. Property `supplierName`
712
740
 
713
741
  | | |
714
742
  | ------------ | -------- |
@@ -717,7 +745,7 @@ Use `customerPhone` instead.
717
745
 
718
746
  **Description:** (Denormalized) From Supplier.name at write time. B2B orders only.
719
747
 
720
- #### <a name="items_items_sentAt"></a>18.1.9. Property `sentAt`
748
+ #### <a name="items_items_sentAt"></a>19.1.9. Property `sentAt`
721
749
 
722
750
  | | |
723
751
  | ------------------------- | ----------- |
@@ -732,7 +760,7 @@ Use `customerPhone` instead.
732
760
  | + [_seconds](#items_items_sentAt__seconds ) | No | integer | No | - | - |
733
761
  | + [_nanoseconds](#items_items_sentAt__nanoseconds ) | No | integer | No | - | - |
734
762
 
735
- ##### <a name="items_items_sentAt__seconds"></a>18.1.9.1. Property `_seconds`
763
+ ##### <a name="items_items_sentAt__seconds"></a>19.1.9.1. Property `_seconds`
736
764
 
737
765
  | | |
738
766
  | ------------ | --------- |
@@ -744,7 +772,7 @@ Use `customerPhone` instead.
744
772
  | **Minimum** | &ge; -9007199254740991 |
745
773
  | **Maximum** | &le; 9007199254740991 |
746
774
 
747
- ##### <a name="items_items_sentAt__nanoseconds"></a>18.1.9.2. Property `_nanoseconds`
775
+ ##### <a name="items_items_sentAt__nanoseconds"></a>19.1.9.2. Property `_nanoseconds`
748
776
 
749
777
  | | |
750
778
  | ------------ | --------- |
@@ -756,7 +784,7 @@ Use `customerPhone` instead.
756
784
  | **Minimum** | &ge; -9007199254740991 |
757
785
  | **Maximum** | &le; 9007199254740991 |
758
786
 
759
- #### <a name="items_items_startedCookingAt"></a>18.1.10. Property `startedCookingAt`
787
+ #### <a name="items_items_startedCookingAt"></a>19.1.10. Property `startedCookingAt`
760
788
 
761
789
  | | |
762
790
  | ------------------------- | ----------- |
@@ -771,7 +799,7 @@ Use `customerPhone` instead.
771
799
  | + [_seconds](#items_items_startedCookingAt__seconds ) | No | integer | No | - | - |
772
800
  | + [_nanoseconds](#items_items_startedCookingAt__nanoseconds ) | No | integer | No | - | - |
773
801
 
774
- ##### <a name="items_items_startedCookingAt__seconds"></a>18.1.10.1. Property `_seconds`
802
+ ##### <a name="items_items_startedCookingAt__seconds"></a>19.1.10.1. Property `_seconds`
775
803
 
776
804
  | | |
777
805
  | ------------ | --------- |
@@ -783,7 +811,7 @@ Use `customerPhone` instead.
783
811
  | **Minimum** | &ge; -9007199254740991 |
784
812
  | **Maximum** | &le; 9007199254740991 |
785
813
 
786
- ##### <a name="items_items_startedCookingAt__nanoseconds"></a>18.1.10.2. Property `_nanoseconds`
814
+ ##### <a name="items_items_startedCookingAt__nanoseconds"></a>19.1.10.2. Property `_nanoseconds`
787
815
 
788
816
  | | |
789
817
  | ------------ | --------- |
@@ -795,7 +823,7 @@ Use `customerPhone` instead.
795
823
  | **Minimum** | &ge; -9007199254740991 |
796
824
  | **Maximum** | &le; 9007199254740991 |
797
825
 
798
- #### <a name="items_items_readyAt"></a>18.1.11. Property `readyAt`
826
+ #### <a name="items_items_readyAt"></a>19.1.11. Property `readyAt`
799
827
 
800
828
  | | |
801
829
  | ------------------------- | ----------- |
@@ -810,7 +838,7 @@ Use `customerPhone` instead.
810
838
  | + [_seconds](#items_items_readyAt__seconds ) | No | integer | No | - | - |
811
839
  | + [_nanoseconds](#items_items_readyAt__nanoseconds ) | No | integer | No | - | - |
812
840
 
813
- ##### <a name="items_items_readyAt__seconds"></a>18.1.11.1. Property `_seconds`
841
+ ##### <a name="items_items_readyAt__seconds"></a>19.1.11.1. Property `_seconds`
814
842
 
815
843
  | | |
816
844
  | ------------ | --------- |
@@ -822,7 +850,7 @@ Use `customerPhone` instead.
822
850
  | **Minimum** | &ge; -9007199254740991 |
823
851
  | **Maximum** | &le; 9007199254740991 |
824
852
 
825
- ##### <a name="items_items_readyAt__nanoseconds"></a>18.1.11.2. Property `_nanoseconds`
853
+ ##### <a name="items_items_readyAt__nanoseconds"></a>19.1.11.2. Property `_nanoseconds`
826
854
 
827
855
  | | |
828
856
  | ------------ | --------- |
@@ -834,7 +862,7 @@ Use `customerPhone` instead.
834
862
  | **Minimum** | &ge; -9007199254740991 |
835
863
  | **Maximum** | &le; 9007199254740991 |
836
864
 
837
- #### <a name="items_items_servedAt"></a>18.1.12. Property `servedAt`
865
+ #### <a name="items_items_servedAt"></a>19.1.12. Property `servedAt`
838
866
 
839
867
  | | |
840
868
  | ------------------------- | ----------- |
@@ -849,7 +877,7 @@ Use `customerPhone` instead.
849
877
  | + [_seconds](#items_items_servedAt__seconds ) | No | integer | No | - | - |
850
878
  | + [_nanoseconds](#items_items_servedAt__nanoseconds ) | No | integer | No | - | - |
851
879
 
852
- ##### <a name="items_items_servedAt__seconds"></a>18.1.12.1. Property `_seconds`
880
+ ##### <a name="items_items_servedAt__seconds"></a>19.1.12.1. Property `_seconds`
853
881
 
854
882
  | | |
855
883
  | ------------ | --------- |
@@ -861,7 +889,7 @@ Use `customerPhone` instead.
861
889
  | **Minimum** | &ge; -9007199254740991 |
862
890
  | **Maximum** | &le; 9007199254740991 |
863
891
 
864
- ##### <a name="items_items_servedAt__nanoseconds"></a>18.1.12.2. Property `_nanoseconds`
892
+ ##### <a name="items_items_servedAt__nanoseconds"></a>19.1.12.2. Property `_nanoseconds`
865
893
 
866
894
  | | |
867
895
  | ------------ | --------- |
@@ -873,7 +901,7 @@ Use `customerPhone` instead.
873
901
  | **Minimum** | &ge; -9007199254740991 |
874
902
  | **Maximum** | &le; 9007199254740991 |
875
903
 
876
- ## <a name="amount"></a>19. Property `amount`
904
+ ## <a name="amount"></a>20. Property `amount`
877
905
 
878
906
  | | |
879
907
  | ------------ | -------- |
@@ -882,7 +910,7 @@ Use `customerPhone` instead.
882
910
 
883
911
  **Description:** Total order amount. Canonical field for the order total.
884
912
 
885
- ## <a name="amountPaid"></a>20. Property `amountPaid`
913
+ ## <a name="amountPaid"></a>21. Property `amountPaid`
886
914
 
887
915
  | | |
888
916
  | ------------ | ---------------- |
@@ -891,7 +919,7 @@ Use `customerPhone` instead.
891
919
 
892
920
  **Description:** Amount of `amount` paid to date. Derived from payment allocations.
893
921
 
894
- ## <a name="total"></a>21. Property `total`
922
+ ## <a name="total"></a>22. Property `total`
895
923
 
896
924
  | | |
897
925
  | ------------ | ---------------- |
@@ -912,7 +940,7 @@ Sent by Mobile only. Mirrors `amount`. Use `amount` for all new writes. Pending
912
940
  Use `amount` instead.
913
941
  :::
914
942
 
915
- ## <a name="createdAt"></a>22. Property `createdAt`
943
+ ## <a name="createdAt"></a>23. Property `createdAt`
916
944
 
917
945
  | | |
918
946
  | ------------------------- | --------------------------------- |
@@ -928,7 +956,7 @@ Use `amount` instead.
928
956
  | + [_seconds](#createdAt__seconds ) | No | integer | No | - | - |
929
957
  | + [_nanoseconds](#createdAt__nanoseconds ) | No | integer | No | - | - |
930
958
 
931
- ### <a name="createdAt__seconds"></a>22.1. Property `_seconds`
959
+ ### <a name="createdAt__seconds"></a>23.1. Property `_seconds`
932
960
 
933
961
  | | |
934
962
  | ------------ | --------- |
@@ -940,7 +968,7 @@ Use `amount` instead.
940
968
  | **Minimum** | &ge; -9007199254740991 |
941
969
  | **Maximum** | &le; 9007199254740991 |
942
970
 
943
- ### <a name="createdAt__nanoseconds"></a>22.2. Property `_nanoseconds`
971
+ ### <a name="createdAt__nanoseconds"></a>23.2. Property `_nanoseconds`
944
972
 
945
973
  | | |
946
974
  | ------------ | --------- |
@@ -956,7 +984,7 @@ Use `amount` instead.
956
984
  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.
957
985
  :::
958
986
 
959
- ## <a name="orderDate"></a>23. Property `orderDate`
987
+ ## <a name="orderDate"></a>24. Property `orderDate`
960
988
 
961
989
  | | |
962
990
  | ------------------------- | ----------------------- |
@@ -967,7 +995,7 @@ Do not include in write requests. This field is set exclusively by the server (F
967
995
 
968
996
  **Description:** Firestore Timestamp serialized representation
969
997
 
970
- ## <a name="PROCESSING_ON"></a>24. Property `PROCESSING_ON`
998
+ ## <a name="PROCESSING_ON"></a>25. Property `PROCESSING_ON`
971
999
 
972
1000
  | | |
973
1001
  | ------------------------- | ---------------- |
@@ -982,7 +1010,7 @@ Do not include in write requests. This field is set exclusively by the server (F
982
1010
  | [firestore-timestamp](#PROCESSING_ON_anyOf_i0) |
983
1011
  | [item 1](#PROCESSING_ON_anyOf_i1) |
984
1012
 
985
- ### <a name="PROCESSING_ON_anyOf_i0"></a>24.1. Property `firestore-timestamp`
1013
+ ### <a name="PROCESSING_ON_anyOf_i0"></a>25.1. Property `firestore-timestamp`
986
1014
 
987
1015
  | | |
988
1016
  | ------------------------- | ----------------------- |
@@ -993,7 +1021,7 @@ Do not include in write requests. This field is set exclusively by the server (F
993
1021
 
994
1022
  **Description:** Firestore Timestamp serialized representation
995
1023
 
996
- ### <a name="PROCESSING_ON_anyOf_i1"></a>24.2. Property `item 1`
1024
+ ### <a name="PROCESSING_ON_anyOf_i1"></a>25.2. Property `item 1`
997
1025
 
998
1026
  | | |
999
1027
  | ------------ | ------ |
@@ -1013,7 +1041,7 @@ Never write this field directly. The server sets it automatically on status tran
1013
1041
  **Migrations:** `MIG-01`
1014
1042
  :::
1015
1043
 
1016
- ## <a name="COMPLETED_ON"></a>25. Property `COMPLETED_ON`
1044
+ ## <a name="COMPLETED_ON"></a>26. Property `COMPLETED_ON`
1017
1045
 
1018
1046
  | | |
1019
1047
  | ------------------------- | ---------------- |
@@ -1028,7 +1056,7 @@ Never write this field directly. The server sets it automatically on status tran
1028
1056
  | [firestore-timestamp](#COMPLETED_ON_anyOf_i0) |
1029
1057
  | [item 1](#COMPLETED_ON_anyOf_i1) |
1030
1058
 
1031
- ### <a name="COMPLETED_ON_anyOf_i0"></a>25.1. Property `firestore-timestamp`
1059
+ ### <a name="COMPLETED_ON_anyOf_i0"></a>26.1. Property `firestore-timestamp`
1032
1060
 
1033
1061
  | | |
1034
1062
  | ------------------------- | ----------------------- |
@@ -1039,7 +1067,7 @@ Never write this field directly. The server sets it automatically on status tran
1039
1067
 
1040
1068
  **Description:** Firestore Timestamp serialized representation
1041
1069
 
1042
- ### <a name="COMPLETED_ON_anyOf_i1"></a>25.2. Property `item 1`
1070
+ ### <a name="COMPLETED_ON_anyOf_i1"></a>26.2. Property `item 1`
1043
1071
 
1044
1072
  | | |
1045
1073
  | ------------ | ------ |
@@ -1050,7 +1078,7 @@ Never write this field directly. The server sets it automatically on status tran
1050
1078
  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.
1051
1079
  :::
1052
1080
 
1053
- ## <a name="CANCELLED_ON"></a>26. Property `CANCELLED_ON`
1081
+ ## <a name="CANCELLED_ON"></a>27. Property `CANCELLED_ON`
1054
1082
 
1055
1083
  | | |
1056
1084
  | ------------------------- | ---------------- |
@@ -1065,7 +1093,7 @@ Do not include in write requests. This field is set exclusively by the server (F
1065
1093
  | [firestore-timestamp](#CANCELLED_ON_anyOf_i0) |
1066
1094
  | [item 1](#CANCELLED_ON_anyOf_i1) |
1067
1095
 
1068
- ### <a name="CANCELLED_ON_anyOf_i0"></a>26.1. Property `firestore-timestamp`
1096
+ ### <a name="CANCELLED_ON_anyOf_i0"></a>27.1. Property `firestore-timestamp`
1069
1097
 
1070
1098
  | | |
1071
1099
  | ------------------------- | ----------------------- |
@@ -1076,7 +1104,7 @@ Do not include in write requests. This field is set exclusively by the server (F
1076
1104
 
1077
1105
  **Description:** Firestore Timestamp serialized representation
1078
1106
 
1079
- ### <a name="CANCELLED_ON_anyOf_i1"></a>26.2. Property `item 1`
1107
+ ### <a name="CANCELLED_ON_anyOf_i1"></a>27.2. Property `item 1`
1080
1108
 
1081
1109
  | | |
1082
1110
  | ------------ | ------ |
@@ -1087,28 +1115,28 @@ Do not include in write requests. This field is set exclusively by the server (F
1087
1115
  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.
1088
1116
  :::
1089
1117
 
1090
- ## <a name="cancellationReason"></a>27. Property `cancellationReason`
1118
+ ## <a name="cancellationReason"></a>28. Property `cancellationReason`
1091
1119
 
1092
1120
  | | |
1093
1121
  | ------------ | ---------------- |
1094
1122
  | **Type** | `string or null` |
1095
1123
  | **Required** | No |
1096
1124
 
1097
- ## <a name="shippingCarrier"></a>28. Property `shippingCarrier`
1125
+ ## <a name="shippingCarrier"></a>29. Property `shippingCarrier`
1098
1126
 
1099
1127
  | | |
1100
1128
  | ------------ | ---------------- |
1101
1129
  | **Type** | `string or null` |
1102
1130
  | **Required** | No |
1103
1131
 
1104
- ## <a name="trackingNumber"></a>29. Property `trackingNumber`
1132
+ ## <a name="trackingNumber"></a>30. Property `trackingNumber`
1105
1133
 
1106
1134
  | | |
1107
1135
  | ------------ | ---------------- |
1108
1136
  | **Type** | `string or null` |
1109
1137
  | **Required** | No |
1110
1138
 
1111
- ## <a name="estimatedDeliveryDate"></a>30. Property `estimatedDeliveryDate`
1139
+ ## <a name="estimatedDeliveryDate"></a>31. Property `estimatedDeliveryDate`
1112
1140
 
1113
1141
  | | |
1114
1142
  | ------------------------- | ---------------- |
@@ -1123,7 +1151,7 @@ Do not include in write requests. This field is set exclusively by the server (F
1123
1151
  | [firestore-timestamp](#estimatedDeliveryDate_anyOf_i0) |
1124
1152
  | [item 1](#estimatedDeliveryDate_anyOf_i1) |
1125
1153
 
1126
- ### <a name="estimatedDeliveryDate_anyOf_i0"></a>30.1. Property `firestore-timestamp`
1154
+ ### <a name="estimatedDeliveryDate_anyOf_i0"></a>31.1. Property `firestore-timestamp`
1127
1155
 
1128
1156
  | | |
1129
1157
  | ------------------------- | ----------------------- |
@@ -1134,21 +1162,21 @@ Do not include in write requests. This field is set exclusively by the server (F
1134
1162
 
1135
1163
  **Description:** Firestore Timestamp serialized representation
1136
1164
 
1137
- ### <a name="estimatedDeliveryDate_anyOf_i1"></a>30.2. Property `item 1`
1165
+ ### <a name="estimatedDeliveryDate_anyOf_i1"></a>31.2. Property `item 1`
1138
1166
 
1139
1167
  | | |
1140
1168
  | ------------ | ------ |
1141
1169
  | **Type** | `null` |
1142
1170
  | **Required** | No |
1143
1171
 
1144
- ## <a name="shippingCost"></a>31. Property `shippingCost`
1172
+ ## <a name="shippingCost"></a>32. Property `shippingCost`
1145
1173
 
1146
1174
  | | |
1147
1175
  | ------------ | ---------------- |
1148
1176
  | **Type** | `number or null` |
1149
1177
  | **Required** | No |
1150
1178
 
1151
- ## <a name="paymentProofUrl"></a>32. Property `paymentProofUrl`
1179
+ ## <a name="paymentProofUrl"></a>33. Property `paymentProofUrl`
1152
1180
 
1153
1181
  | | |
1154
1182
  | ------------ | ---------------- |
@@ -1157,7 +1185,7 @@ Do not include in write requests. This field is set exclusively by the server (F
1157
1185
 
1158
1186
  **Description:** URL to uploaded payment proof image/document.
1159
1187
 
1160
- ## <a name="paymentProofStatus"></a>33. Property `paymentProofStatus`
1188
+ ## <a name="paymentProofStatus"></a>34. Property `paymentProofStatus`
1161
1189
 
1162
1190
  | | |
1163
1191
  | ------------------------- | ---------------- |
@@ -1172,7 +1200,7 @@ Do not include in write requests. This field is set exclusively by the server (F
1172
1200
  | [payment-proof-status](#paymentProofStatus_anyOf_i0) |
1173
1201
  | [item 1](#paymentProofStatus_anyOf_i1) |
1174
1202
 
1175
- ### <a name="paymentProofStatus_anyOf_i0"></a>33.1. Property `payment-proof-status`
1203
+ ### <a name="paymentProofStatus_anyOf_i0"></a>34.1. Property `payment-proof-status`
1176
1204
 
1177
1205
  | | |
1178
1206
  | -------------- | ---------------------------------- |
@@ -1187,14 +1215,14 @@ Must be one of:
1187
1215
  * "APPROVED"
1188
1216
  * "REJECTED"
1189
1217
 
1190
- ### <a name="paymentProofStatus_anyOf_i1"></a>33.2. Property `item 1`
1218
+ ### <a name="paymentProofStatus_anyOf_i1"></a>34.2. Property `item 1`
1191
1219
 
1192
1220
  | | |
1193
1221
  | ------------ | ------ |
1194
1222
  | **Type** | `null` |
1195
1223
  | **Required** | No |
1196
1224
 
1197
- ## <a name="paymentProofAddedAt"></a>34. Property `paymentProofAddedAt`
1225
+ ## <a name="paymentProofAddedAt"></a>35. Property `paymentProofAddedAt`
1198
1226
 
1199
1227
  | | |
1200
1228
  | ------------------------- | ---------------- |
@@ -1209,7 +1237,7 @@ Must be one of:
1209
1237
  | [firestore-timestamp](#paymentProofAddedAt_anyOf_i0) |
1210
1238
  | [item 1](#paymentProofAddedAt_anyOf_i1) |
1211
1239
 
1212
- ### <a name="paymentProofAddedAt_anyOf_i0"></a>34.1. Property `firestore-timestamp`
1240
+ ### <a name="paymentProofAddedAt_anyOf_i0"></a>35.1. Property `firestore-timestamp`
1213
1241
 
1214
1242
  | | |
1215
1243
  | ------------------------- | ----------------------- |
@@ -1220,7 +1248,7 @@ Must be one of:
1220
1248
 
1221
1249
  **Description:** Firestore Timestamp serialized representation
1222
1250
 
1223
- ### <a name="paymentProofAddedAt_anyOf_i1"></a>34.2. Property `item 1`
1251
+ ### <a name="paymentProofAddedAt_anyOf_i1"></a>35.2. Property `item 1`
1224
1252
 
1225
1253
  | | |
1226
1254
  | ------------ | ------ |
@@ -1231,7 +1259,7 @@ Must be one of:
1231
1259
  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.
1232
1260
  :::
1233
1261
 
1234
- ## <a name="paymentProofAddedBy"></a>35. Property `paymentProofAddedBy`
1262
+ ## <a name="paymentProofAddedBy"></a>36. Property `paymentProofAddedBy`
1235
1263
 
1236
1264
  | | |
1237
1265
  | ------------ | ---------------- |
@@ -1240,7 +1268,7 @@ Do not include in write requests. This field is set exclusively by the server (F
1240
1268
 
1241
1269
  **Description:** FK → User/staff UID who uploaded the payment proof.
1242
1270
 
1243
- ## <a name="paymentProofReviewedAt"></a>36. Property `paymentProofReviewedAt`
1271
+ ## <a name="paymentProofReviewedAt"></a>37. Property `paymentProofReviewedAt`
1244
1272
 
1245
1273
  | | |
1246
1274
  | ------------------------- | ---------------- |
@@ -1255,7 +1283,7 @@ Do not include in write requests. This field is set exclusively by the server (F
1255
1283
  | [firestore-timestamp](#paymentProofReviewedAt_anyOf_i0) |
1256
1284
  | [item 1](#paymentProofReviewedAt_anyOf_i1) |
1257
1285
 
1258
- ### <a name="paymentProofReviewedAt_anyOf_i0"></a>36.1. Property `firestore-timestamp`
1286
+ ### <a name="paymentProofReviewedAt_anyOf_i0"></a>37.1. Property `firestore-timestamp`
1259
1287
 
1260
1288
  | | |
1261
1289
  | ------------------------- | ----------------------- |
@@ -1266,7 +1294,7 @@ Do not include in write requests. This field is set exclusively by the server (F
1266
1294
 
1267
1295
  **Description:** Firestore Timestamp serialized representation
1268
1296
 
1269
- ### <a name="paymentProofReviewedAt_anyOf_i1"></a>36.2. Property `item 1`
1297
+ ### <a name="paymentProofReviewedAt_anyOf_i1"></a>37.2. Property `item 1`
1270
1298
 
1271
1299
  | | |
1272
1300
  | ------------ | ------ |
@@ -1277,7 +1305,7 @@ Do not include in write requests. This field is set exclusively by the server (F
1277
1305
  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.
1278
1306
  :::
1279
1307
 
1280
- ## <a name="paymentProofReviewedBy"></a>37. Property `paymentProofReviewedBy`
1308
+ ## <a name="paymentProofReviewedBy"></a>38. Property `paymentProofReviewedBy`
1281
1309
 
1282
1310
  | | |
1283
1311
  | ------------ | ---------------- |
@@ -1286,21 +1314,21 @@ Do not include in write requests. This field is set exclusively by the server (F
1286
1314
 
1287
1315
  **Description:** FK → User/staff UID who reviewed the payment proof.
1288
1316
 
1289
- ## <a name="paymentProofRejectionReason"></a>38. Property `paymentProofRejectionReason`
1317
+ ## <a name="paymentProofRejectionReason"></a>39. Property `paymentProofRejectionReason`
1290
1318
 
1291
1319
  | | |
1292
1320
  | ------------ | ---------------- |
1293
1321
  | **Type** | `string or null` |
1294
1322
  | **Required** | No |
1295
1323
 
1296
- ## <a name="paymentStatusChangeReason"></a>39. Property `paymentStatusChangeReason`
1324
+ ## <a name="paymentStatusChangeReason"></a>40. Property `paymentStatusChangeReason`
1297
1325
 
1298
1326
  | | |
1299
1327
  | ------------ | ---------------- |
1300
1328
  | **Type** | `string or null` |
1301
1329
  | **Required** | No |
1302
1330
 
1303
- ## <a name="paymentStatusChangedBy"></a>40. Property `paymentStatusChangedBy`
1331
+ ## <a name="paymentStatusChangedBy"></a>41. Property `paymentStatusChangedBy`
1304
1332
 
1305
1333
  | | |
1306
1334
  | ------------ | ---------------- |
@@ -1309,7 +1337,7 @@ Do not include in write requests. This field is set exclusively by the server (F
1309
1337
 
1310
1338
  **Description:** FK → User/staff UID who changed payment status.
1311
1339
 
1312
- ## <a name="paymentStatusChangedAt"></a>41. Property `paymentStatusChangedAt`
1340
+ ## <a name="paymentStatusChangedAt"></a>42. Property `paymentStatusChangedAt`
1313
1341
 
1314
1342
  | | |
1315
1343
  | ------------------------- | ---------------- |
@@ -1324,7 +1352,7 @@ Do not include in write requests. This field is set exclusively by the server (F
1324
1352
  | [firestore-timestamp](#paymentStatusChangedAt_anyOf_i0) |
1325
1353
  | [item 1](#paymentStatusChangedAt_anyOf_i1) |
1326
1354
 
1327
- ### <a name="paymentStatusChangedAt_anyOf_i0"></a>41.1. Property `firestore-timestamp`
1355
+ ### <a name="paymentStatusChangedAt_anyOf_i0"></a>42.1. Property `firestore-timestamp`
1328
1356
 
1329
1357
  | | |
1330
1358
  | ------------------------- | ----------------------- |
@@ -1335,7 +1363,7 @@ Do not include in write requests. This field is set exclusively by the server (F
1335
1363
 
1336
1364
  **Description:** Firestore Timestamp serialized representation
1337
1365
 
1338
- ### <a name="paymentStatusChangedAt_anyOf_i1"></a>41.2. Property `item 1`
1366
+ ### <a name="paymentStatusChangedAt_anyOf_i1"></a>42.2. Property `item 1`
1339
1367
 
1340
1368
  | | |
1341
1369
  | ------------ | ------ |
@@ -1346,7 +1374,7 @@ Do not include in write requests. This field is set exclusively by the server (F
1346
1374
  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.
1347
1375
  :::
1348
1376
 
1349
- ## <a name="payments"></a>42. Property `payments`
1377
+ ## <a name="payments"></a>43. Property `payments`
1350
1378
 
1351
1379
  | | |
1352
1380
  | ------------ | ------------------------- |
@@ -1367,7 +1395,7 @@ Do not include in write requests. This field is set exclusively by the server (F
1367
1395
  | --------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
1368
1396
  | [payments items](#payments_items) | [TBD/WIP — IG-4] Denormalized payment snapshot. Subset of CustomerPayment (D22), written when a payment is allocated to this order. Sync rules pending IG-4 resolution. |
1369
1397
 
1370
- ### <a name="payments_items"></a>42.1. payments items
1398
+ ### <a name="payments_items"></a>43.1. payments items
1371
1399
 
1372
1400
  | | |
1373
1401
  | ------------------------- | ----------- |
@@ -1387,7 +1415,7 @@ Do not include in write requests. This field is set exclusively by the server (F
1387
1415
  | - [referenceNumber](#payments_items_referenceNumber ) | No | string | No | - | Payment reference (receipt number, transaction ID, etc.). |
1388
1416
  | + [status](#payments_items_status ) | No | enum (of string) | No | In #/definitions/customer-payment-status | Payment status at time of snapshot. May lag CustomerPayment.status until re-synced. |
1389
1417
 
1390
- #### <a name="payments_items_paymentId"></a>42.1.1. Property `paymentId`
1418
+ #### <a name="payments_items_paymentId"></a>43.1.1. Property `paymentId`
1391
1419
 
1392
1420
  | | |
1393
1421
  | ------------ | -------- |
@@ -1396,7 +1424,7 @@ Do not include in write requests. This field is set exclusively by the server (F
1396
1424
 
1397
1425
  **Description:** (Immutable) FK → CustomerPayment.id. Source document for this snapshot.
1398
1426
 
1399
- #### <a name="payments_items_amount"></a>42.1.2. Property `amount`
1427
+ #### <a name="payments_items_amount"></a>43.1.2. Property `amount`
1400
1428
 
1401
1429
  | | |
1402
1430
  | ------------ | -------- |
@@ -1405,7 +1433,7 @@ Do not include in write requests. This field is set exclusively by the server (F
1405
1433
 
1406
1434
  **Description:** Total payment amount.
1407
1435
 
1408
- #### <a name="payments_items_currency"></a>42.1.3. Property `currency`
1436
+ #### <a name="payments_items_currency"></a>43.1.3. Property `currency`
1409
1437
 
1410
1438
  | | |
1411
1439
  | ------------ | ------- |
@@ -1416,7 +1444,7 @@ Do not include in write requests. This field is set exclusively by the server (F
1416
1444
 
1417
1445
  Specific value: `"XOF"`
1418
1446
 
1419
- #### <a name="payments_items_paymentMethod"></a>42.1.4. Property `paymentMethod`
1447
+ #### <a name="payments_items_paymentMethod"></a>43.1.4. Property `paymentMethod`
1420
1448
 
1421
1449
  | | |
1422
1450
  | ---------------------- | ------------------------------------------------- |
@@ -1426,7 +1454,7 @@ Specific value: `"XOF"`
1426
1454
 
1427
1455
  **Description:** Payment method used (D02).
1428
1456
 
1429
- #### <a name="payments_items_paymentDate"></a>42.1.5. Property `paymentDate`
1457
+ #### <a name="payments_items_paymentDate"></a>43.1.5. Property `paymentDate`
1430
1458
 
1431
1459
  | | |
1432
1460
  | ------------------------- | ----------------------- |
@@ -1437,7 +1465,7 @@ Specific value: `"XOF"`
1437
1465
 
1438
1466
  **Description:** Firestore Timestamp serialized representation
1439
1467
 
1440
- #### <a name="payments_items_referenceNumber"></a>42.1.6. Property `referenceNumber`
1468
+ #### <a name="payments_items_referenceNumber"></a>43.1.6. Property `referenceNumber`
1441
1469
 
1442
1470
  | | |
1443
1471
  | ------------ | -------- |
@@ -1446,7 +1474,7 @@ Specific value: `"XOF"`
1446
1474
 
1447
1475
  **Description:** Payment reference (receipt number, transaction ID, etc.).
1448
1476
 
1449
- #### <a name="payments_items_status"></a>42.1.7. Property `status`
1477
+ #### <a name="payments_items_status"></a>43.1.7. Property `status`
1450
1478
 
1451
1479
  | | |
1452
1480
  | -------------- | ------------------------------------- |
@@ -1472,7 +1500,7 @@ Shape and sync rules are TBD pending IG-4 resolution. Do not build production lo
1472
1500
  **Issues:** `IG-4`
1473
1501
  :::
1474
1502
 
1475
- ## <a name="totalOverridden"></a>43. Property `totalOverridden`
1503
+ ## <a name="totalOverridden"></a>44. Property `totalOverridden`
1476
1504
 
1477
1505
  | | |
1478
1506
  | ------------ | ----------------- |
@@ -1489,7 +1517,7 @@ Set only by the mobile app when the user manually edits the order total. Dashboa
1489
1517
  **Decisions:** `D14`
1490
1518
  :::
1491
1519
 
1492
- ## <a name="notes"></a>44. Property `notes`
1520
+ ## <a name="notes"></a>45. Property `notes`
1493
1521
 
1494
1522
  | | |
1495
1523
  | ------------ | ------------------------- |
@@ -1508,7 +1536,7 @@ Set only by the mobile app when the user manually edits the order total. Dashboa
1508
1536
  | ------------------------------- | -------------------------------------- |
1509
1537
  | [notes items](#notes_items) | Timestamped note attached to an Order. |
1510
1538
 
1511
- ### <a name="notes_items"></a>44.1. notes items
1539
+ ### <a name="notes_items"></a>45.1. notes items
1512
1540
 
1513
1541
  | | |
1514
1542
  | ------------------------- | ----------- |
@@ -1526,7 +1554,7 @@ Set only by the mobile app when the user manually edits the order total. Dashboa
1526
1554
  | - [createdBy](#notes_items_createdBy ) | No | string | No | - | (Immutable) FK → User/staff UID who created this note. |
1527
1555
  | - [createdByName](#notes_items_createdByName ) | No | string | No | - | (Denormalized) From User display name at write time. |
1528
1556
 
1529
- #### <a name="notes_items_id"></a>44.1.1. Property `id`
1557
+ #### <a name="notes_items_id"></a>45.1.1. Property `id`
1530
1558
 
1531
1559
  | | |
1532
1560
  | ------------ | -------- |
@@ -1535,14 +1563,14 @@ Set only by the mobile app when the user manually edits the order total. Dashboa
1535
1563
 
1536
1564
  **Description:** (Read-only) Note ID. Server-generated.
1537
1565
 
1538
- #### <a name="notes_items_text"></a>44.1.2. Property `text`
1566
+ #### <a name="notes_items_text"></a>45.1.2. Property `text`
1539
1567
 
1540
1568
  | | |
1541
1569
  | ------------ | -------- |
1542
1570
  | **Type** | `string` |
1543
1571
  | **Required** | Yes |
1544
1572
 
1545
- #### <a name="notes_items_createdAt"></a>44.1.3. Property `createdAt`
1573
+ #### <a name="notes_items_createdAt"></a>45.1.3. Property `createdAt`
1546
1574
 
1547
1575
  | | |
1548
1576
  | ------------------------- | --------------------------------- |
@@ -1558,7 +1586,7 @@ Set only by the mobile app when the user manually edits the order total. Dashboa
1558
1586
  | + [_seconds](#createdAt__seconds ) | No | integer | No | - | - |
1559
1587
  | + [_nanoseconds](#createdAt__nanoseconds ) | No | integer | No | - | - |
1560
1588
 
1561
- ##### <a name="createdAt__seconds"></a>44.1.3.1. Property `_seconds`
1589
+ ##### <a name="createdAt__seconds"></a>45.1.3.1. Property `_seconds`
1562
1590
 
1563
1591
  | | |
1564
1592
  | ------------ | --------- |
@@ -1570,7 +1598,7 @@ Set only by the mobile app when the user manually edits the order total. Dashboa
1570
1598
  | **Minimum** | &ge; -9007199254740991 |
1571
1599
  | **Maximum** | &le; 9007199254740991 |
1572
1600
 
1573
- ##### <a name="createdAt__nanoseconds"></a>44.1.3.2. Property `_nanoseconds`
1601
+ ##### <a name="createdAt__nanoseconds"></a>45.1.3.2. Property `_nanoseconds`
1574
1602
 
1575
1603
  | | |
1576
1604
  | ------------ | --------- |
@@ -1582,7 +1610,7 @@ Set only by the mobile app when the user manually edits the order total. Dashboa
1582
1610
  | **Minimum** | &ge; -9007199254740991 |
1583
1611
  | **Maximum** | &le; 9007199254740991 |
1584
1612
 
1585
- #### <a name="notes_items_createdBy"></a>44.1.4. Property `createdBy`
1613
+ #### <a name="notes_items_createdBy"></a>45.1.4. Property `createdBy`
1586
1614
 
1587
1615
  | | |
1588
1616
  | ------------ | -------- |
@@ -1591,7 +1619,7 @@ Set only by the mobile app when the user manually edits the order total. Dashboa
1591
1619
 
1592
1620
  **Description:** (Immutable) FK → User/staff UID who created this note.
1593
1621
 
1594
- #### <a name="notes_items_createdByName"></a>44.1.5. Property `createdByName`
1622
+ #### <a name="notes_items_createdByName"></a>45.1.5. Property `createdByName`
1595
1623
 
1596
1624
  | | |
1597
1625
  | ------------ | -------- |
@@ -1600,21 +1628,21 @@ Set only by the mobile app when the user manually edits the order total. Dashboa
1600
1628
 
1601
1629
  **Description:** (Denormalized) From User display name at write time.
1602
1630
 
1603
- ## <a name="additionalInfo"></a>45. Property `additionalInfo`
1631
+ ## <a name="additionalInfo"></a>46. Property `additionalInfo`
1604
1632
 
1605
1633
  | | |
1606
1634
  | ------------ | ---------------- |
1607
1635
  | **Type** | `string or null` |
1608
1636
  | **Required** | No |
1609
1637
 
1610
- ## <a name="appliedDiscountCode"></a>46. Property `appliedDiscountCode`
1638
+ ## <a name="appliedDiscountCode"></a>47. Property `appliedDiscountCode`
1611
1639
 
1612
1640
  | | |
1613
1641
  | ------------ | ---------------- |
1614
1642
  | **Type** | `string or null` |
1615
1643
  | **Required** | No |
1616
1644
 
1617
- ## <a name="purchaseId"></a>47. Property `purchaseId`
1645
+ ## <a name="purchaseId"></a>48. Property `purchaseId`
1618
1646
 
1619
1647
  | | |
1620
1648
  | ------------ | ---------------- |
@@ -1624,7 +1652,7 @@ Set only by the mobile app when the user manually edits the order total. Dashboa
1624
1652
  **Description:** FK → Sale.id. Link to associated Sale document.
1625
1653
 
1626
1654
  ----------------------------------------------------------------------------------------------------------------------------
1627
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-04-18 at 21:21:09 +0000
1655
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-05 at 12:09:28 +0000
1628
1656
 
1629
1657
  ## Related Decisions
1630
1658