@ingenx-io/valets-schema-mcp-server 0.2.3 → 0.2.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.
- package/README.md +26 -0
- package/data/docs/collections/firestore-paths.md +32 -20
- package/data/docs/enums/app-status.md +24 -0
- package/data/docs/enums/attention-status.md +2 -2
- package/data/docs/enums/booking-status.md +2 -2
- package/data/docs/enums/customer-payment-status.md +2 -2
- package/data/docs/enums/customer-payment-target-type.md +2 -2
- package/data/docs/enums/delivery-type.md +2 -2
- package/data/docs/enums/deployment-link-type.md +2 -2
- package/data/docs/enums/event-status.md +2 -2
- package/data/docs/enums/fulfillment-status.md +2 -2
- package/data/docs/enums/loyalty-transaction-type.md +2 -2
- package/data/docs/enums/notification-channel.md +2 -2
- package/data/docs/enums/notification-entity-type.md +2 -2
- package/data/docs/enums/notification-status.md +2 -2
- package/data/docs/enums/order-status.md +2 -2
- package/data/docs/enums/outbound-message-format.md +2 -2
- package/data/docs/enums/outbound-message-purpose.md +2 -2
- package/data/docs/enums/outbound-message-status.md +2 -2
- package/data/docs/enums/payment-method.md +2 -2
- package/data/docs/enums/payment-proof-status.md +2 -2
- package/data/docs/enums/payment-status.md +2 -2
- package/data/docs/enums/pending-issue.md +2 -2
- package/data/docs/enums/return-status.md +2 -2
- package/data/docs/enums/session-status.md +2 -2
- package/data/docs/enums/site-status.md +2 -2
- package/data/docs/enums/stocktake-frequency.md +2 -2
- package/data/docs/enums/stocktake-item-status.md +2 -2
- package/data/docs/enums/stocktake-status.md +2 -2
- package/data/docs/enums/ticket-status.md +2 -2
- package/data/docs/enums/waba-label.md +2 -2
- package/data/docs/enums/whatsapp-button-sub-type.md +2 -2
- package/data/docs/enums/whatsapp-template-component.md +2 -2
- package/data/docs/enums/whatsapp-template-status.md +2 -2
- package/data/docs/index.md +9 -5
- package/data/docs/models/allowed-user.md +7 -7
- package/data/docs/models/analytics-backfill.md +7 -7
- package/data/docs/models/analytics-daily.md +6 -6
- package/data/docs/models/analytics-event.md +7 -7
- package/data/docs/models/analytics-hourly.md +6 -6
- package/data/docs/models/app-payment.md +200 -0
- package/data/docs/models/app.md +561 -0
- package/data/docs/models/booking-version.md +2 -2
- package/data/docs/models/booking.md +127 -127
- package/data/docs/models/customer-payment-allocation.md +20 -20
- package/data/docs/models/customer-payment.md +23 -23
- package/data/docs/models/customer.md +11 -11
- package/data/docs/models/event.md +22 -22
- package/data/docs/models/loyalty-config.md +4 -4
- package/data/docs/models/loyalty-reward.md +3 -3
- package/data/docs/models/loyalty-status.md +6 -6
- package/data/docs/models/loyalty-transaction.md +2 -2
- package/data/docs/models/magic-link-request.md +9 -9
- package/data/docs/models/metrics-current.md +169 -37
- package/data/docs/models/metrics-daily.md +172 -40
- package/data/docs/models/metrics-monthly.md +172 -40
- package/data/docs/models/notification-record.md +3 -3
- package/data/docs/models/order-item.md +6 -6
- package/data/docs/models/order.md +78 -78
- package/data/docs/models/sale.md +18 -18
- package/data/docs/models/site-payment.md +2 -2
- package/data/docs/models/site.md +2 -2
- package/data/docs/models/stocktake-item.md +4 -4
- package/data/docs/models/stocktake.md +5 -5
- package/data/docs/models/ticket.md +3 -3
- package/data/docs/models/user.md +249 -0
- package/data/docs/models/whatsapp-inbound-message.md +2 -2
- package/data/docs/models/whatsapp-outbound-lifecycle-event.md +2 -2
- package/data/docs/models/whatsapp-outbound-message.md +6 -6
- package/data/docs/models/whatsapp-template.md +2 -2
- package/data/static/cookbook.json +150 -0
- package/data/static/llms.txt +179 -33
- package/data/static/openapi.yaml +626 -60
- package/data/static/schemas.json +680 -69
- package/index.js +32 -0
- package/package.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: "Booking"
|
|
3
3
|
sidebar_label: "Booking"
|
|
4
|
-
sidebar_position:
|
|
4
|
+
sidebar_position: 8
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Booking
|
|
@@ -232,60 +232,60 @@ sidebar_position: 6
|
|
|
232
232
|
|
|
233
233
|
**Description:** Booking model. Collection: companies/\{companyId\}/bookings/\{bookingId\}. All platforms. Uses BookingStatus (6 values) and SessionStatus (D19) for per-date/slot tracking.
|
|
234
234
|
|
|
235
|
-
| Property | Pattern | Type | Deprecated | Definition | Title/Description
|
|
236
|
-
| -------------------------------------------------------------- | ------- | ----------------------- | ---------- | ------------------------------------ |
|
|
237
|
-
| + [id](#id ) | No | string | No | - | (Read-only) Firestore document ID.
|
|
238
|
-
| + [uid](#uid ) | No | string | No | - | (Read-only) Entity UID. Often mirrors id.
|
|
239
|
-
| - [companyId](#companyId ) | No | string or null | No | - | (Immutable) FK → Company document ID. Note: optional in current schema — should be required (see ID consistency audit).
|
|
240
|
-
| + [status](#status ) | No | enum (of string) | No | In #/definitions/booking-status | Booking lifecycle status. COMPLETED_MIXED = some sessions completed, others cancelled/no-show.
|
|
241
|
-
| + [totalAmount](#totalAmount ) | No | number | No | - | -
|
|
242
|
-
| + [bookingDates](#bookingDates ) | No | array of object | No | - | -
|
|
243
|
-
| - [customerId](#customerId ) | No | string or null | No | - | FK → Customer.id (Firestore doc ID). Links booking to customer record.
|
|
244
|
-
| - [client](#client ) | No | object or null | No | - | (Denormalized) Embedded client snapshot from Customer at write time.
|
|
245
|
-
| - [customerName](#customerName ) | No | string or null | No | - | (Denormalized) From Customer.name at write time. Canonical field per D24.
|
|
246
|
-
| - [customerEmail](#customerEmail ) | No | string or null | No | - | (Denormalized) From Customer.email at write time. Canonical field per D24.
|
|
247
|
-
| - [customerPhone](#customerPhone ) | No | string or null | No | - | (Denormalized) From Customer.phone at write time. Canonical field per D24.
|
|
248
|
-
| - [clientName](#clientName ) | No | string or null | No | - | (Denormalized) Legacy — use \`customerName\`. D24 standardized to customer* prefix.
|
|
249
|
-
| + [clientReference](#clientReference ) | No | string | No | - | -
|
|
250
|
-
| - [clientEmail](#clientEmail ) | No | string or null | No | - | (Denormalized) Legacy — use \`customerEmail\`. D24 standardized to customer* prefix.
|
|
251
|
-
| - [clientPhone](#clientPhone ) | No | string or null | No | - | (Denormalized) Legacy — use \`customerPhone\`. D24 standardized to customer* prefix.
|
|
252
|
-
| - [service](#service ) | No | object or null | No | - | -
|
|
253
|
-
| - [serviceId](#serviceId ) | No | string or null | No | - | FK → Service document ID.
|
|
254
|
-
| - [serviceName](#serviceName ) | No | string or null | No | - | (Denormalized) From Service.name at write time.
|
|
255
|
-
| - [timeSlot](#timeSlot ) | No | string or null | No | - | -
|
|
256
|
-
| - [date](#date ) | No | string or null | No | - | -
|
|
257
|
-
| - [startDate](#startDate ) | No | string or null | No | - | -
|
|
258
|
-
| - [endDate](#endDate ) | No | string or null | No | - | -
|
|
259
|
-
| - [startTime](#startTime ) | No | string or null | No | - | -
|
|
260
|
-
| - [endTime](#endTime ) | No | string or null | No | - | -
|
|
261
|
-
| - [notes](#notes ) | No | array of object or null | No | - | -
|
|
262
|
-
| - [technicalInfo](#technicalInfo ) | No | string or null | No | - | -
|
|
263
|
-
| - [paymentStatus](#paymentStatus ) | No | Combination | No | - | Payment lifecycle status (D01 amended). Used by Order, Sale/Purchase, Booking.
|
|
264
|
-
| - [amountPaid](#amountPaid ) | No | number or null | No | - | -
|
|
265
|
-
| - [amountRefunded](#amountRefunded ) | No | number or null | No | - | -
|
|
266
|
-
| - [amountPending](#amountPending ) | No | number or null | No | - | -
|
|
267
|
-
| - [purchaseId](#purchaseId ) | No | string or null | No | - | FK → Sale.id. Link to associated Sale document.
|
|
268
|
-
| - [paymentStatusChangeReason](#paymentStatusChangeReason ) | No | string or null | No | - | -
|
|
269
|
-
| - [paymentStatusChangedBy](#paymentStatusChangedBy ) | No | string or null | No | - | FK → User/staff UID who changed payment status.
|
|
270
|
-
| - [paymentStatusChangedAt](#paymentStatusChangedAt ) | No | Combination | No | - | Firestore Timestamp
|
|
271
|
-
| - [paymentProofUrl](#paymentProofUrl ) | No | string or null | No | - | URL to uploaded payment proof image/document.
|
|
272
|
-
| - [paymentProofStatus](#paymentProofStatus ) | No | Combination | No | - | Payment proof review status. Used by Order and Booking payment proof workflows.
|
|
273
|
-
| - [paymentProofAddedAt](#paymentProofAddedAt ) | No | Combination | No | - | Firestore Timestamp
|
|
274
|
-
| - [paymentProofAddedBy](#paymentProofAddedBy ) | No | string or null | No | - | FK → User/staff UID who uploaded the payment proof.
|
|
275
|
-
| - [paymentProofReviewedBy](#paymentProofReviewedBy ) | No | string or null | No | - | FK → User/staff UID who reviewed the payment proof.
|
|
276
|
-
| - [paymentProofReviewedAt](#paymentProofReviewedAt ) | No | Combination | No | - | Firestore Timestamp
|
|
277
|
-
| - [paymentProofRejectionReason](#paymentProofRejectionReason ) | No | string or null | No | - | -
|
|
278
|
-
| - [cancellationRequestedById](#cancellationRequestedById ) | No | string or null | No | - | FK → User/staff UID who requested cancellation.
|
|
279
|
-
| - [cancellationRequestReason](#cancellationRequestReason ) | No | string or null | No | - | -
|
|
280
|
-
| - [cancellationProcessedById](#cancellationProcessedById ) | No | string or null | No | - | FK → User/staff UID who processed the cancellation.
|
|
281
|
-
| - [cancellationProcessedAt](#cancellationProcessedAt ) | No | Combination | No | - | Firestore Timestamp
|
|
282
|
-
| - [cancelledByRole](#cancelledByRole ) | No | string or null | No | - | -
|
|
283
|
-
| - [cancellationReason](#cancellationReason ) | No | string or null | No | - | -
|
|
284
|
-
| + [createdAt](#createdAt ) | No | object | No | In #/definitions/firestore-timestamp | (Read-only) Server-generated creation timestamp.
|
|
285
|
-
| - [updatedAt](#updatedAt ) | No | Combination | No | - | (Read-only) Server-generated update timestamp.
|
|
286
|
-
| - [createdBy](#createdBy ) | No | string or null | No | - | (Immutable) FK → User/staff UID who created this booking.
|
|
287
|
-
| - [updatedBy](#updatedBy ) | No | string or null | No | - | FK → User/staff UID who last updated this booking.
|
|
288
|
-
| - [createdFromBackend](#createdFromBackend ) | No | boolean or null | No | - | When true, suppresses Firebase notification triggers (D20/IG-8).
|
|
235
|
+
| Property | Pattern | Type | Deprecated | Definition | Title/Description |
|
|
236
|
+
| -------------------------------------------------------------- | ------- | ----------------------- | ---------- | ------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
237
|
+
| + [id](#id ) | No | string | No | - | (Read-only) Firestore document ID. |
|
|
238
|
+
| + [uid](#uid ) | No | string | No | - | (Read-only) Entity UID. Often mirrors id. |
|
|
239
|
+
| - [companyId](#companyId ) | No | string or null | No | - | (Immutable) FK → Company document ID. Note: optional in current schema — should be required (see ID consistency audit). |
|
|
240
|
+
| + [status](#status ) | No | enum (of string) | No | In #/definitions/booking-status | Booking lifecycle status. COMPLETED_MIXED = some sessions completed, others cancelled/no-show. |
|
|
241
|
+
| + [totalAmount](#totalAmount ) | No | number | No | - | - |
|
|
242
|
+
| + [bookingDates](#bookingDates ) | No | array of object | No | - | - |
|
|
243
|
+
| - [customerId](#customerId ) | No | string or null | No | - | FK → Customer.id (Firestore doc ID). Links booking to customer record. |
|
|
244
|
+
| - [client](#client ) | No | object or null | No | - | (Denormalized) Embedded client snapshot from Customer at write time. |
|
|
245
|
+
| - [customerName](#customerName ) | No | string or null | No | - | (Denormalized) From Customer.name at write time. Canonical field per D24. |
|
|
246
|
+
| - [customerEmail](#customerEmail ) | No | string or null | No | - | (Denormalized) From Customer.email at write time. Canonical field per D24. |
|
|
247
|
+
| - [customerPhone](#customerPhone ) | No | string or null | No | - | (Denormalized) From Customer.phone at write time. Canonical field per D24. |
|
|
248
|
+
| - [clientName](#clientName ) | No | string or null | No | - | (Denormalized) Legacy — use \`customerName\`. D24 standardized to customer* prefix. |
|
|
249
|
+
| + [clientReference](#clientReference ) | No | string | No | - | - |
|
|
250
|
+
| - [clientEmail](#clientEmail ) | No | string or null | No | - | (Denormalized) Legacy — use \`customerEmail\`. D24 standardized to customer* prefix. |
|
|
251
|
+
| - [clientPhone](#clientPhone ) | No | string or null | No | - | (Denormalized) Legacy — use \`customerPhone\`. D24 standardized to customer* prefix. |
|
|
252
|
+
| - [service](#service ) | No | object or null | No | - | - |
|
|
253
|
+
| - [serviceId](#serviceId ) | No | string or null | No | - | FK → Service document ID. |
|
|
254
|
+
| - [serviceName](#serviceName ) | No | string or null | No | - | (Denormalized) From Service.name at write time. |
|
|
255
|
+
| - [timeSlot](#timeSlot ) | No | string or null | No | - | - |
|
|
256
|
+
| - [date](#date ) | No | string or null | No | - | - |
|
|
257
|
+
| - [startDate](#startDate ) | No | string or null | No | - | - |
|
|
258
|
+
| - [endDate](#endDate ) | No | string or null | No | - | - |
|
|
259
|
+
| - [startTime](#startTime ) | No | string or null | No | - | - |
|
|
260
|
+
| - [endTime](#endTime ) | No | string or null | No | - | - |
|
|
261
|
+
| - [notes](#notes ) | No | array of object or null | No | - | - |
|
|
262
|
+
| - [technicalInfo](#technicalInfo ) | No | string or null | No | - | - |
|
|
263
|
+
| - [paymentStatus](#paymentStatus ) | No | Combination | No | - | Payment lifecycle status (D01 amended). Used by Order, Sale/Purchase, Booking. |
|
|
264
|
+
| - [amountPaid](#amountPaid ) | No | number or null | No | - | - |
|
|
265
|
+
| - [amountRefunded](#amountRefunded ) | No | number or null | No | - | - |
|
|
266
|
+
| - [amountPending](#amountPending ) | No | number or null | No | - | - |
|
|
267
|
+
| - [purchaseId](#purchaseId ) | No | string or null | No | - | FK → Sale.id. Link to associated Sale document. |
|
|
268
|
+
| - [paymentStatusChangeReason](#paymentStatusChangeReason ) | No | string or null | No | - | - |
|
|
269
|
+
| - [paymentStatusChangedBy](#paymentStatusChangedBy ) | No | string or null | No | - | FK → User/staff UID who changed payment status. |
|
|
270
|
+
| - [paymentStatusChangedAt](#paymentStatusChangedAt ) | No | Combination | No | - | Firestore Timestamp — Admin SDK form: \{ _seconds, _nanoseconds \}. See types/firestore.ts for REST API v1 and client SDK serialization notes (#10). |
|
|
271
|
+
| - [paymentProofUrl](#paymentProofUrl ) | No | string or null | No | - | URL to uploaded payment proof image/document. |
|
|
272
|
+
| - [paymentProofStatus](#paymentProofStatus ) | No | Combination | No | - | Payment proof review status. Used by Order and Booking payment proof workflows. |
|
|
273
|
+
| - [paymentProofAddedAt](#paymentProofAddedAt ) | No | Combination | No | - | Firestore Timestamp — Admin SDK form: \{ _seconds, _nanoseconds \}. See types/firestore.ts for REST API v1 and client SDK serialization notes (#10). |
|
|
274
|
+
| - [paymentProofAddedBy](#paymentProofAddedBy ) | No | string or null | No | - | FK → User/staff UID who uploaded the payment proof. |
|
|
275
|
+
| - [paymentProofReviewedBy](#paymentProofReviewedBy ) | No | string or null | No | - | FK → User/staff UID who reviewed the payment proof. |
|
|
276
|
+
| - [paymentProofReviewedAt](#paymentProofReviewedAt ) | No | Combination | No | - | Firestore Timestamp — Admin SDK form: \{ _seconds, _nanoseconds \}. See types/firestore.ts for REST API v1 and client SDK serialization notes (#10). |
|
|
277
|
+
| - [paymentProofRejectionReason](#paymentProofRejectionReason ) | No | string or null | No | - | - |
|
|
278
|
+
| - [cancellationRequestedById](#cancellationRequestedById ) | No | string or null | No | - | FK → User/staff UID who requested cancellation. |
|
|
279
|
+
| - [cancellationRequestReason](#cancellationRequestReason ) | No | string or null | No | - | - |
|
|
280
|
+
| - [cancellationProcessedById](#cancellationProcessedById ) | No | string or null | No | - | FK → User/staff UID who processed the cancellation. |
|
|
281
|
+
| - [cancellationProcessedAt](#cancellationProcessedAt ) | No | Combination | No | - | Firestore Timestamp — Admin SDK form: \{ _seconds, _nanoseconds \}. See types/firestore.ts for REST API v1 and client SDK serialization notes (#10). |
|
|
282
|
+
| - [cancelledByRole](#cancelledByRole ) | No | string or null | No | - | - |
|
|
283
|
+
| - [cancellationReason](#cancellationReason ) | No | string or null | No | - | - |
|
|
284
|
+
| + [createdAt](#createdAt ) | No | object | No | In #/definitions/firestore-timestamp | (Read-only) Server-generated creation timestamp. |
|
|
285
|
+
| - [updatedAt](#updatedAt ) | No | Combination | No | - | (Read-only) Server-generated update timestamp. |
|
|
286
|
+
| - [createdBy](#createdBy ) | No | string or null | No | - | (Immutable) FK → User/staff UID who created this booking. |
|
|
287
|
+
| - [updatedBy](#updatedBy ) | No | string or null | No | - | FK → User/staff UID who last updated this booking. |
|
|
288
|
+
| - [createdFromBackend](#createdFromBackend ) | No | boolean or null | No | - | When true, suppresses Firebase notification triggers (D20/IG-8). |
|
|
289
289
|
|
|
290
290
|
## <a name="id"></a>1. Property `id`
|
|
291
291
|
|
|
@@ -388,25 +388,25 @@ Booking uses `totalAmount`; Order uses `amount` for the equivalent field (D05 lo
|
|
|
388
388
|
|
|
389
389
|
**Description:** Single date entry within a Booking. Contains time slots, session statuses (D19), and CRDT metadata.
|
|
390
390
|
|
|
391
|
-
| Property | Pattern | Type | Deprecated | Definition | Title/Description
|
|
392
|
-
| ----------------------------------------------------------------- | ------- | ---------------- | ---------- | ----------------------------------------------------------------------------- |
|
|
393
|
-
| + [date](#bookingDates_items_date ) | No | string | No | - | -
|
|
394
|
-
| + [selectedTimeSlots](#bookingDates_items_selectedTimeSlots ) | No | array of object | No | - | -
|
|
395
|
-
| + [slotKitTypes](#bookingDates_items_slotKitTypes ) | No | object | No | - | Kit type per slot (IG-11). Firebase parity gap — exists in Firestore but Firebase type lacked it.
|
|
396
|
-
| + [slotAddOns](#bookingDates_items_slotAddOns ) | No | object | No | - | Add-on IDs per slot. Numeric IDs to be normalized to descriptive names (MIG-07/D10).
|
|
397
|
-
| + [extraHours](#bookingDates_items_extraHours ) | No | number | No | - | -
|
|
398
|
-
| - [status](#bookingDates_items_status ) | No | enum (of string) | No | In #/definitions/session-status | Per-date session status (D19). Dashboard is sole writer; Mobile is read-only.
|
|
399
|
-
| - [statusUpdatedAt](#bookingDates_items_statusUpdatedAt ) | No | object | No | In #/definitions/firestore-timestamp | (Read-only) Timestamp of last status change.
|
|
400
|
-
| - [statusUpdatedBy](#bookingDates_items_statusUpdatedBy ) | No | string | No | - | FK → User/staff UID who updated this date status.
|
|
401
|
-
| - [slotStatuses](#bookingDates_items_slotStatuses ) | No | object | No | - | Per-slot session statuses (D19). Keyed by slot ID string.
|
|
402
|
-
| - [slotStatusUpdatedAt](#bookingDates_items_slotStatusUpdatedAt ) | No | object | No | - | -
|
|
403
|
-
| - [slotStatusUpdatedBy](#bookingDates_items_slotStatusUpdatedBy ) | No | object | No | - | -
|
|
404
|
-
| - [_deleted](#bookingDates_items__deleted ) | No | boolean | No | - | Soft-delete flag. Dashboard writes; Mobile filters (IG-6).
|
|
405
|
-
| - [_deletedAt](#bookingDates_items__deletedAt ) | No | object | No | Same as [_deletedAt](#bookingDates_items_selectedTimeSlots_items__deletedAt ) | Firestore Timestamp
|
|
406
|
-
| - [_deletedBy](#bookingDates_items__deletedBy ) | No | string | No | - | FK → User/staff UID who soft-deleted this item.
|
|
407
|
-
| - [_lastModifiedAt](#bookingDates_items__lastModifiedAt ) | No | object | No | Same as [_deletedAt](#bookingDates_items_selectedTimeSlots_items__deletedAt ) | Firestore Timestamp
|
|
408
|
-
| - [_lastModifiedBy](#bookingDates_items__lastModifiedBy ) | No | string | No | - | FK → User/staff UID who last modified this item.
|
|
409
|
-
| - [_version](#bookingDates_items__version ) | No | number | No | - | Monotonic version counter for conflict detection.
|
|
391
|
+
| Property | Pattern | Type | Deprecated | Definition | Title/Description |
|
|
392
|
+
| ----------------------------------------------------------------- | ------- | ---------------- | ---------- | ----------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
393
|
+
| + [date](#bookingDates_items_date ) | No | string | No | - | - |
|
|
394
|
+
| + [selectedTimeSlots](#bookingDates_items_selectedTimeSlots ) | No | array of object | No | - | - |
|
|
395
|
+
| + [slotKitTypes](#bookingDates_items_slotKitTypes ) | No | object | No | - | Kit type per slot (IG-11). Firebase parity gap — exists in Firestore but Firebase type lacked it. |
|
|
396
|
+
| + [slotAddOns](#bookingDates_items_slotAddOns ) | No | object | No | - | Add-on IDs per slot. Numeric IDs to be normalized to descriptive names (MIG-07/D10). |
|
|
397
|
+
| + [extraHours](#bookingDates_items_extraHours ) | No | number | No | - | - |
|
|
398
|
+
| - [status](#bookingDates_items_status ) | No | enum (of string) | No | In #/definitions/session-status | Per-date session status (D19). Dashboard is sole writer; Mobile is read-only. |
|
|
399
|
+
| - [statusUpdatedAt](#bookingDates_items_statusUpdatedAt ) | No | object | No | In #/definitions/firestore-timestamp | (Read-only) Timestamp of last status change. |
|
|
400
|
+
| - [statusUpdatedBy](#bookingDates_items_statusUpdatedBy ) | No | string | No | - | FK → User/staff UID who updated this date status. |
|
|
401
|
+
| - [slotStatuses](#bookingDates_items_slotStatuses ) | No | object | No | - | Per-slot session statuses (D19). Keyed by slot ID string. |
|
|
402
|
+
| - [slotStatusUpdatedAt](#bookingDates_items_slotStatusUpdatedAt ) | No | object | No | - | - |
|
|
403
|
+
| - [slotStatusUpdatedBy](#bookingDates_items_slotStatusUpdatedBy ) | No | object | No | - | - |
|
|
404
|
+
| - [_deleted](#bookingDates_items__deleted ) | No | boolean | No | - | Soft-delete flag. Dashboard writes; Mobile filters (IG-6). |
|
|
405
|
+
| - [_deletedAt](#bookingDates_items__deletedAt ) | No | object | No | Same as [_deletedAt](#bookingDates_items_selectedTimeSlots_items__deletedAt ) | Firestore Timestamp — Admin SDK form: \{ _seconds, _nanoseconds \}. See types/firestore.ts for REST API v1 and client SDK serialization notes (#10). |
|
|
406
|
+
| - [_deletedBy](#bookingDates_items__deletedBy ) | No | string | No | - | FK → User/staff UID who soft-deleted this item. |
|
|
407
|
+
| - [_lastModifiedAt](#bookingDates_items__lastModifiedAt ) | No | object | No | Same as [_deletedAt](#bookingDates_items_selectedTimeSlots_items__deletedAt ) | Firestore Timestamp — Admin SDK form: \{ _seconds, _nanoseconds \}. See types/firestore.ts for REST API v1 and client SDK serialization notes (#10). |
|
|
408
|
+
| - [_lastModifiedBy](#bookingDates_items__lastModifiedBy ) | No | string | No | - | FK → User/staff UID who last modified this item. |
|
|
409
|
+
| - [_version](#bookingDates_items__version ) | No | number | No | - | Monotonic version counter for conflict detection. |
|
|
410
410
|
|
|
411
411
|
#### <a name="bookingDates_items_date"></a>6.1.1. Property `date`
|
|
412
412
|
|
|
@@ -444,26 +444,26 @@ Booking uses `totalAmount`; Order uses `amount` for the equivalent field (D05 lo
|
|
|
444
444
|
|
|
445
445
|
**Description:** Selected time slot within a BookingDate. Carries CRDT metadata for conflict-free editing.
|
|
446
446
|
|
|
447
|
-
| Property | Pattern | Type | Deprecated | Definition | Title/Description
|
|
448
|
-
| --------------------------------------------------------------------------------------------------------- | ------- | ------- | ---------- | ----------------------------------------------------------------------------- |
|
|
449
|
-
| + [id](#bookingDates_items_selectedTimeSlots_items_id ) | No | number | No | - | -
|
|
450
|
-
| + [name](#bookingDates_items_selectedTimeSlots_items_name ) | No | string | No | - | -
|
|
451
|
-
| + [timeRange](#bookingDates_items_selectedTimeSlots_items_timeRange ) | No | string | No | - | -
|
|
452
|
-
| + [price](#bookingDates_items_selectedTimeSlots_items_price ) | No | number | No | - | Canonical price field (D11). Replaces legacy standardPrice/fullPrice (MIG-08).
|
|
453
|
-
| + [notMainPurposePrice](#bookingDates_items_selectedTimeSlots_items_notMainPurposePrice ) | No | number | No | - | Price when slot is not the main purpose (D11). Canonical name; replaces legacy aliases (MIG-08).
|
|
454
|
-
| + [hours](#bookingDates_items_selectedTimeSlots_items_hours ) | No | string | No | - | -
|
|
455
|
-
| + [startTime](#bookingDates_items_selectedTimeSlots_items_startTime ) | No | string | No | - | -
|
|
456
|
-
| + [endTime](#bookingDates_items_selectedTimeSlots_items_endTime ) | No | string | No | - | -
|
|
457
|
-
| - [isNightSlot](#bookingDates_items_selectedTimeSlots_items_isNightSlot ) | No | boolean | No | - | -
|
|
458
|
-
| - [isNotMainPurpose](#bookingDates_items_selectedTimeSlots_items_isNotMainPurpose ) | No | boolean | No | - | -
|
|
459
|
-
| - [isNotMainPurposeReason](#bookingDates_items_selectedTimeSlots_items_isNotMainPurposeReason ) | No | string | No | - | -
|
|
460
|
-
| - [isNotMainPurposeOtherReason](#bookingDates_items_selectedTimeSlots_items_isNotMainPurposeOtherReason ) | No | string | No | - | -
|
|
461
|
-
| - [_deleted](#bookingDates_items_selectedTimeSlots_items__deleted ) | No | boolean | No | - | Soft-delete flag. Dashboard writes; Mobile filters (IG-6).
|
|
462
|
-
| - [_deletedAt](#bookingDates_items_selectedTimeSlots_items__deletedAt ) | No | object | No | In #/definitions/firestore-timestamp | Firestore Timestamp
|
|
463
|
-
| - [_deletedBy](#bookingDates_items_selectedTimeSlots_items__deletedBy ) | No | string | No | - | FK → User/staff UID who soft-deleted this item.
|
|
464
|
-
| - [_lastModifiedAt](#bookingDates_items_selectedTimeSlots_items__lastModifiedAt ) | No | object | No | Same as [_deletedAt](#bookingDates_items_selectedTimeSlots_items__deletedAt ) | Firestore Timestamp
|
|
465
|
-
| - [_lastModifiedBy](#bookingDates_items_selectedTimeSlots_items__lastModifiedBy ) | No | string | No | - | FK → User/staff UID who last modified this item.
|
|
466
|
-
| - [_version](#bookingDates_items_selectedTimeSlots_items__version ) | No | number | No | - | Monotonic version counter for conflict detection.
|
|
447
|
+
| Property | Pattern | Type | Deprecated | Definition | Title/Description |
|
|
448
|
+
| --------------------------------------------------------------------------------------------------------- | ------- | ------- | ---------- | ----------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
449
|
+
| + [id](#bookingDates_items_selectedTimeSlots_items_id ) | No | number | No | - | - |
|
|
450
|
+
| + [name](#bookingDates_items_selectedTimeSlots_items_name ) | No | string | No | - | - |
|
|
451
|
+
| + [timeRange](#bookingDates_items_selectedTimeSlots_items_timeRange ) | No | string | No | - | - |
|
|
452
|
+
| + [price](#bookingDates_items_selectedTimeSlots_items_price ) | No | number | No | - | Canonical price field (D11). Replaces legacy standardPrice/fullPrice (MIG-08). |
|
|
453
|
+
| + [notMainPurposePrice](#bookingDates_items_selectedTimeSlots_items_notMainPurposePrice ) | No | number | No | - | Price when slot is not the main purpose (D11). Canonical name; replaces legacy aliases (MIG-08). |
|
|
454
|
+
| + [hours](#bookingDates_items_selectedTimeSlots_items_hours ) | No | string | No | - | - |
|
|
455
|
+
| + [startTime](#bookingDates_items_selectedTimeSlots_items_startTime ) | No | string | No | - | - |
|
|
456
|
+
| + [endTime](#bookingDates_items_selectedTimeSlots_items_endTime ) | No | string | No | - | - |
|
|
457
|
+
| - [isNightSlot](#bookingDates_items_selectedTimeSlots_items_isNightSlot ) | No | boolean | No | - | - |
|
|
458
|
+
| - [isNotMainPurpose](#bookingDates_items_selectedTimeSlots_items_isNotMainPurpose ) | No | boolean | No | - | - |
|
|
459
|
+
| - [isNotMainPurposeReason](#bookingDates_items_selectedTimeSlots_items_isNotMainPurposeReason ) | No | string | No | - | - |
|
|
460
|
+
| - [isNotMainPurposeOtherReason](#bookingDates_items_selectedTimeSlots_items_isNotMainPurposeOtherReason ) | No | string | No | - | - |
|
|
461
|
+
| - [_deleted](#bookingDates_items_selectedTimeSlots_items__deleted ) | No | boolean | No | - | Soft-delete flag. Dashboard writes; Mobile filters (IG-6). |
|
|
462
|
+
| - [_deletedAt](#bookingDates_items_selectedTimeSlots_items__deletedAt ) | No | object | No | In #/definitions/firestore-timestamp | Firestore Timestamp — Admin SDK form: \{ _seconds, _nanoseconds \}. See types/firestore.ts for REST API v1 and client SDK serialization notes (#10). |
|
|
463
|
+
| - [_deletedBy](#bookingDates_items_selectedTimeSlots_items__deletedBy ) | No | string | No | - | FK → User/staff UID who soft-deleted this item. |
|
|
464
|
+
| - [_lastModifiedAt](#bookingDates_items_selectedTimeSlots_items__lastModifiedAt ) | No | object | No | Same as [_deletedAt](#bookingDates_items_selectedTimeSlots_items__deletedAt ) | Firestore Timestamp — Admin SDK form: \{ _seconds, _nanoseconds \}. See types/firestore.ts for REST API v1 and client SDK serialization notes (#10). |
|
|
465
|
+
| - [_lastModifiedBy](#bookingDates_items_selectedTimeSlots_items__lastModifiedBy ) | No | string | No | - | FK → User/staff UID who last modified this item. |
|
|
466
|
+
| - [_version](#bookingDates_items_selectedTimeSlots_items__version ) | No | number | No | - | Monotonic version counter for conflict detection. |
|
|
467
467
|
|
|
468
468
|
###### <a name="bookingDates_items_selectedTimeSlots_items_id"></a>6.1.2.1.1. Property `id`
|
|
469
469
|
|
|
@@ -571,7 +571,7 @@ Booking uses `totalAmount`; Order uses `amount` for the equivalent field (D05 lo
|
|
|
571
571
|
| **Additional properties** | Not allowed |
|
|
572
572
|
| **Defined in** | #/definitions/firestore-timestamp |
|
|
573
573
|
|
|
574
|
-
**Description:** Firestore Timestamp
|
|
574
|
+
**Description:** Firestore Timestamp — Admin SDK form: \{ _seconds, _nanoseconds \}. See types/firestore.ts for REST API v1 and client SDK serialization notes (#10).
|
|
575
575
|
|
|
576
576
|
| Property | Pattern | Type | Deprecated | Definition | Title/Description |
|
|
577
577
|
| -------------------------------------------------------------------------------------- | ------- | ------- | ---------- | ---------- | ----------------- |
|
|
@@ -620,7 +620,7 @@ Booking uses `totalAmount`; Order uses `amount` for the equivalent field (D05 lo
|
|
|
620
620
|
| **Additional properties** | Not allowed |
|
|
621
621
|
| **Same definition as** | [_deletedAt](#bookingDates_items_selectedTimeSlots_items__deletedAt) |
|
|
622
622
|
|
|
623
|
-
**Description:** Firestore Timestamp
|
|
623
|
+
**Description:** Firestore Timestamp — Admin SDK form: \{ _seconds, _nanoseconds \}. See types/firestore.ts for REST API v1 and client SDK serialization notes (#10).
|
|
624
624
|
|
|
625
625
|
###### <a name="bookingDates_items_selectedTimeSlots_items__lastModifiedBy"></a>6.1.2.1.17. Property `_lastModifiedBy`
|
|
626
626
|
|
|
@@ -807,9 +807,9 @@ Must be one of:
|
|
|
807
807
|
| **Required** | No |
|
|
808
808
|
| **Additional properties** | [Each additional property must conform to the schema](#bookingDates_items_slotStatusUpdatedAt_additionalProperties) |
|
|
809
809
|
|
|
810
|
-
| Property | Pattern | Type | Deprecated | Definition | Title/Description
|
|
811
|
-
| ------------------------------------------------------------------- | ------- | ------ | ---------- | ----------------------------------------------------------------------------- |
|
|
812
|
-
| - [](#bookingDates_items_slotStatusUpdatedAt_additionalProperties ) | No | object | No | Same as [_deletedAt](#bookingDates_items_selectedTimeSlots_items__deletedAt ) | Firestore Timestamp
|
|
810
|
+
| Property | Pattern | Type | Deprecated | Definition | Title/Description |
|
|
811
|
+
| ------------------------------------------------------------------- | ------- | ------ | ---------- | ----------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
812
|
+
| - [](#bookingDates_items_slotStatusUpdatedAt_additionalProperties ) | No | object | No | Same as [_deletedAt](#bookingDates_items_selectedTimeSlots_items__deletedAt ) | Firestore Timestamp — Admin SDK form: \{ _seconds, _nanoseconds \}. See types/firestore.ts for REST API v1 and client SDK serialization notes (#10). |
|
|
813
813
|
|
|
814
814
|
##### <a name="bookingDates_items_slotStatusUpdatedAt_additionalProperties"></a>6.1.10.1. Property `firestore-timestamp`
|
|
815
815
|
|
|
@@ -820,7 +820,7 @@ Must be one of:
|
|
|
820
820
|
| **Additional properties** | Not allowed |
|
|
821
821
|
| **Same definition as** | [_deletedAt](#bookingDates_items_selectedTimeSlots_items__deletedAt) |
|
|
822
822
|
|
|
823
|
-
**Description:** Firestore Timestamp
|
|
823
|
+
**Description:** Firestore Timestamp — Admin SDK form: \{ _seconds, _nanoseconds \}. See types/firestore.ts for REST API v1 and client SDK serialization notes (#10).
|
|
824
824
|
|
|
825
825
|
#### <a name="bookingDates_items_slotStatusUpdatedBy"></a>6.1.11. Property `slotStatusUpdatedBy`
|
|
826
826
|
|
|
@@ -859,7 +859,7 @@ Must be one of:
|
|
|
859
859
|
| **Additional properties** | Not allowed |
|
|
860
860
|
| **Same definition as** | [_deletedAt](#bookingDates_items_selectedTimeSlots_items__deletedAt) |
|
|
861
861
|
|
|
862
|
-
**Description:** Firestore Timestamp
|
|
862
|
+
**Description:** Firestore Timestamp — Admin SDK form: \{ _seconds, _nanoseconds \}. See types/firestore.ts for REST API v1 and client SDK serialization notes (#10).
|
|
863
863
|
|
|
864
864
|
#### <a name="bookingDates_items__deletedBy"></a>6.1.14. Property `_deletedBy`
|
|
865
865
|
|
|
@@ -879,7 +879,7 @@ Must be one of:
|
|
|
879
879
|
| **Additional properties** | Not allowed |
|
|
880
880
|
| **Same definition as** | [_deletedAt](#bookingDates_items_selectedTimeSlots_items__deletedAt) |
|
|
881
881
|
|
|
882
|
-
**Description:** Firestore Timestamp
|
|
882
|
+
**Description:** Firestore Timestamp — Admin SDK form: \{ _seconds, _nanoseconds \}. See types/firestore.ts for REST API v1 and client SDK serialization notes (#10).
|
|
883
883
|
|
|
884
884
|
#### <a name="bookingDates_items__lastModifiedBy"></a>6.1.16. Property `_lastModifiedBy`
|
|
885
885
|
|
|
@@ -1144,19 +1144,19 @@ Use `customerPhone` instead.
|
|
|
1144
1144
|
|
|
1145
1145
|
**Description:** Timestamped note attached to a Booking. Carries CRDT metadata.
|
|
1146
1146
|
|
|
1147
|
-
| Property | Pattern | Type | Deprecated | Definition | Title/Description
|
|
1148
|
-
| -------------------------------------------------- | ------- | ------- | ---------- | ----------------------------------------------------------------------------- |
|
|
1149
|
-
| + [id](#notes_items_id ) | No | string | No | - | (Read-only) Note ID.
|
|
1150
|
-
| + [text](#notes_items_text ) | No | string | No | - | -
|
|
1151
|
-
| + [createdAt](#notes_items_createdAt ) | No | object | No | In #/definitions/firestore-timestamp | (Read-only) Firestore Timestamp serialized representation.
|
|
1152
|
-
| - [createdBy](#notes_items_createdBy ) | No | string | No | - | (Immutable) FK → User/staff UID who created this note.
|
|
1153
|
-
| - [createdByName](#notes_items_createdByName ) | No | string | No | - | (Denormalized) From User display name at write time.
|
|
1154
|
-
| - [_deleted](#notes_items__deleted ) | No | boolean | No | - | Soft-delete flag. Dashboard writes; Mobile filters (IG-6).
|
|
1155
|
-
| - [_deletedAt](#notes_items__deletedAt ) | No | object | No | Same as [_deletedAt](#bookingDates_items_selectedTimeSlots_items__deletedAt ) | Firestore Timestamp
|
|
1156
|
-
| - [_deletedBy](#notes_items__deletedBy ) | No | string | No | - | FK → User/staff UID who soft-deleted this item.
|
|
1157
|
-
| - [_lastModifiedAt](#notes_items__lastModifiedAt ) | No | object | No | Same as [_deletedAt](#bookingDates_items_selectedTimeSlots_items__deletedAt ) | Firestore Timestamp
|
|
1158
|
-
| - [_lastModifiedBy](#notes_items__lastModifiedBy ) | No | string | No | - | FK → User/staff UID who last modified this item.
|
|
1159
|
-
| - [_version](#notes_items__version ) | No | number | No | - | Monotonic version counter for conflict detection.
|
|
1147
|
+
| Property | Pattern | Type | Deprecated | Definition | Title/Description |
|
|
1148
|
+
| -------------------------------------------------- | ------- | ------- | ---------- | ----------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
1149
|
+
| + [id](#notes_items_id ) | No | string | No | - | (Read-only) Note ID. |
|
|
1150
|
+
| + [text](#notes_items_text ) | No | string | No | - | - |
|
|
1151
|
+
| + [createdAt](#notes_items_createdAt ) | No | object | No | In #/definitions/firestore-timestamp | (Read-only) Firestore Timestamp serialized representation. |
|
|
1152
|
+
| - [createdBy](#notes_items_createdBy ) | No | string | No | - | (Immutable) FK → User/staff UID who created this note. |
|
|
1153
|
+
| - [createdByName](#notes_items_createdByName ) | No | string | No | - | (Denormalized) From User display name at write time. |
|
|
1154
|
+
| - [_deleted](#notes_items__deleted ) | No | boolean | No | - | Soft-delete flag. Dashboard writes; Mobile filters (IG-6). |
|
|
1155
|
+
| - [_deletedAt](#notes_items__deletedAt ) | No | object | No | Same as [_deletedAt](#bookingDates_items_selectedTimeSlots_items__deletedAt ) | Firestore Timestamp — Admin SDK form: \{ _seconds, _nanoseconds \}. See types/firestore.ts for REST API v1 and client SDK serialization notes (#10). |
|
|
1156
|
+
| - [_deletedBy](#notes_items__deletedBy ) | No | string | No | - | FK → User/staff UID who soft-deleted this item. |
|
|
1157
|
+
| - [_lastModifiedAt](#notes_items__lastModifiedAt ) | No | object | No | Same as [_deletedAt](#bookingDates_items_selectedTimeSlots_items__deletedAt ) | Firestore Timestamp — Admin SDK form: \{ _seconds, _nanoseconds \}. See types/firestore.ts for REST API v1 and client SDK serialization notes (#10). |
|
|
1158
|
+
| - [_lastModifiedBy](#notes_items__lastModifiedBy ) | No | string | No | - | FK → User/staff UID who last modified this item. |
|
|
1159
|
+
| - [_version](#notes_items__version ) | No | number | No | - | Monotonic version counter for conflict detection. |
|
|
1160
1160
|
|
|
1161
1161
|
#### <a name="notes_items_id"></a>25.1.1. Property `id`
|
|
1162
1162
|
|
|
@@ -1250,7 +1250,7 @@ Use `customerPhone` instead.
|
|
|
1250
1250
|
| **Additional properties** | Not allowed |
|
|
1251
1251
|
| **Same definition as** | [_deletedAt](#bookingDates_items_selectedTimeSlots_items__deletedAt) |
|
|
1252
1252
|
|
|
1253
|
-
**Description:** Firestore Timestamp
|
|
1253
|
+
**Description:** Firestore Timestamp — Admin SDK form: \{ _seconds, _nanoseconds \}. See types/firestore.ts for REST API v1 and client SDK serialization notes (#10).
|
|
1254
1254
|
|
|
1255
1255
|
#### <a name="notes_items__deletedBy"></a>25.1.8. Property `_deletedBy`
|
|
1256
1256
|
|
|
@@ -1270,7 +1270,7 @@ Use `customerPhone` instead.
|
|
|
1270
1270
|
| **Additional properties** | Not allowed |
|
|
1271
1271
|
| **Same definition as** | [_deletedAt](#bookingDates_items_selectedTimeSlots_items__deletedAt) |
|
|
1272
1272
|
|
|
1273
|
-
**Description:** Firestore Timestamp
|
|
1273
|
+
**Description:** Firestore Timestamp — Admin SDK form: \{ _seconds, _nanoseconds \}. See types/firestore.ts for REST API v1 and client SDK serialization notes (#10).
|
|
1274
1274
|
|
|
1275
1275
|
#### <a name="notes_items__lastModifiedBy"></a>25.1.10. Property `_lastModifiedBy`
|
|
1276
1276
|
|
|
@@ -1392,7 +1392,7 @@ Must be one of:
|
|
|
1392
1392
|
| **Required** | No |
|
|
1393
1393
|
| **Additional properties** | Any type allowed |
|
|
1394
1394
|
|
|
1395
|
-
**Description:** Firestore Timestamp
|
|
1395
|
+
**Description:** Firestore Timestamp — Admin SDK form: \{ _seconds, _nanoseconds \}. See types/firestore.ts for REST API v1 and client SDK serialization notes (#10).
|
|
1396
1396
|
|
|
1397
1397
|
| Any of(Option) |
|
|
1398
1398
|
| ------------------------------------------------------- |
|
|
@@ -1408,7 +1408,7 @@ Must be one of:
|
|
|
1408
1408
|
| **Additional properties** | Not allowed |
|
|
1409
1409
|
| **Same definition as** | [_deletedAt](#bookingDates_items_selectedTimeSlots_items__deletedAt) |
|
|
1410
1410
|
|
|
1411
|
-
**Description:** Firestore Timestamp
|
|
1411
|
+
**Description:** Firestore Timestamp — Admin SDK form: \{ _seconds, _nanoseconds \}. See types/firestore.ts for REST API v1 and client SDK serialization notes (#10).
|
|
1412
1412
|
|
|
1413
1413
|
### <a name="paymentStatusChangedAt_anyOf_i1"></a>34.2. Property `item 1`
|
|
1414
1414
|
|
|
@@ -1471,7 +1471,7 @@ Must be one of:
|
|
|
1471
1471
|
| **Required** | No |
|
|
1472
1472
|
| **Additional properties** | Any type allowed |
|
|
1473
1473
|
|
|
1474
|
-
**Description:** Firestore Timestamp
|
|
1474
|
+
**Description:** Firestore Timestamp — Admin SDK form: \{ _seconds, _nanoseconds \}. See types/firestore.ts for REST API v1 and client SDK serialization notes (#10).
|
|
1475
1475
|
|
|
1476
1476
|
| Any of(Option) |
|
|
1477
1477
|
| ---------------------------------------------------- |
|
|
@@ -1487,7 +1487,7 @@ Must be one of:
|
|
|
1487
1487
|
| **Additional properties** | Not allowed |
|
|
1488
1488
|
| **Same definition as** | [_deletedAt](#bookingDates_items_selectedTimeSlots_items__deletedAt) |
|
|
1489
1489
|
|
|
1490
|
-
**Description:** Firestore Timestamp
|
|
1490
|
+
**Description:** Firestore Timestamp — Admin SDK form: \{ _seconds, _nanoseconds \}. See types/firestore.ts for REST API v1 and client SDK serialization notes (#10).
|
|
1491
1491
|
|
|
1492
1492
|
### <a name="paymentProofAddedAt_anyOf_i1"></a>37.2. Property `item 1`
|
|
1493
1493
|
|
|
@@ -1522,7 +1522,7 @@ Must be one of:
|
|
|
1522
1522
|
| **Required** | No |
|
|
1523
1523
|
| **Additional properties** | Any type allowed |
|
|
1524
1524
|
|
|
1525
|
-
**Description:** Firestore Timestamp
|
|
1525
|
+
**Description:** Firestore Timestamp — Admin SDK form: \{ _seconds, _nanoseconds \}. See types/firestore.ts for REST API v1 and client SDK serialization notes (#10).
|
|
1526
1526
|
|
|
1527
1527
|
| Any of(Option) |
|
|
1528
1528
|
| ------------------------------------------------------- |
|
|
@@ -1538,7 +1538,7 @@ Must be one of:
|
|
|
1538
1538
|
| **Additional properties** | Not allowed |
|
|
1539
1539
|
| **Same definition as** | [_deletedAt](#bookingDates_items_selectedTimeSlots_items__deletedAt) |
|
|
1540
1540
|
|
|
1541
|
-
**Description:** Firestore Timestamp
|
|
1541
|
+
**Description:** Firestore Timestamp — Admin SDK form: \{ _seconds, _nanoseconds \}. See types/firestore.ts for REST API v1 and client SDK serialization notes (#10).
|
|
1542
1542
|
|
|
1543
1543
|
### <a name="paymentProofReviewedAt_anyOf_i1"></a>40.2. Property `item 1`
|
|
1544
1544
|
|
|
@@ -1587,7 +1587,7 @@ Must be one of:
|
|
|
1587
1587
|
| **Required** | No |
|
|
1588
1588
|
| **Additional properties** | Any type allowed |
|
|
1589
1589
|
|
|
1590
|
-
**Description:** Firestore Timestamp
|
|
1590
|
+
**Description:** Firestore Timestamp — Admin SDK form: \{ _seconds, _nanoseconds \}. See types/firestore.ts for REST API v1 and client SDK serialization notes (#10).
|
|
1591
1591
|
|
|
1592
1592
|
| Any of(Option) |
|
|
1593
1593
|
| -------------------------------------------------------- |
|
|
@@ -1603,7 +1603,7 @@ Must be one of:
|
|
|
1603
1603
|
| **Additional properties** | Not allowed |
|
|
1604
1604
|
| **Same definition as** | [_deletedAt](#bookingDates_items_selectedTimeSlots_items__deletedAt) |
|
|
1605
1605
|
|
|
1606
|
-
**Description:** Firestore Timestamp
|
|
1606
|
+
**Description:** Firestore Timestamp — Admin SDK form: \{ _seconds, _nanoseconds \}. See types/firestore.ts for REST API v1 and client SDK serialization notes (#10).
|
|
1607
1607
|
|
|
1608
1608
|
### <a name="cancellationProcessedAt_anyOf_i1"></a>45.2. Property `item 1`
|
|
1609
1609
|
|
|
@@ -1694,7 +1694,7 @@ Do not include in write requests. This field is set exclusively by the server (F
|
|
|
1694
1694
|
| **Additional properties** | Not allowed |
|
|
1695
1695
|
| **Same definition as** | [_deletedAt](#bookingDates_items_selectedTimeSlots_items__deletedAt) |
|
|
1696
1696
|
|
|
1697
|
-
**Description:** Firestore Timestamp
|
|
1697
|
+
**Description:** Firestore Timestamp — Admin SDK form: \{ _seconds, _nanoseconds \}. See types/firestore.ts for REST API v1 and client SDK serialization notes (#10).
|
|
1698
1698
|
|
|
1699
1699
|
### <a name="updatedAt_anyOf_i1"></a>49.2. Property `item 1`
|
|
1700
1700
|
|
|
@@ -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-05-
|
|
1742
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 12:42:51 +0000
|
|
1743
1743
|
|
|
1744
1744
|
## Related Decisions
|
|
1745
1745
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: "CustomerPaymentAllocation"
|
|
3
3
|
sidebar_label: "CustomerPaymentAllocation"
|
|
4
|
-
sidebar_position:
|
|
4
|
+
sidebar_position: 12
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# CustomerPaymentAllocation
|
|
@@ -61,22 +61,22 @@ sidebar_position: 10
|
|
|
61
61
|
|
|
62
62
|
**Description:** CustomerPaymentAllocation model. Collection: companies/\{companyId\}/customerPaymentAllocations/\{allocId\}. Links customer payments to bookings, orders, or purchases.
|
|
63
63
|
|
|
64
|
-
| Property | Pattern | Type | Deprecated | Definition | Title/Description
|
|
65
|
-
| -------------------------------------------------------------- | ------- | ---------------- | ---------- | --------------------------------------------- |
|
|
66
|
-
| - [id](#id ) | No | string or null | No | - | (Read-only) Firestore document ID. Note: optional in current schema.
|
|
67
|
-
| + [companyId](#companyId ) | No | string | No | - | (Immutable) FK → Company document ID.
|
|
68
|
-
| + [paymentId](#paymentId ) | No | string | No | - | (Immutable) FK → CustomerPayment.id. Parent payment this allocation draws from.
|
|
69
|
-
| + [customerId](#customerId ) | No | string | No | - | (Immutable) FK → Customer.id (Firestore doc ID).
|
|
70
|
-
| + [targetId](#targetId ) | No | string | No | - | (Immutable) FK → Booking.id, Order.id, or Sale.id (polymorphic). See targetType for discriminator.
|
|
71
|
-
| + [targetType](#targetType ) | No | enum (of string) | No | In #/definitions/customer-payment-target-type | (Immutable) Discriminator for targetId: BOOKING, ORDER, or PURCHASE.
|
|
72
|
-
| - [targetReference](#targetReference ) | No | string or null | No | - | -
|
|
73
|
-
| + [allocatedAmount](#allocatedAmount ) | No | number | No | - | (Immutable) Amount allocated in this allocation. Set at creation.
|
|
74
|
-
| - [transferredToAllocationId](#transferredToAllocationId ) | No | string or null | No | - | FK → CustomerPaymentAllocation.id. Self-reference for transfer chains.
|
|
75
|
-
| - [transferredFromAllocationId](#transferredFromAllocationId ) | No | string or null | No | - | FK → CustomerPaymentAllocation.id. Self-reference for transfer chains.
|
|
76
|
-
| - [transferredAt](#transferredAt ) | No | Combination | No | - | Firestore Timestamp
|
|
77
|
-
| + [createdBy](#createdBy ) | No | string | No | - | (Immutable) FK → User/staff UID who created this allocation.
|
|
78
|
-
| - [createdByName](#createdByName ) | No | string or null | No | - | (Immutable, Denormalized) From User display name at creation time.
|
|
79
|
-
| + [createdAt](#createdAt ) | No | object | No | In #/definitions/firestore-timestamp | (Read-only) Server-generated creation timestamp.
|
|
64
|
+
| Property | Pattern | Type | Deprecated | Definition | Title/Description |
|
|
65
|
+
| -------------------------------------------------------------- | ------- | ---------------- | ---------- | --------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
66
|
+
| - [id](#id ) | No | string or null | No | - | (Read-only) Firestore document ID. Note: optional in current schema. |
|
|
67
|
+
| + [companyId](#companyId ) | No | string | No | - | (Immutable) FK → Company document ID. |
|
|
68
|
+
| + [paymentId](#paymentId ) | No | string | No | - | (Immutable) FK → CustomerPayment.id. Parent payment this allocation draws from. |
|
|
69
|
+
| + [customerId](#customerId ) | No | string | No | - | (Immutable) FK → Customer.id (Firestore doc ID). |
|
|
70
|
+
| + [targetId](#targetId ) | No | string | No | - | (Immutable) FK → Booking.id, Order.id, or Sale.id (polymorphic). See targetType for discriminator. |
|
|
71
|
+
| + [targetType](#targetType ) | No | enum (of string) | No | In #/definitions/customer-payment-target-type | (Immutable) Discriminator for targetId: BOOKING, ORDER, or PURCHASE. |
|
|
72
|
+
| - [targetReference](#targetReference ) | No | string or null | No | - | - |
|
|
73
|
+
| + [allocatedAmount](#allocatedAmount ) | No | number | No | - | (Immutable) Amount allocated in this allocation. Set at creation. |
|
|
74
|
+
| - [transferredToAllocationId](#transferredToAllocationId ) | No | string or null | No | - | FK → CustomerPaymentAllocation.id. Self-reference for transfer chains. |
|
|
75
|
+
| - [transferredFromAllocationId](#transferredFromAllocationId ) | No | string or null | No | - | FK → CustomerPaymentAllocation.id. Self-reference for transfer chains. |
|
|
76
|
+
| - [transferredAt](#transferredAt ) | No | Combination | No | - | Firestore Timestamp — Admin SDK form: \{ _seconds, _nanoseconds \}. See types/firestore.ts for REST API v1 and client SDK serialization notes (#10). |
|
|
77
|
+
| + [createdBy](#createdBy ) | No | string | No | - | (Immutable) FK → User/staff UID who created this allocation. |
|
|
78
|
+
| - [createdByName](#createdByName ) | No | string or null | No | - | (Immutable, Denormalized) From User display name at creation time. |
|
|
79
|
+
| + [createdAt](#createdAt ) | No | object | No | In #/definitions/firestore-timestamp | (Read-only) Server-generated creation timestamp. |
|
|
80
80
|
|
|
81
81
|
## <a name="id"></a>1. Property `id`
|
|
82
82
|
|
|
@@ -208,7 +208,7 @@ Set at creation only. This field cannot be modified after the document is create
|
|
|
208
208
|
| **Required** | No |
|
|
209
209
|
| **Additional properties** | Any type allowed |
|
|
210
210
|
|
|
211
|
-
**Description:** Firestore Timestamp
|
|
211
|
+
**Description:** Firestore Timestamp — Admin SDK form: \{ _seconds, _nanoseconds \}. See types/firestore.ts for REST API v1 and client SDK serialization notes (#10).
|
|
212
212
|
|
|
213
213
|
| Any of(Option) |
|
|
214
214
|
| ---------------------------------------------- |
|
|
@@ -224,7 +224,7 @@ Set at creation only. This field cannot be modified after the document is create
|
|
|
224
224
|
| **Additional properties** | Not allowed |
|
|
225
225
|
| **Defined in** | #/definitions/firestore-timestamp |
|
|
226
226
|
|
|
227
|
-
**Description:** Firestore Timestamp
|
|
227
|
+
**Description:** Firestore Timestamp — Admin SDK form: \{ _seconds, _nanoseconds \}. See types/firestore.ts for REST API v1 and client SDK serialization notes (#10).
|
|
228
228
|
|
|
229
229
|
| Property | Pattern | Type | Deprecated | Definition | Title/Description |
|
|
230
230
|
| ------------------------------------------------------- | ------- | ------- | ---------- | ---------- | ----------------- |
|
|
@@ -329,7 +329,7 @@ Set at creation only. This field cannot be modified after the document is create
|
|
|
329
329
|
| **Maximum** | ≤ 9007199254740991 |
|
|
330
330
|
|
|
331
331
|
----------------------------------------------------------------------------------------------------------------------------
|
|
332
|
-
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-
|
|
332
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 12:42:51 +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.
|