@ingenx-io/valets-schema-mcp-server 0.2.4 → 0.2.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 (79) hide show
  1. package/data/docs/collections/firestore-paths.md +32 -20
  2. package/data/docs/enums/app-status.md +24 -0
  3. package/data/docs/enums/attention-status.md +2 -2
  4. package/data/docs/enums/booking-status.md +2 -2
  5. package/data/docs/enums/contract-status.md +24 -0
  6. package/data/docs/enums/customer-payment-status.md +2 -2
  7. package/data/docs/enums/customer-payment-target-type.md +2 -2
  8. package/data/docs/enums/delivery-type.md +2 -2
  9. package/data/docs/enums/deployment-link-type.md +2 -2
  10. package/data/docs/enums/event-status.md +2 -2
  11. package/data/docs/enums/fulfillment-status.md +2 -2
  12. package/data/docs/enums/loyalty-transaction-type.md +2 -2
  13. package/data/docs/enums/milestone-status.md +23 -0
  14. package/data/docs/enums/notification-channel.md +2 -2
  15. package/data/docs/enums/notification-entity-type.md +2 -2
  16. package/data/docs/enums/notification-status.md +2 -2
  17. package/data/docs/enums/order-status.md +2 -2
  18. package/data/docs/enums/outbound-message-format.md +2 -2
  19. package/data/docs/enums/outbound-message-purpose.md +2 -2
  20. package/data/docs/enums/outbound-message-status.md +2 -2
  21. package/data/docs/enums/payment-method.md +2 -2
  22. package/data/docs/enums/payment-proof-status.md +2 -2
  23. package/data/docs/enums/payment-status.md +2 -2
  24. package/data/docs/enums/pending-issue.md +2 -2
  25. package/data/docs/enums/return-status.md +2 -2
  26. package/data/docs/enums/session-status.md +2 -2
  27. package/data/docs/enums/site-status.md +2 -2
  28. package/data/docs/enums/stocktake-frequency.md +2 -2
  29. package/data/docs/enums/stocktake-item-status.md +2 -2
  30. package/data/docs/enums/stocktake-status.md +2 -2
  31. package/data/docs/enums/ticket-status.md +2 -2
  32. package/data/docs/enums/waba-label.md +3 -3
  33. package/data/docs/enums/whatsapp-button-sub-type.md +2 -2
  34. package/data/docs/enums/whatsapp-template-component.md +2 -2
  35. package/data/docs/enums/whatsapp-template-status.md +2 -2
  36. package/data/docs/index.md +17 -7
  37. package/data/docs/models/allowed-user.md +7 -7
  38. package/data/docs/models/analytics-backfill.md +7 -7
  39. package/data/docs/models/analytics-daily.md +6 -6
  40. package/data/docs/models/analytics-event.md +7 -7
  41. package/data/docs/models/analytics-hourly.md +6 -6
  42. package/data/docs/models/app-payment.md +200 -0
  43. package/data/docs/models/app.md +585 -0
  44. package/data/docs/models/booking-version.md +2 -2
  45. package/data/docs/models/booking.md +127 -127
  46. package/data/docs/models/contract.md +454 -0
  47. package/data/docs/models/customer-payment-allocation.md +20 -20
  48. package/data/docs/models/customer-payment.md +23 -23
  49. package/data/docs/models/customer.md +11 -11
  50. package/data/docs/models/event.md +22 -22
  51. package/data/docs/models/loyalty-config.md +4 -4
  52. package/data/docs/models/loyalty-reward.md +3 -3
  53. package/data/docs/models/loyalty-status.md +6 -6
  54. package/data/docs/models/loyalty-transaction.md +2 -2
  55. package/data/docs/models/magic-link-request.md +9 -9
  56. package/data/docs/models/metrics-current.md +169 -37
  57. package/data/docs/models/metrics-daily.md +172 -40
  58. package/data/docs/models/metrics-monthly.md +172 -40
  59. package/data/docs/models/notification-record.md +3 -3
  60. package/data/docs/models/order-item.md +6 -6
  61. package/data/docs/models/order.md +314 -294
  62. package/data/docs/models/outbound-payment-allocation.md +195 -0
  63. package/data/docs/models/outbound-payment.md +318 -0
  64. package/data/docs/models/payment-webhook-endpoint.md +191 -0
  65. package/data/docs/models/sale.md +18 -18
  66. package/data/docs/models/site-payment.md +2 -2
  67. package/data/docs/models/site.md +2 -2
  68. package/data/docs/models/stocktake-item.md +4 -4
  69. package/data/docs/models/stocktake.md +5 -5
  70. package/data/docs/models/ticket.md +3 -3
  71. package/data/docs/models/user.md +249 -0
  72. package/data/docs/models/whatsapp-inbound-message.md +6 -2
  73. package/data/docs/models/whatsapp-outbound-lifecycle-event.md +2 -2
  74. package/data/docs/models/whatsapp-outbound-message.md +43 -27
  75. package/data/docs/models/whatsapp-template.md +6 -2
  76. package/data/static/llms.txt +322 -36
  77. package/data/static/openapi.yaml +1074 -66
  78. package/data/static/schemas.json +1183 -104
  79. package/package.json +1 -1
