@ingenx-io/valets-schema-mcp-server 0.2.5 → 0.2.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/data/docs/collections/firestore-paths.md +20 -0
- package/data/docs/enums/app-status.md +1 -1
- package/data/docs/enums/attention-status.md +1 -1
- package/data/docs/enums/booking-status.md +1 -1
- package/data/docs/enums/contract-status.md +24 -0
- 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/expense-payment-status.md +24 -0
- package/data/docs/enums/fulfillment-status.md +2 -2
- package/data/docs/enums/loyalty-transaction-type.md +2 -2
- package/data/docs/enums/milestone-status.md +23 -0
- 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 +4 -3
- 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 +3 -3
- 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 +15 -6
- package/data/docs/models/allowed-user.md +1 -1
- package/data/docs/models/analytics-backfill.md +1 -1
- package/data/docs/models/analytics-daily.md +1 -1
- package/data/docs/models/analytics-event.md +1 -1
- package/data/docs/models/analytics-hourly.md +1 -1
- package/data/docs/models/app-payment.md +1 -1
- package/data/docs/models/app.md +45 -21
- package/data/docs/models/booking-version.md +1 -1
- package/data/docs/models/booking.md +1 -1
- package/data/docs/models/contract.md +454 -0
- package/data/docs/models/customer-payment-allocation.md +2 -2
- package/data/docs/models/customer-payment.md +23 -22
- package/data/docs/models/customer.md +2 -2
- package/data/docs/models/event.md +2 -2
- package/data/docs/models/expense.md +434 -0
- package/data/docs/models/loyalty-config.md +2 -2
- package/data/docs/models/loyalty-reward.md +2 -2
- package/data/docs/models/loyalty-status.md +2 -2
- package/data/docs/models/loyalty-transaction.md +2 -2
- package/data/docs/models/magic-link-request.md +2 -2
- package/data/docs/models/metrics-current.md +22 -2
- package/data/docs/models/metrics-daily.md +92 -41
- package/data/docs/models/metrics-monthly.md +22 -2
- package/data/docs/models/notification-record.md +2 -2
- package/data/docs/models/order-item.md +2 -2
- package/data/docs/models/order.md +291 -270
- package/data/docs/models/outbound-payment-allocation.md +195 -0
- package/data/docs/models/outbound-payment.md +319 -0
- package/data/docs/models/payment-webhook-delivery.md +321 -0
- package/data/docs/models/payment-webhook-endpoint.md +191 -0
- package/data/docs/models/sale.md +2 -2
- package/data/docs/models/site-payment.md +2 -2
- package/data/docs/models/site.md +2 -2
- package/data/docs/models/stocktake-item.md +2 -2
- package/data/docs/models/stocktake.md +2 -2
- package/data/docs/models/ticket.md +2 -2
- package/data/docs/models/user.md +2 -2
- package/data/docs/models/whatsapp-inbound-message.md +6 -2
- package/data/docs/models/whatsapp-outbound-lifecycle-event.md +2 -2
- package/data/docs/models/whatsapp-outbound-message.md +39 -23
- package/data/docs/models/whatsapp-template.md +6 -2
- package/data/static/llms.txt +242 -10
- package/data/static/openapi.yaml +826 -23
- package/data/static/schemas.json +877 -71
- package/package.json +1 -1
package/data/docs/index.md
CHANGED
|
@@ -19,7 +19,7 @@ Developers own the Zod source in `packages/schema/src/`. When schemas change, th
|
|
|
19
19
|
|
|
20
20
|
## What's documented
|
|
21
21
|
|
|
22
|
-
### Enums (
|
|
22
|
+
### Enums (35)
|
|
23
23
|
|
|
24
24
|
Status enums that drive business logic across Order, Booking, Event, and Loyalty domains:
|
|
25
25
|
|
|
@@ -28,13 +28,16 @@ Status enums that drive business logic across Order, Booking, Event, and Loyalty
|
|
|
28
28
|
| [AppStatus](enums/app-status) | 4 values | Lifecycle status for an App (formerly Site — renamed per decision #40 / D44). Drives whether the app is reachable and whether analytics/payments flow. |
|
|
29
29
|
| [AttentionStatus](enums/attention-status) | 4 values | Operational attention status for Order and Booking (D39). Controls home-page queue assignment. Server-owned — set via triggers or callable fn only. |
|
|
30
30
|
| [BookingStatus](enums/booking-status) | 6 values | Booking lifecycle status. COMPLETED_MIXED = some sessions completed, others cancelled/no-show. |
|
|
31
|
+
| [ContractStatus](enums/contract-status) | 4 values | Lifecycle status of a Contract. DRAFT = not yet signed. ACTIVE = in force. COMPLETED = all milestones paid and obligations met. TERMINATED = ended early by either party. |
|
|
31
32
|
| [CustomerPaymentStatus](enums/customer-payment-status) | 6 values | Customer payment lifecycle status (D22). Tracks allocation progress of received payments. |
|
|
32
33
|
| [CustomerPaymentTargetType](enums/customer-payment-target-type) | 3 values | Target document type for customer payment allocation. |
|
|
33
34
|
| [DeliveryType](enums/delivery-type) | 3 values | Fulfillment channel for an order. Determines whether the customer comes to the business (ON_SITE), collects their order themselves (PICK_UP), or receives a physical delivery (DELIVERY). Drives whether fulfillmentStatus is relevant. |
|
|
34
35
|
| [DeploymentLinkType](enums/deployment-link-type) | 6 values | Category of a Site deployment link (D41). Used for UI icon/labelling and deep-link handling. |
|
|
35
36
|
| [EventStatus](enums/event-status) | 4 values | Ticketed event lifecycle (D32). Mobile-only today; Dashboard in Wave 4. |
|
|
37
|
+
| [ExpensePaymentStatus](enums/expense-payment-status) | 4 values | Payment status of an Expense. Stored enum — OVERDUE is not stored, it is derived at read time from dueDate (#13). |
|
|
36
38
|
| [FulfillmentStatus](enums/fulfillment-status) | 6 values | Delivery/fulfillment lifecycle (D34). Optional — null for in-person orders. |
|
|
37
39
|
| [LoyaltyTransactionType](enums/loyalty-transaction-type) | 6 values | Loyalty point transaction type (D07). SCREAMING_SNAKE past tense. |
|
|
40
|
+
| [MilestoneStatus](enums/milestone-status) | 3 values | Status of a ContractMilestone (#17). PENDING = created, not yet invoiced. INVOICED = invoice issued, awaiting payment. PAID = payment received. |
|
|
38
41
|
| [NotificationChannel](enums/notification-channel) | 4 values | Delivery channel of a NotificationRecord (GH#48). |
|
|
39
42
|
| [NotificationEntityType](enums/notification-entity-type) | 6 values | Type of entity a NotificationRecord relates to. When `order`, the record is dual-written to the order-scoped subcollection (GH#48). |
|
|
40
43
|
| [NotificationStatus](enums/notification-status) | 3 values | Delivery status of a NotificationRecord, set by the Cloud Function after a send attempt (GH#48). |
|
|
@@ -42,7 +45,7 @@ Status enums that drive business logic across Order, Booking, Event, and Loyalty
|
|
|
42
45
|
| [OutboundMessageFormat](enums/outbound-message-format) | 2 values | Outbound WhatsApp message format. `text` is a free-form body (only valid inside the 24h customer-care window); `template` is a pre-approved WhatsApp template send. The backend is the authority on which is allowed (GH#43). |
|
|
43
46
|
| [OutboundMessagePurpose](enums/outbound-message-purpose) | 4 values | Business purpose of an outbound WhatsApp message — orthogonal to its format (see OutboundMessageFormat). `otp`/`review_request`/`adhoc` are system-originated; `conversational` is a human agent reply from the dashboard inbox. Optional signal carried for analytics/triggers (GH#43; supersedes the GH#38 OutboundMessageKind). |
|
|
44
47
|
| [OutboundMessageStatus](enums/outbound-message-status) | 5 values | Outbound WhatsApp message delivery status. Lifecycle: queued → sent → delivered → read, or queued → failed. The dashboard creates the message with status `queued`; the whatsapp-server backend owns every transition after, updating in place from Meta delivery callbacks (GH#43). |
|
|
45
|
-
| [PaymentMethod](enums/payment-method) |
|
|
48
|
+
| [PaymentMethod](enums/payment-method) | 11 values | Unified payment method set with African + global methods (D02). Note: the metrics writer historically emits "OM" instead of "ORANGE_MONEY" as a paymentsByMethod map key — treat OM as deprecated; canonical value is ORANGE_MONEY (#21). |
|
|
46
49
|
| [PaymentProofStatus](enums/payment-proof-status) | 3 values | Payment proof review status. Used by Order and Booking payment proof workflows. |
|
|
47
50
|
| [PaymentStatus](enums/payment-status) | 7 values | Payment lifecycle status (D01 amended). Used by Order, Sale/Purchase, Booking. |
|
|
48
51
|
| [PendingIssue](enums/pending-issue) | 11 values | Specific detected conditions on an Order or Booking requiring human action (D39). Stored as an array — multiple issues can be active simultaneously. Server-owned. |
|
|
@@ -53,13 +56,13 @@ Status enums that drive business logic across Order, Booking, Event, and Loyalty
|
|
|
53
56
|
| [StocktakeItemStatus](enums/stocktake-item-status) | 4 values | Per-line workflow status inside a Stocktake (GH#29 §4, audit Q21). |
|
|
54
57
|
| [StocktakeStatus](enums/stocktake-status) | 4 values | Lifecycle status of a Stocktake session (GH#29 §3, §4). |
|
|
55
58
|
| [TicketStatus](enums/ticket-status) | 3 values | Event ticket status (D32). VALID = active and unused. |
|
|
56
|
-
| [WabaLabel](enums/waba-label) | 2 values |
|
|
59
|
+
| [WabaLabel](enums/waba-label) | 2 values | WABA label identifying which Meta Business Account sent/received the message. cmz = Chez Miss Zahoui sender; val = Valets sender. See WhatsApp platform constraints doc (#50). |
|
|
57
60
|
| [WhatsappButtonSubType](enums/whatsapp-button-sub-type) | 2 values | Sub-type of a WhatsApp template button parameter. Set when WhatsappTemplateParameter.component === "button" — maps to Meta `components[].sub_type` (GH#46). |
|
|
58
61
|
| [WhatsappTemplateComponent](enums/whatsapp-template-component) | 3 values | WhatsApp template component a parameter targets. Determines which Meta `components` entry the supplied value is placed in at send time (GH#46). |
|
|
59
62
|
| [WhatsappTemplateStatus](enums/whatsapp-template-status) | 6 values | Meta review status of a WhatsApp message template, synced from the WhatsApp Business API. Only APPROVED templates can be sent. The fuller Meta status set is used deliberately (vs just APPROVED/PENDING/REJECTED) so this enum has a distinct value signature from PaymentProofStatus in the JSON-Schema $ref matcher (GH#43). |
|
|
60
63
|
|
|
61
64
|
|
|
62
|
-
### Models (
|
|
65
|
+
### Models (41)
|
|
63
66
|
|
|
64
67
|
Core Firestore document schemas:
|
|
65
68
|
|
|
@@ -70,14 +73,16 @@ Core Firestore document schemas:
|
|
|
70
73
|
| [AnalyticsDaily](models/analytics-daily) | 16 | 14 | — |
|
|
71
74
|
| [AnalyticsEvent](models/analytics-event) | 12 | 10 | — |
|
|
72
75
|
| [AnalyticsHourly](models/analytics-hourly) | 17 | 15 | — |
|
|
73
|
-
| [App](models/app) | 14 |
|
|
76
|
+
| [App](models/app) | 14 | 5 | — |
|
|
74
77
|
| [AppPayment](models/app-payment) | 10 | 9 | — |
|
|
75
78
|
| [Booking](models/booking) | 52 | 7 | — |
|
|
76
79
|
| [BookingVersion](models/booking-version) | 9 | 6 | — |
|
|
80
|
+
| [Contract](models/contract) | 15 | 8 | — |
|
|
77
81
|
| [Customer](models/customer) | 17 | 4 | — |
|
|
78
82
|
| [CustomerPayment](models/customer-payment) | 17 | 12 | — |
|
|
79
83
|
| [CustomerPaymentAllocation](models/customer-payment-allocation) | 14 | 8 | — |
|
|
80
84
|
| [Event](models/event) | 15 | 9 | — |
|
|
85
|
+
| [Expense](models/expense) | 17 | 6 | — |
|
|
81
86
|
| [LoyaltyConfig](models/loyalty-config) | 11 | 2 | — |
|
|
82
87
|
| [LoyaltyReward](models/loyalty-reward) | 11 | 5 | — |
|
|
83
88
|
| [LoyaltyStatus](models/loyalty-status) | 9 | 2 | — |
|
|
@@ -87,8 +92,12 @@ Core Firestore document schemas:
|
|
|
87
92
|
| [MetricsDaily](models/metrics-daily) | 31 | 26 | — |
|
|
88
93
|
| [MetricsMonthly](models/metrics-monthly) | 31 | 26 | — |
|
|
89
94
|
| [NotificationRecord](models/notification-record) | 12 | 6 | — |
|
|
90
|
-
| [Order](models/order) |
|
|
95
|
+
| [Order](models/order) | 49 | 8 | — |
|
|
91
96
|
| [OrderItem](models/order-item) | 12 | 3 | — |
|
|
97
|
+
| [OutboundPayment](models/outbound-payment) | 13 | 7 | — |
|
|
98
|
+
| [OutboundPaymentAllocation](models/outbound-payment-allocation) | 7 | 4 | — |
|
|
99
|
+
| [PaymentWebhookDelivery](models/payment-webhook-delivery) | 15 | 13 | — |
|
|
100
|
+
| [PaymentWebhookEndpoint](models/payment-webhook-endpoint) | 6 | 5 | — |
|
|
92
101
|
| [Sale](models/sale) | 12 | 1 | — |
|
|
93
102
|
| [Site](models/site) | 14 | 6 | — |
|
|
94
103
|
| [SitePayment](models/site-payment) | 10 | 9 | — |
|
|
@@ -185,4 +185,4 @@ Set at creation only. This field cannot be modified after the document is create
|
|
|
185
185
|
| **Maximum** | ≤ 9007199254740991 |
|
|
186
186
|
|
|
187
187
|
----------------------------------------------------------------------------------------------------------------------------
|
|
188
|
-
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at
|
|
188
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 13:57:28 +0000
|
|
@@ -391,7 +391,7 @@ Do not include in write requests. This field is set exclusively by the server (F
|
|
|
391
391
|
| **Required** | No |
|
|
392
392
|
|
|
393
393
|
----------------------------------------------------------------------------------------------------------------------------
|
|
394
|
-
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at
|
|
394
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 13:57:28 +0000
|
|
395
395
|
|
|
396
396
|
:::warning Server-set
|
|
397
397
|
Do not include in write requests. This field is set exclusively by the server (Firestore trigger or Admin SDK). Clients that send it will have the value silently ignored or may receive a validation error.
|
|
@@ -344,7 +344,7 @@ Do not include in write requests. This field is set exclusively by the server (F
|
|
|
344
344
|
| **Maximum** | ≤ 9007199254740991 |
|
|
345
345
|
|
|
346
346
|
----------------------------------------------------------------------------------------------------------------------------
|
|
347
|
-
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at
|
|
347
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 13:57:28 +0000
|
|
348
348
|
|
|
349
349
|
:::warning Server-set
|
|
350
350
|
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.
|
|
@@ -530,4 +530,4 @@ Must be one of:
|
|
|
530
530
|
| **Additional properties** | Any type allowed |
|
|
531
531
|
|
|
532
532
|
----------------------------------------------------------------------------------------------------------------------------
|
|
533
|
-
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at
|
|
533
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 13:57:28 +0000
|
|
@@ -365,7 +365,7 @@ Do not include in write requests. This field is set exclusively by the server (F
|
|
|
365
365
|
| **Maximum** | ≤ 9007199254740991 |
|
|
366
366
|
|
|
367
367
|
----------------------------------------------------------------------------------------------------------------------------
|
|
368
|
-
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at
|
|
368
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 13:57:28 +0000
|
|
369
369
|
|
|
370
370
|
:::warning Server-set
|
|
371
371
|
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.
|
|
@@ -197,4 +197,4 @@ Set at creation only. This field cannot be modified after the document is create
|
|
|
197
197
|
| **Maximum** | ≤ 9007199254740991 |
|
|
198
198
|
|
|
199
199
|
----------------------------------------------------------------------------------------------------------------------------
|
|
200
|
-
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at
|
|
200
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 13:57:28 +0000
|
package/data/docs/models/app.md
CHANGED
|
@@ -42,6 +42,8 @@ sidebar_position: 6
|
|
|
42
42
|
- [3. Property `name`](#name)
|
|
43
43
|
- [4. Property `description`](#description)
|
|
44
44
|
- [5. Property `status`](#status)
|
|
45
|
+
- [5.1. Property `app-status`](#status_anyOf_i0)
|
|
46
|
+
- [5.2. Property `item 1`](#status_anyOf_i1)
|
|
45
47
|
- [6. Property `deploymentLinks`](#deploymentLinks)
|
|
46
48
|
- [6.1. deploymentLinks items](#deploymentLinks_items)
|
|
47
49
|
- [6.1.1. Property `label`](#deploymentLinks_items_label)
|
|
@@ -81,22 +83,22 @@ sidebar_position: 6
|
|
|
81
83
|
|
|
82
84
|
**Description:** App model (D41 / ING-304). Collection: companies/\{companyId\}/apps/\{appId\}. Per-company product surface. Sub-collections (magic_link_requests, allowed_users, payments, analytics_events, analytics_daily, analytics_hourly, analytics_backfills) live under this document per D40/D42.
|
|
83
85
|
|
|
84
|
-
| Property | Pattern | Type
|
|
85
|
-
| ------------------------------------------ | ------- |
|
|
86
|
-
| - [id](#id ) | No | string or null
|
|
87
|
-
| + [companyId](#companyId ) | No | string
|
|
88
|
-
| + [name](#name ) | No | string
|
|
89
|
-
| - [description](#description ) | No | string or null
|
|
90
|
-
|
|
|
91
|
-
| + [deploymentLinks](#deploymentLinks ) | No | array of object
|
|
92
|
-
| - [expiresAt](#expiresAt ) | No | Combination
|
|
93
|
-
| - [isExpired](#isExpired ) | No | boolean or null
|
|
94
|
-
| - [createdAt](#createdAt ) | No | Combination
|
|
95
|
-
| - [updatedAt](#updatedAt ) | No | Combination
|
|
96
|
-
| + [createdBy](#createdBy ) | No | string
|
|
97
|
-
| + [analyticsEnabled](#analyticsEnabled ) | No | boolean
|
|
98
|
-
| - [lastAnalyticsSync](#lastAnalyticsSync ) | No | Combination
|
|
99
|
-
| - [cachedMetrics](#cachedMetrics ) | No | object or null
|
|
86
|
+
| Property | Pattern | Type | Deprecated | Definition | Title/Description |
|
|
87
|
+
| ------------------------------------------ | ------- | --------------- | ---------- | ---------- | --------------------------------------------------------------------------------------------------------------------------------------- |
|
|
88
|
+
| - [id](#id ) | No | string or null | No | - | (Read-only) Firestore document ID, auto-generated. |
|
|
89
|
+
| + [companyId](#companyId ) | No | string | No | - | (Immutable) FK → Company document ID. Scopes all app sub-collections. |
|
|
90
|
+
| + [name](#name ) | No | string | No | - | Human-readable app name shown in dashboards. |
|
|
91
|
+
| - [description](#description ) | No | string or null | No | - | Optional freeform description. |
|
|
92
|
+
| - [status](#status ) | No | Combination | No | - | Lifecycle status (D41/D44). Optional pending backfill of pre-existing records (#26) — treat absent as ACTIVE. Clients filter by ACTIVE. |
|
|
93
|
+
| + [deploymentLinks](#deploymentLinks ) | No | array of object | No | - | Ordered list of deployment URLs (web, mobile, PWA, store links). |
|
|
94
|
+
| - [expiresAt](#expiresAt ) | No | Combination | No | - | Optional expiration timestamp. When set and elapsed, \`isExpired\` flips true and status typically moves to EXPIRED. |
|
|
95
|
+
| - [isExpired](#isExpired ) | No | boolean or null | No | - | (Read-only) Derived — true when \`expiresAt\` is in the past. Maintained by server trigger. |
|
|
96
|
+
| - [createdAt](#createdAt ) | No | Combination | No | - | (Read-only) Server-generated creation timestamp. |
|
|
97
|
+
| - [updatedAt](#updatedAt ) | No | Combination | No | - | (Read-only) Server-generated update timestamp. |
|
|
98
|
+
| + [createdBy](#createdBy ) | No | string | No | - | (Immutable) FK → User/staff UID who created the app. |
|
|
99
|
+
| + [analyticsEnabled](#analyticsEnabled ) | No | boolean | No | - | Feature flag — when false, clients should not emit analytics events for this app. |
|
|
100
|
+
| - [lastAnalyticsSync](#lastAnalyticsSync ) | No | Combination | No | - | (Read-only) Last time the analytics rollup pipeline refreshed \`cachedMetrics\`. |
|
|
101
|
+
| - [cachedMetrics](#cachedMetrics ) | No | object or null | No | - | (Read-only, Denormalized) Cached metrics snapshot for quick dashboard rendering. |
|
|
100
102
|
|
|
101
103
|
## <a name="id"></a>1. Property `id`
|
|
102
104
|
|
|
@@ -144,13 +146,28 @@ Set at creation only. This field cannot be modified after the document is create
|
|
|
144
146
|
|
|
145
147
|
## <a name="status"></a>5. Property `status`
|
|
146
148
|
|
|
149
|
+
| | |
|
|
150
|
+
| ------------------------- | ---------------- |
|
|
151
|
+
| **Type** | `combining` |
|
|
152
|
+
| **Required** | No |
|
|
153
|
+
| **Additional properties** | Any type allowed |
|
|
154
|
+
|
|
155
|
+
**Description:** Lifecycle status (D41/D44). Optional pending backfill of pre-existing records (#26) — treat absent as ACTIVE. Clients filter by ACTIVE.
|
|
156
|
+
|
|
157
|
+
| Any of(Option) |
|
|
158
|
+
| ------------------------------ |
|
|
159
|
+
| [app-status](#status_anyOf_i0) |
|
|
160
|
+
| [item 1](#status_anyOf_i1) |
|
|
161
|
+
|
|
162
|
+
### <a name="status_anyOf_i0"></a>5.1. Property `app-status`
|
|
163
|
+
|
|
147
164
|
| | |
|
|
148
165
|
| -------------- | ------------------------ |
|
|
149
166
|
| **Type** | `enum (of string)` |
|
|
150
|
-
| **Required** |
|
|
167
|
+
| **Required** | No |
|
|
151
168
|
| **Defined in** | #/definitions/app-status |
|
|
152
169
|
|
|
153
|
-
**Description:** Lifecycle status (
|
|
170
|
+
**Description:** Lifecycle status for an App (formerly Site — renamed per decision #40 / D44). Drives whether the app is reachable and whether analytics/payments flow.
|
|
154
171
|
|
|
155
172
|
Must be one of:
|
|
156
173
|
* "ACTIVE"
|
|
@@ -158,12 +175,19 @@ Must be one of:
|
|
|
158
175
|
* "EXPIRED"
|
|
159
176
|
* "ARCHIVED"
|
|
160
177
|
|
|
178
|
+
### <a name="status_anyOf_i1"></a>5.2. Property `item 1`
|
|
179
|
+
|
|
180
|
+
| | |
|
|
181
|
+
| ------------ | ------ |
|
|
182
|
+
| **Type** | `null` |
|
|
183
|
+
| **Required** | No |
|
|
184
|
+
|
|
161
185
|
:::note
|
|
162
|
-
|
|
186
|
+
Real Firestore documents may be missing this field on pre-backfill records (#26). Treat absent as ACTIVE. A backfill script will populate status=ACTIVE on all existing documents; once confirmed, this field will be promoted to required.
|
|
163
187
|
:::
|
|
164
188
|
|
|
165
189
|
:::tip When to set
|
|
166
|
-
Written by operators via dashboard or by server triggers (expiration). Clients filter
|
|
190
|
+
Written by operators via dashboard or by server triggers (expiration). Clients must not use server-side `where(status == ACTIVE)` until backfill is complete — filter client-side instead, treating absent as ACTIVE.
|
|
167
191
|
:::
|
|
168
192
|
|
|
169
193
|
:::info See also
|
|
@@ -546,7 +570,7 @@ Do not include in write requests. This field is set exclusively by the server (F
|
|
|
546
570
|
**Description:** Timestamp of the most recent analytics event seen for this app.
|
|
547
571
|
|
|
548
572
|
----------------------------------------------------------------------------------------------------------------------------
|
|
549
|
-
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at
|
|
573
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 13:57:28 +0000
|
|
550
574
|
|
|
551
575
|
:::warning Server-set
|
|
552
576
|
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.
|
|
@@ -270,7 +270,7 @@ Dot-notation paths for nested fields (e.g. "bookingDates.0.status"). Populated b
|
|
|
270
270
|
| **Additional properties** | Any type allowed |
|
|
271
271
|
|
|
272
272
|
----------------------------------------------------------------------------------------------------------------------------
|
|
273
|
-
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at
|
|
273
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 13:57:28 +0000
|
|
274
274
|
|
|
275
275
|
:::warning Server-set
|
|
276
276
|
Do not include in write requests. This field is set exclusively by the server (Firestore trigger or Admin SDK). Clients that send it will have the value silently ignored or may receive a validation error.
|
|
@@ -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-30 at
|
|
1742
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 13:57:28 +0000
|
|
1743
1743
|
|
|
1744
1744
|
## Related Decisions
|
|
1745
1745
|
|