@@ -6,13 +6,13 @@ sidebar_position: 1
6
6
 
7
7
  # Firestore Collection Paths
8
8
 
9
- All collections are scoped under a company document. Per **D40**, a `sites/{siteId}/` sub-tenant scope sits below `companies/{companyId}/` for site-specific collections (ING-304). **D41** canonicalizes the Site document; **D42** adds the analytics rollup collections; **D43** adds optional `Order.siteId` for site attribution (per ADR-003).
9
+ All collections are scoped under a company document. Per **D40**, a `apps/{appId}/` sub-tenant scope sits below `companies/{companyId}/` for site-specific collections (ING-304). **D41** canonicalizes the App document; **D42** adds the analytics rollup collections; **D43** adds optional `Order.appId` (renamed from `siteId` per D44) for site attribution (per ADR-003).
10
10
 
11
11
  ```
12
12
  companies/{companyId}/
13
- ├── orders/{orderId} ← Order.siteId? (D43 / ADR-003) attributes to a site
14
- │ └── notifications/{notifId} ← GH#48 — order-scoped notification log (dual-write)
15
- ├── notifications/{notifId} ← GH#48 — company-wide notification audit log
13
+ ├── orders/{orderId} ← Order.appId? (D43 / ADR-003, D44) attributes to an app
14
+ │ └── notification_records/{notifId} ← GH#48 — order-scoped notification log (dual-write)
15
+ ├── notification_records/{notifId} ← GH#48 — company-wide notification audit log
16
16
  ├── customers/{customerId}
17
17
  ├── bookings/{bookingId}
18
18
  │ └── sessions/{sessionId}
@@ -24,7 +24,7 @@ companies/{companyId}/
24
24
  ├── paymentSummaries/{period}
25
25
  ├── loyaltyTransactions/{transactionId}
26
26
  ├── loyaltyConfig (singleton document)
27
- └── sites/{siteId} ← D41 Site document (D40 sub-tenant root)
27
+ └── apps/{appId} ← D41 App document (D40 sub-tenant root). ⚠️ Existing data still at sites/{siteId} pending migration (#60)
28
28
  ├── magic_link_requests/{requestId} ← 16-byte hex; auth audit log
29
29
  ├── allowed_users/{contactId} ← access allowlist; doc ID = email / E.164 phone (URL-escaped)
30
30
  ├── payments/{paymentId} ← SitePayment — immutable transaction ledger
@@ -37,29 +37,37 @@ companies/{companyId}/
37
37
  ## Path conventions
38
38
 
39
39
  - All paths are **tenant-scoped** under `companies/{companyId}/`
40
- - Site-specific collections live under `companies/{companyId}/sites/{siteId}/` (D40)
40
+ - App-specific collections live under `companies/{companyId}/apps/{appId}/` (D40/D44). Existing production data is still at `companies/{companyId}/sites/{siteId}/` pending migration — see the caution block above
41
41
  - Sub-collections (sessions, tickets) are nested under their parent
42
42
  - `loyaltyConfig` is a singleton document, not a collection
43
43
  - Document IDs are auto-generated Firestore IDs unless specified
44
44
 
45
- ## D40Site sub-tenant scope
45
+ :::caution Migration in progress `sites/` still supported
46
+ The Firestore collection path segment was renamed from **`sites/{siteId}`** to **`apps/{appId}`** as part of D44. The data migration has not yet run in production — existing documents still live under `sites/`. Until the migration script is executed and all consumers are updated (tracked in [#60](https://github.com/IngenX-IO/valets-data-architecture/issues/60)):
46
47
 
47
- Introduced for ING-304 (canonical Firestore models derived from the SR Single site reference). The site-scoped collections share one rationale: they belong to a *site* (a per-company product surface), not to the company as a whole. A company may host many sites.
48
+ - **New code** should use `apps/{appId}` this is the canonical path going forward.
49
+ - **Existing code** reading `sites/{siteId}` continues to work against production data.
50
+ - **Do not write new documents under `sites/`** — write to `apps/` only.
51
+ :::
52
+
53
+ ## D40/D44 — App sub-tenant scope (formerly Site)
54
+
55
+ Introduced for ING-304 (canonical Firestore models derived from the SR Single site reference). The site-scoped collections share one rationale: they belong to an *app* (a per-company digital product surface), not to the company as a whole. A company may operate many apps.
48
56
 
49
57
  | Collection | Purpose | Write pattern |
50
58
  |---|---|---|
51
59
  | `magic_link_requests` | Authentication audit log — every access request | Two-stage PATCH (request → verify) |
52
60
  | `allowed_users` | Authoritative paid-access allowlist; referral-code resolution table | Upsert by contact ID |
53
- | `payments` | Immutable SitePayment ledger (distinct from `customerPayments`) | Append-only; dual-write (redirect + webhook) |
61
+ | `payments` | Immutable AppPayment ledger (distinct from `customerPayments`) | Append-only; dual-write (redirect + webhook) |
54
62
  | `analytics_events` | Product/behavior event stream (page views, funnel, forms, orders, identity, errors) | Append-only, immutable |
55
63
 
56
64
  Related follow-ups: [ING-340](https://linear.app/ingenx/issue/ING-340) (retention/TTL), [ING-341](https://linear.app/ingenx/issue/ING-341) (PII redaction convention).
57
65
 
58
- ## D41 — Site document
66
+ ## D41 — App document
59
67
 
60
- The Site document at `companies/{companyId}/sites/{siteId}` is the root of the site sub-tenant scope. It holds:
68
+ The App document at `companies/{companyId}/apps/{appId}` is the root of the site sub-tenant scope. It holds:
61
69
 
62
- - `name`, `description`, `status` (`SiteStatus`: ACTIVE / INACTIVE / EXPIRED / ARCHIVED)
70
+ - `name`, `description`, `status` (`AppStatus`: ACTIVE / INACTIVE / EXPIRED / ARCHIVED)
63
71
  - `deploymentLinks[]` — ordered list of deployment URLs by `DeploymentLinkType` (web, mobile, pwa, app-store, play-store, other)
64
72
  - `expiresAt?` and derived `isExpired?`
65
73
  - `analyticsEnabled` feature flag; `lastAnalyticsSync` sentinel
@@ -72,19 +80,19 @@ Per GH ticket IngenX-IO/valets-dashboard#199, rollups are written by a scheduled
72
80
 
73
81
  | Collection | Doc ID | Writer | Notes |
74
82
  |---|---|---|---|
75
- | `analytics_daily` | `YYYY-MM-DD` (UTC) | Scheduled CF + backfill | `computeRollup(companyId, siteId, date)` — idempotent set/merge; reruns overwrite |
83
+ | `analytics_daily` | `YYYY-MM-DD` (UTC) | Scheduled CF + backfill | `computeRollup(companyId, appId, date)` — idempotent set/merge; reruns overwrite |
76
84
  | `analytics_hourly` | `YYYY-MM-DD-HH` (UTC) | Scheduled CF (hourly) | Same writer, scoped to a single hour bucket |
77
85
  | `analytics_backfills` | auto | Admin `onCall` | Tracks `status`, `from`/`to`, `processedDates`, `errors`, `dryRun`, audit fields |
78
86
 
79
87
  Readers should fall back to the raw `analytics_events` collection for slices not yet covered by a rollup.
80
88
 
81
- ## D43 — `Order.siteId` attribution (ADR-003)
89
+ ## D43/D44 — `Order.appId` attribution (renamed from siteId) (ADR-003)
82
90
 
83
- Orders live at the existing company-scoped path `companies/{companyId}/orders/{orderId}`. D43 adds an **optional** `siteId?: string` field — when set, the order is attributed to a specific site (enables site-scoped dashboards, analytics joins, and per-site revenue slices). When null or absent, the order is company-wide (legacy behavior).
91
+ Orders live at the existing company-scoped path `companies/{companyId}/orders/{orderId}`. D43 adds an **optional** `appId?: string` field (renamed from `siteId` per D44) — when set, the order is attributed to a specific app (enables site-scoped dashboards, analytics joins, and per-site revenue slices). When null or absent the order is company-wide (legacy behavior).
84
92
 
85
- - **No migration.** Existing orders keep `siteId = null`.
86
- - **Composite index:** `(companyId, siteId, createdAt)` for per-site recency queries.
87
- - **Physical relocation** of Order under `sites/{siteId}/orders/` is explicitly deferred (ADR-004, not approved).
93
+ - **No migration.** Existing orders keep `appId = null` (previously `siteId`).
94
+ - **Composite index:** `(companyId, appId, createdAt)` for per-site recency queries.
95
+ - **Physical relocation** of Order under `apps/{appId}/orders/` is explicitly deferred (ADR-004, not approved).
88
96
 
89
97
  ## WhatsApp messaging — top-level collections (GH#36 / GH#43)
90
98
 
@@ -110,10 +118,14 @@ whatsapp_templates/{waba__name__language} ← GH#43 — Meta-approved
110
118
 
111
119
  `NotificationRecord` is a backend-written, multi-channel (email / whatsapp / sms / push) audit log. It is written by Firebase Cloud Functions and **read-only** for consumers (registered server-owned, no Create/Update variant).
112
120
 
121
+ :::note Collection renamed
122
+ The collection path was renamed from `notifications` → `notification_records` (decision #55, 2026-05-30) to resolve a collision with the legacy in-app Notification model. Consumer code must update to the new path. The dashboard band-aid filter in PR #307 can be removed once the rename is deployed.
123
+ :::
124
+
113
125
  | Collection | When written | Notes |
114
126
  |---|---|---|
115
- | `companies/{cid}/notifications/{id}` | **Always** | Company-wide audit log for every notification |
116
- | `companies/{cid}/orders/{oid}/notifications/{id}` | **Only when** `relatedEntity.type === 'order'` | Dual-write (`Promise.all`) of the same record; enables O(1) per-order history and same-sender WhatsApp threading |
127
+ | `companies/{cid}/notification_records/{id}` | **Always** | Company-wide audit log for every notification |
128
+ | `companies/{cid}/orders/{oid}/notification_records/{id}` | **Only when** `relatedEntity.type === 'order'` | Dual-write (`Promise.all`) of the same record; enables O(1) per-order history and same-sender WhatsApp threading |
117
129
 
118
130
  For non-order entities (`magic_link`, `booking`, `digest`, …) only the company-wide collection is written. The same document ID is used in both copies.
119
131
 
@@ -0,0 +1,24 @@
1
+ ---
2
+ title: "AppStatus"
3
+ sidebar_label: "AppStatus"
4
+ sidebar_position: 1
5
+ ---
6
+
7
+ # AppStatus
8
+
9
+ | | |
10
+ | -------------- | ------------------------ |
11
+ | **Type** | `enum (of string)` |
12
+ | **Required** | No |
13
+ | **Defined in** | #/definitions/app-status |
14
+
15
+ **Description:** Lifecycle status for an App (formerly Site — renamed per decision #40 / D44). Drives whether the app is reachable and whether analytics/payments flow.
16
+
17
+ Must be one of:
18
+ * "ACTIVE"
19
+ * "INACTIVE"
20
+ * "EXPIRED"
21
+ * "ARCHIVED"
22
+
23
+ ----------------------------------------------------------------------------------------------------------------------------
24
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 13:38:44 +0000
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  title: "AttentionStatus"
3
3
  sidebar_label: "AttentionStatus"
4
- sidebar_position: 1
4
+ sidebar_position: 2
5
5
  ---
6
6
 
7
7
  # AttentionStatus
@@ -21,4 +21,4 @@ Must be one of:
21
21
  * "ESCALATED"
22
22
 
23
23
  ----------------------------------------------------------------------------------------------------------------------------
24
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 15:51:05 +0000
24
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 13:38:45 +0000
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  title: "BookingStatus"
3
3
  sidebar_label: "BookingStatus"
4
- sidebar_position: 2
4
+ sidebar_position: 3
5
5
  ---
6
6
 
7
7
  # BookingStatus
@@ -23,4 +23,4 @@ Must be one of:
23
23
  * "COMPLETED_MIXED"
24
24
 
25
25
  ----------------------------------------------------------------------------------------------------------------------------
26
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 15:51:05 +0000
26
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 13:38:45 +0000
@@ -0,0 +1,24 @@
1
+ ---
2
+ title: "ContractStatus"
3
+ sidebar_label: "ContractStatus"
4
+ sidebar_position: 4
5
+ ---
6
+
7
+ # ContractStatus
8
+
9
+ | | |
10
+ | -------------- | ----------------------------- |
11
+ | **Type** | `enum (of string)` |
12
+ | **Required** | No |
13
+ | **Defined in** | #/definitions/contract-status |
14
+
15
+ **Description:** 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.
16
+
17
+ Must be one of:
18
+ * "DRAFT"
19
+ * "ACTIVE"
20
+ * "COMPLETED"
21
+ * "TERMINATED"
22
+
23
+ ----------------------------------------------------------------------------------------------------------------------------
24
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 13:38:45 +0000
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  title: "CustomerPaymentStatus"
3
3
  sidebar_label: "CustomerPaymentStatus"
4
- sidebar_position: 3
4
+ sidebar_position: 5
5
5
  ---
6
6
 
7
7
  # CustomerPaymentStatus
@@ -23,4 +23,4 @@ Must be one of:
23
23
  * "CANCELLED"
24
24
 
25
25
  ----------------------------------------------------------------------------------------------------------------------------
26
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 15:51:05 +0000
26
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 13:38:45 +0000
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  title: "CustomerPaymentTargetType"
3
3
  sidebar_label: "CustomerPaymentTargetType"
4
- sidebar_position: 4
4
+ sidebar_position: 6
5
5
  ---
6
6
 
7
7
  # CustomerPaymentTargetType
@@ -20,4 +20,4 @@ Must be one of:
20
20
  * "PURCHASE"
21
21
 
22
22
  ----------------------------------------------------------------------------------------------------------------------------
23
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 15:51:05 +0000
23
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 13:38:45 +0000
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  title: "DeliveryType"
3
3
  sidebar_label: "DeliveryType"
4
- sidebar_position: 5
4
+ sidebar_position: 7
5
5
  ---
6
6
 
7
7
  # DeliveryType
@@ -20,4 +20,4 @@ Must be one of:
20
20
  * "DELIVERY"
21
21
 
22
22
  ----------------------------------------------------------------------------------------------------------------------------
23
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 15:51:05 +0000
23
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 13:38:45 +0000
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  title: "DeploymentLinkType"
3
3
  sidebar_label: "DeploymentLinkType"
4
- sidebar_position: 6
4
+ sidebar_position: 8
5
5
  ---
6
6
 
7
7
  # DeploymentLinkType
@@ -23,4 +23,4 @@ Must be one of:
23
23
  * "other"
24
24
 
25
25
  ----------------------------------------------------------------------------------------------------------------------------
26
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 15:51:05 +0000
26
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 13:38:45 +0000
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  title: "EventStatus"
3
3
  sidebar_label: "EventStatus"
4
- sidebar_position: 7
4
+ sidebar_position: 9
5
5
  ---
6
6
 
7
7
  # EventStatus
@@ -21,7 +21,7 @@ Must be one of:
21
21
  * "COMPLETED"
22
22
 
23
23
  ----------------------------------------------------------------------------------------------------------------------------
24
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 15:51:05 +0000
24
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 13:38:45 +0000
25
25
 
26
26
  ## Related Decisions
27
27
 
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  title: "FulfillmentStatus"
3
3
  sidebar_label: "FulfillmentStatus"
4
- sidebar_position: 8
4
+ sidebar_position: 10
5
5
  ---
6
6
 
7
7
  # FulfillmentStatus
@@ -23,7 +23,7 @@ Must be one of:
23
23
  * "PICKED_UP"
24
24
 
25
25
  ----------------------------------------------------------------------------------------------------------------------------
26
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 15:51:05 +0000
26
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 13:38:45 +0000
27
27
 
28
28
  ## Related Decisions
29
29
 
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  title: "LoyaltyTransactionType"
3
3
  sidebar_label: "LoyaltyTransactionType"
4
- sidebar_position: 9
4
+ sidebar_position: 11
5
5
  ---
6
6
 
7
7
  # LoyaltyTransactionType
@@ -23,7 +23,7 @@ Must be one of:
23
23
  * "REFUND"
24
24
 
25
25
  ----------------------------------------------------------------------------------------------------------------------------
26
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 15:51:05 +0000
26
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 13:38:45 +0000
27
27
 
28
28
  ## Related Decisions
29
29
 
@@ -0,0 +1,23 @@
1
+ ---
2
+ title: "MilestoneStatus"
3
+ sidebar_label: "MilestoneStatus"
4
+ sidebar_position: 12
5
+ ---
6
+
7
+ # MilestoneStatus
8
+
9
+ | | |
10
+ | -------------- | ------------------------------ |
11
+ | **Type** | `enum (of string)` |
12
+ | **Required** | No |
13
+ | **Defined in** | #/definitions/milestone-status |
14
+
15
+ **Description:** Status of a ContractMilestone (#17). PENDING = created, not yet invoiced. INVOICED = invoice issued, awaiting payment. PAID = payment received.
16
+
17
+ Must be one of:
18
+ * "PENDING"
19
+ * "INVOICED"
20
+ * "PAID"
21
+
22
+ ----------------------------------------------------------------------------------------------------------------------------
23
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 13:38:45 +0000
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  title: "NotificationChannel"
3
3
  sidebar_label: "NotificationChannel"
4
- sidebar_position: 10
4
+ sidebar_position: 13
5
5
  ---
6
6
 
7
7
  # NotificationChannel
@@ -21,4 +21,4 @@ Must be one of:
21
21
  * "push"
22
22
 
23
23
  ----------------------------------------------------------------------------------------------------------------------------
24
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 15:51:05 +0000
24
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 13:38:45 +0000
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  title: "NotificationEntityType"
3
3
  sidebar_label: "NotificationEntityType"
4
- sidebar_position: 11
4
+ sidebar_position: 14
5
5
  ---
6
6
 
7
7
  # NotificationEntityType
@@ -23,4 +23,4 @@ Must be one of:
23
23
  * "other"
24
24
 
25
25
  ----------------------------------------------------------------------------------------------------------------------------
26
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 15:51:05 +0000
26
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 13:38:45 +0000
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  title: "NotificationStatus"
3
3
  sidebar_label: "NotificationStatus"
4
- sidebar_position: 12
4
+ sidebar_position: 15
5
5
  ---
6
6
 
7
7
  # NotificationStatus
@@ -20,4 +20,4 @@ Must be one of:
20
20
  * "pending"
21
21
 
22
22
  ----------------------------------------------------------------------------------------------------------------------------
23
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 15:51:05 +0000
23
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 13:38:45 +0000
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  title: "OrderStatus"
3
3
  sidebar_label: "OrderStatus"
4
- sidebar_position: 13
4
+ sidebar_position: 16
5
5
  ---
6
6
 
7
7
  # OrderStatus
@@ -24,7 +24,7 @@ Must be one of:
24
24
  * "EXPIRED"
25
25
 
26
26
  ----------------------------------------------------------------------------------------------------------------------------
27
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 15:51:05 +0000
27
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 13:38:45 +0000
28
28
 
29
29
  ## Related Decisions
30
30
 
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  title: "OutboundMessageFormat"
3
3
  sidebar_label: "OutboundMessageFormat"
4
- sidebar_position: 14
4
+ sidebar_position: 17
5
5
  ---
6
6
 
7
7
  # OutboundMessageFormat
@@ -19,4 +19,4 @@ Must be one of:
19
19
  * "template"
20
20
 
21
21
  ----------------------------------------------------------------------------------------------------------------------------
22
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 15:51:05 +0000
22
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 13:38:45 +0000
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  title: "OutboundMessagePurpose"
3
3
  sidebar_label: "OutboundMessagePurpose"
4
- sidebar_position: 15
4
+ sidebar_position: 18
5
5
  ---
6
6
 
7
7
  # OutboundMessagePurpose
@@ -21,4 +21,4 @@ Must be one of:
21
21
  * "conversational"
22
22
 
23
23
  ----------------------------------------------------------------------------------------------------------------------------
24
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 15:51:05 +0000
24
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 13:38:45 +0000
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  title: "OutboundMessageStatus"
3
3
  sidebar_label: "OutboundMessageStatus"
4
- sidebar_position: 16
4
+ sidebar_position: 19
5
5
  ---
6
6
 
7
7
  # OutboundMessageStatus
@@ -22,4 +22,4 @@ Must be one of:
22
22
  * "failed"
23
23
 
24
24
  ----------------------------------------------------------------------------------------------------------------------------
25
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 15:51:05 +0000
25
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 13:38:45 +0000
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  title: "PaymentMethod"
3
3
  sidebar_label: "PaymentMethod"
4
- sidebar_position: 17
4
+ sidebar_position: 20
5
5
  ---
6
6
 
7
7
  # PaymentMethod
@@ -27,7 +27,7 @@ Must be one of:
27
27
  * "OTHER"
28
28
 
29
29
  ----------------------------------------------------------------------------------------------------------------------------
30
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 15:51:05 +0000
30
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 13:38:45 +0000
31
31
 
32
32
  ## Related Decisions
33
33
 
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  title: "PaymentProofStatus"
3
3
  sidebar_label: "PaymentProofStatus"
4
- sidebar_position: 18
4
+ sidebar_position: 21
5
5
  ---
6
6
 
7
7
  # PaymentProofStatus
@@ -20,4 +20,4 @@ Must be one of:
20
20
  * "REJECTED"
21
21
 
22
22
  ----------------------------------------------------------------------------------------------------------------------------
23
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 15:51:05 +0000
23
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 13:38:45 +0000
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  title: "PaymentStatus"
3
3
  sidebar_label: "PaymentStatus"
4
- sidebar_position: 19
4
+ sidebar_position: 22
5
5
  ---
6
6
 
7
7
  # PaymentStatus
@@ -24,7 +24,7 @@ Must be one of:
24
24
  * "PARTIALLY_REFUNDED"
25
25
 
26
26
  ----------------------------------------------------------------------------------------------------------------------------
27
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 15:51:05 +0000
27
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 13:38:45 +0000
28
28
 
29
29
  ## Related Decisions
30
30
 
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  title: "PendingIssue"
3
3
  sidebar_label: "PendingIssue"
4
- sidebar_position: 20
4
+ sidebar_position: 23
5
5
  ---
6
6
 
7
7
  # PendingIssue
@@ -28,4 +28,4 @@ Must be one of:
28
28
  * "NO_SHOW_UNRESOLVED"
29
29
 
30
30
  ----------------------------------------------------------------------------------------------------------------------------
31
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 15:51:05 +0000
31
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 13:38:45 +0000
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  title: "ReturnStatus"
3
3
  sidebar_label: "ReturnStatus"
4
- sidebar_position: 21
4
+ sidebar_position: 24
5
5
  ---
6
6
 
7
7
  # ReturnStatus
@@ -23,7 +23,7 @@ Must be one of:
23
23
  * "EXCHANGE_COMPLETED"
24
24
 
25
25
  ----------------------------------------------------------------------------------------------------------------------------
26
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 15:51:05 +0000
26
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 13:38:45 +0000
27
27
 
28
28
  ## Related Decisions
29
29
 
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  title: "SessionStatus"
3
3
  sidebar_label: "SessionStatus"
4
- sidebar_position: 22
4
+ sidebar_position: 25
5
5
  ---
6
6
 
7
7
  # SessionStatus
@@ -23,7 +23,7 @@ Must be one of:
23
23
  * "CANCELLED"
24
24
 
25
25
  ----------------------------------------------------------------------------------------------------------------------------
26
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 15:51:05 +0000
26
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 13:38:45 +0000
27
27
 
28
28
  ## Related Decisions
29
29
 
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  title: "SiteStatus"
3
3
  sidebar_label: "SiteStatus"
4
- sidebar_position: 23
4
+ sidebar_position: 26
5
5
  ---
6
6
 
7
7
  # SiteStatus
@@ -21,4 +21,4 @@ Must be one of:
21
21
  * "ARCHIVED"
22
22
 
23
23
  ----------------------------------------------------------------------------------------------------------------------------
24
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 15:51:05 +0000
24
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 13:38:45 +0000
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  title: "StocktakeFrequency"
3
3
  sidebar_label: "StocktakeFrequency"
4
- sidebar_position: 24
4
+ sidebar_position: 27
5
5
  ---
6
6
 
7
7
  # StocktakeFrequency
@@ -21,4 +21,4 @@ Must be one of:
21
21
  * "AD_HOC"
22
22
 
23
23
  ----------------------------------------------------------------------------------------------------------------------------
24
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 15:51:05 +0000
24
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 13:38:45 +0000
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  title: "StocktakeItemStatus"
3
3
  sidebar_label: "StocktakeItemStatus"
4
- sidebar_position: 25
4
+ sidebar_position: 28
5
5
  ---
6
6
 
7
7
  # StocktakeItemStatus
@@ -21,4 +21,4 @@ Must be one of:
21
21
  * "ADJUSTED"
22
22
 
23
23
  ----------------------------------------------------------------------------------------------------------------------------
24
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 15:51:05 +0000
24
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 13:38:45 +0000
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  title: "StocktakeStatus"
3
3
  sidebar_label: "StocktakeStatus"
4
- sidebar_position: 26
4
+ sidebar_position: 29
5
5
  ---
6
6
 
7
7
  # StocktakeStatus
@@ -21,4 +21,4 @@ Must be one of:
21
21
  * "CANCELLED"
22
22
 
23
23
  ----------------------------------------------------------------------------------------------------------------------------
24
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 15:51:05 +0000
24
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 13:38:45 +0000