@contractspec/example.marketplace 1.56.1 → 1.58.0
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/dist/browser/docs/index.js +103 -0
- package/dist/browser/docs/marketplace.docblock.js +103 -0
- package/dist/browser/entities/index.js +721 -0
- package/dist/browser/entities/order.js +167 -0
- package/dist/browser/entities/payout.js +142 -0
- package/dist/browser/entities/product.js +152 -0
- package/dist/browser/entities/review.js +129 -0
- package/dist/browser/entities/store.js +97 -0
- package/dist/browser/example.js +42 -0
- package/dist/browser/handlers/index.js +303 -0
- package/dist/browser/handlers/marketplace.handlers.js +303 -0
- package/dist/browser/index.js +2016 -0
- package/dist/browser/marketplace.capability.js +40 -0
- package/dist/browser/marketplace.feature.js +137 -0
- package/dist/browser/order/index.js +307 -0
- package/dist/browser/order/order.enum.js +17 -0
- package/dist/browser/order/order.event.js +131 -0
- package/dist/browser/order/order.operations.js +172 -0
- package/dist/browser/order/order.presentation.js +153 -0
- package/dist/browser/order/order.schema.js +79 -0
- package/dist/browser/payout/index.js +152 -0
- package/dist/browser/payout/payout.enum.js +12 -0
- package/dist/browser/payout/payout.event.js +55 -0
- package/dist/browser/payout/payout.operations.js +94 -0
- package/dist/browser/payout/payout.presentation.js +111 -0
- package/dist/browser/payout/payout.schema.js +61 -0
- package/dist/browser/product/index.js +249 -0
- package/dist/browser/product/product.enum.js +13 -0
- package/dist/browser/product/product.event.js +74 -0
- package/dist/browser/product/product.operations.js +171 -0
- package/dist/browser/product/product.presentation.js +158 -0
- package/dist/browser/product/product.schema.js +84 -0
- package/dist/browser/review/index.js +206 -0
- package/dist/browser/review/review.enum.js +11 -0
- package/dist/browser/review/review.event.js +50 -0
- package/dist/browser/review/review.operations.js +152 -0
- package/dist/browser/review/review.presentation.js +123 -0
- package/dist/browser/review/review.schema.js +74 -0
- package/dist/browser/seeders/index.js +12 -0
- package/dist/browser/store/index.js +142 -0
- package/dist/browser/store/store.enum.js +11 -0
- package/dist/browser/store/store.event.js +52 -0
- package/dist/browser/store/store.operations.js +88 -0
- package/dist/browser/store/store.presentation.js +94 -0
- package/dist/browser/store/store.schema.js +43 -0
- package/dist/browser/tests/operations.test-spec.js +139 -0
- package/dist/browser/ui/MarketplaceDashboard.js +418 -0
- package/dist/browser/ui/hooks/index.js +59 -0
- package/dist/browser/ui/hooks/useMarketplaceData.js +56 -0
- package/dist/browser/ui/index.js +668 -0
- package/dist/browser/ui/renderers/index.js +248 -0
- package/dist/browser/ui/renderers/marketplace.markdown.js +248 -0
- package/dist/docs/index.d.ts +2 -1
- package/dist/docs/index.d.ts.map +1 -0
- package/dist/docs/index.js +104 -1
- package/dist/docs/marketplace.docblock.d.ts +2 -1
- package/dist/docs/marketplace.docblock.d.ts.map +1 -0
- package/dist/docs/marketplace.docblock.js +46 -57
- package/dist/entities/index.d.ts +302 -307
- package/dist/entities/index.d.ts.map +1 -1
- package/dist/entities/index.js +719 -43
- package/dist/entities/order.d.ts +77 -82
- package/dist/entities/order.d.ts.map +1 -1
- package/dist/entities/order.js +162 -167
- package/dist/entities/payout.d.ts +64 -69
- package/dist/entities/payout.d.ts.map +1 -1
- package/dist/entities/payout.js +137 -156
- package/dist/entities/product.d.ts +69 -74
- package/dist/entities/product.d.ts.map +1 -1
- package/dist/entities/product.js +148 -156
- package/dist/entities/review.d.ts +55 -60
- package/dist/entities/review.d.ts.map +1 -1
- package/dist/entities/review.js +124 -146
- package/dist/entities/store.d.ts +40 -45
- package/dist/entities/store.d.ts.map +1 -1
- package/dist/entities/store.js +94 -106
- package/dist/example.d.ts +2 -6
- package/dist/example.d.ts.map +1 -1
- package/dist/example.js +40 -55
- package/dist/handlers/index.d.ts +2 -2
- package/dist/handlers/index.d.ts.map +1 -0
- package/dist/handlers/index.js +304 -3
- package/dist/handlers/marketplace.handlers.d.ts +138 -138
- package/dist/handlers/marketplace.handlers.d.ts.map +1 -1
- package/dist/handlers/marketplace.handlers.js +284 -309
- package/dist/index.d.ts +13 -31
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2017 -32
- package/dist/marketplace.capability.d.ts +3 -8
- package/dist/marketplace.capability.d.ts.map +1 -1
- package/dist/marketplace.capability.js +41 -34
- package/dist/marketplace.feature.d.ts +1 -7
- package/dist/marketplace.feature.d.ts.map +1 -1
- package/dist/marketplace.feature.js +136 -313
- package/dist/node/docs/index.js +103 -0
- package/dist/node/docs/marketplace.docblock.js +103 -0
- package/dist/node/entities/index.js +721 -0
- package/dist/node/entities/order.js +167 -0
- package/dist/node/entities/payout.js +142 -0
- package/dist/node/entities/product.js +152 -0
- package/dist/node/entities/review.js +129 -0
- package/dist/node/entities/store.js +97 -0
- package/dist/node/example.js +42 -0
- package/dist/node/handlers/index.js +303 -0
- package/dist/node/handlers/marketplace.handlers.js +303 -0
- package/dist/node/index.js +2016 -0
- package/dist/node/marketplace.capability.js +40 -0
- package/dist/node/marketplace.feature.js +137 -0
- package/dist/node/order/index.js +307 -0
- package/dist/node/order/order.enum.js +17 -0
- package/dist/node/order/order.event.js +131 -0
- package/dist/node/order/order.operations.js +172 -0
- package/dist/node/order/order.presentation.js +153 -0
- package/dist/node/order/order.schema.js +79 -0
- package/dist/node/payout/index.js +152 -0
- package/dist/node/payout/payout.enum.js +12 -0
- package/dist/node/payout/payout.event.js +55 -0
- package/dist/node/payout/payout.operations.js +94 -0
- package/dist/node/payout/payout.presentation.js +111 -0
- package/dist/node/payout/payout.schema.js +61 -0
- package/dist/node/product/index.js +249 -0
- package/dist/node/product/product.enum.js +13 -0
- package/dist/node/product/product.event.js +74 -0
- package/dist/node/product/product.operations.js +171 -0
- package/dist/node/product/product.presentation.js +158 -0
- package/dist/node/product/product.schema.js +84 -0
- package/dist/node/review/index.js +206 -0
- package/dist/node/review/review.enum.js +11 -0
- package/dist/node/review/review.event.js +50 -0
- package/dist/node/review/review.operations.js +152 -0
- package/dist/node/review/review.presentation.js +123 -0
- package/dist/node/review/review.schema.js +74 -0
- package/dist/node/seeders/index.js +12 -0
- package/dist/node/store/index.js +142 -0
- package/dist/node/store/store.enum.js +11 -0
- package/dist/node/store/store.event.js +52 -0
- package/dist/node/store/store.operations.js +88 -0
- package/dist/node/store/store.presentation.js +94 -0
- package/dist/node/store/store.schema.js +43 -0
- package/dist/node/tests/operations.test-spec.js +139 -0
- package/dist/node/ui/MarketplaceDashboard.js +418 -0
- package/dist/node/ui/hooks/index.js +59 -0
- package/dist/node/ui/hooks/useMarketplaceData.js +56 -0
- package/dist/node/ui/index.js +668 -0
- package/dist/node/ui/renderers/index.js +248 -0
- package/dist/node/ui/renderers/marketplace.markdown.js +248 -0
- package/dist/order/index.d.ts +8 -5
- package/dist/order/index.d.ts.map +1 -0
- package/dist/order/index.js +307 -5
- package/dist/order/order.enum.d.ts +1 -6
- package/dist/order/order.enum.d.ts.map +1 -1
- package/dist/order/order.enum.js +16 -20
- package/dist/order/order.event.d.ts +133 -139
- package/dist/order/order.event.d.ts.map +1 -1
- package/dist/order/order.event.js +121 -205
- package/dist/order/order.operations.d.ts +291 -297
- package/dist/order/order.operations.d.ts.map +1 -1
- package/dist/order/order.operations.js +169 -115
- package/dist/order/order.presentation.d.ts +3 -8
- package/dist/order/order.presentation.d.ts.map +1 -1
- package/dist/order/order.presentation.js +149 -81
- package/dist/order/order.schema.d.ts +143 -148
- package/dist/order/order.schema.d.ts.map +1 -1
- package/dist/order/order.schema.js +75 -150
- package/dist/payout/index.d.ts +8 -5
- package/dist/payout/index.d.ts.map +1 -0
- package/dist/payout/index.js +152 -5
- package/dist/payout/payout.enum.d.ts +1 -6
- package/dist/payout/payout.enum.d.ts.map +1 -1
- package/dist/payout/payout.enum.js +11 -15
- package/dist/payout/payout.event.d.ts +54 -60
- package/dist/payout/payout.event.d.ts.map +1 -1
- package/dist/payout/payout.event.js +51 -87
- package/dist/payout/payout.operations.d.ts +82 -88
- package/dist/payout/payout.operations.d.ts.map +1 -1
- package/dist/payout/payout.operations.js +92 -50
- package/dist/payout/payout.presentation.d.ts +2 -7
- package/dist/payout/payout.presentation.d.ts.map +1 -1
- package/dist/payout/payout.presentation.js +108 -56
- package/dist/payout/payout.schema.d.ts +139 -144
- package/dist/payout/payout.schema.d.ts.map +1 -1
- package/dist/payout/payout.schema.js +58 -112
- package/dist/product/index.d.ts +8 -5
- package/dist/product/index.d.ts.map +1 -0
- package/dist/product/index.js +249 -5
- package/dist/product/product.enum.d.ts +1 -6
- package/dist/product/product.enum.d.ts.map +1 -1
- package/dist/product/product.enum.js +12 -16
- package/dist/product/product.event.d.ts +63 -69
- package/dist/product/product.event.d.ts.map +1 -1
- package/dist/product/product.event.js +68 -113
- package/dist/product/product.operations.d.ts +225 -231
- package/dist/product/product.operations.d.ts.map +1 -1
- package/dist/product/product.operations.js +168 -104
- package/dist/product/product.presentation.d.ts +3 -8
- package/dist/product/product.presentation.d.ts.map +1 -1
- package/dist/product/product.presentation.js +154 -81
- package/dist/product/product.schema.d.ts +196 -201
- package/dist/product/product.schema.d.ts.map +1 -1
- package/dist/product/product.schema.js +80 -171
- package/dist/review/index.d.ts +8 -5
- package/dist/review/index.d.ts.map +1 -0
- package/dist/review/index.js +206 -5
- package/dist/review/review.enum.d.ts +1 -6
- package/dist/review/review.enum.d.ts.map +1 -1
- package/dist/review/review.enum.js +10 -14
- package/dist/review/review.event.d.ts +46 -52
- package/dist/review/review.event.d.ts.map +1 -1
- package/dist/review/review.event.js +46 -79
- package/dist/review/review.operations.d.ts +190 -196
- package/dist/review/review.operations.d.ts.map +1 -1
- package/dist/review/review.operations.js +149 -102
- package/dist/review/review.presentation.d.ts +2 -7
- package/dist/review/review.presentation.d.ts.map +1 -1
- package/dist/review/review.presentation.js +120 -56
- package/dist/review/review.schema.d.ts +164 -169
- package/dist/review/review.schema.d.ts.map +1 -1
- package/dist/review/review.schema.js +70 -151
- package/dist/seeders/index.d.ts +4 -8
- package/dist/seeders/index.d.ts.map +1 -1
- package/dist/seeders/index.js +11 -16
- package/dist/store/index.d.ts +8 -5
- package/dist/store/index.d.ts.map +1 -0
- package/dist/store/index.js +142 -5
- package/dist/store/store.enum.d.ts +1 -6
- package/dist/store/store.enum.d.ts.map +1 -1
- package/dist/store/store.enum.js +10 -14
- package/dist/store/store.event.d.ts +42 -48
- package/dist/store/store.event.d.ts.map +1 -1
- package/dist/store/store.event.js +48 -75
- package/dist/store/store.operations.d.ts +98 -104
- package/dist/store/store.operations.d.ts.map +1 -1
- package/dist/store/store.operations.js +86 -58
- package/dist/store/store.presentation.d.ts +2 -7
- package/dist/store/store.presentation.d.ts.map +1 -1
- package/dist/store/store.presentation.js +91 -56
- package/dist/store/store.schema.d.ts +70 -75
- package/dist/store/store.schema.d.ts.map +1 -1
- package/dist/store/store.schema.js +41 -90
- package/dist/tests/operations.test-spec.d.ts +5 -10
- package/dist/tests/operations.test-spec.d.ts.map +1 -1
- package/dist/tests/operations.test-spec.js +134 -146
- package/dist/ui/MarketplaceDashboard.d.ts +1 -6
- package/dist/ui/MarketplaceDashboard.d.ts.map +1 -1
- package/dist/ui/MarketplaceDashboard.js +413 -313
- package/dist/ui/hooks/index.d.ts +2 -2
- package/dist/ui/hooks/index.d.ts.map +1 -0
- package/dist/ui/hooks/index.js +59 -4
- package/dist/ui/hooks/useMarketplaceData.d.ts +16 -20
- package/dist/ui/hooks/useMarketplaceData.d.ts.map +1 -1
- package/dist/ui/hooks/useMarketplaceData.js +53 -60
- package/dist/ui/index.d.ts +7 -6
- package/dist/ui/index.d.ts.map +1 -0
- package/dist/ui/index.js +668 -5
- package/dist/ui/renderers/index.d.ts +2 -2
- package/dist/ui/renderers/index.d.ts.map +1 -0
- package/dist/ui/renderers/index.js +249 -3
- package/dist/ui/renderers/marketplace.markdown.d.ts +13 -15
- package/dist/ui/renderers/marketplace.markdown.d.ts.map +1 -1
- package/dist/ui/renderers/marketplace.markdown.js +241 -236
- package/package.json +529 -110
- package/dist/docs/marketplace.docblock.js.map +0 -1
- package/dist/entities/index.js.map +0 -1
- package/dist/entities/order.js.map +0 -1
- package/dist/entities/payout.js.map +0 -1
- package/dist/entities/product.js.map +0 -1
- package/dist/entities/review.js.map +0 -1
- package/dist/entities/store.js.map +0 -1
- package/dist/example.js.map +0 -1
- package/dist/handlers/marketplace.handlers.js.map +0 -1
- package/dist/marketplace.capability.js.map +0 -1
- package/dist/marketplace.feature.js.map +0 -1
- package/dist/order/order.enum.js.map +0 -1
- package/dist/order/order.event.js.map +0 -1
- package/dist/order/order.operations.js.map +0 -1
- package/dist/order/order.presentation.js.map +0 -1
- package/dist/order/order.schema.js.map +0 -1
- package/dist/payout/payout.enum.js.map +0 -1
- package/dist/payout/payout.event.js.map +0 -1
- package/dist/payout/payout.operations.js.map +0 -1
- package/dist/payout/payout.presentation.js.map +0 -1
- package/dist/payout/payout.schema.js.map +0 -1
- package/dist/product/product.enum.js.map +0 -1
- package/dist/product/product.event.js.map +0 -1
- package/dist/product/product.operations.js.map +0 -1
- package/dist/product/product.presentation.js.map +0 -1
- package/dist/product/product.schema.js.map +0 -1
- package/dist/review/review.enum.js.map +0 -1
- package/dist/review/review.event.js.map +0 -1
- package/dist/review/review.operations.js.map +0 -1
- package/dist/review/review.presentation.js.map +0 -1
- package/dist/review/review.schema.js.map +0 -1
- package/dist/seeders/index.js.map +0 -1
- package/dist/store/store.enum.js.map +0 -1
- package/dist/store/store.event.js.map +0 -1
- package/dist/store/store.operations.js.map +0 -1
- package/dist/store/store.presentation.js.map +0 -1
- package/dist/store/store.schema.js.map +0 -1
- package/dist/tests/operations.test-spec.js.map +0 -1
- package/dist/ui/MarketplaceDashboard.js.map +0 -1
- package/dist/ui/hooks/useMarketplaceData.js.map +0 -1
- package/dist/ui/renderers/marketplace.markdown.js.map +0 -1
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
// src/docs/marketplace.docblock.ts
|
|
2
|
+
import { registerDocBlocks } from "@contractspec/lib.contracts/docs";
|
|
3
|
+
var marketplaceDocBlocks = [
|
|
4
|
+
{
|
|
5
|
+
id: "docs.examples.marketplace",
|
|
6
|
+
title: "Marketplace (2-sided)",
|
|
7
|
+
summary: "Two-sided marketplace with stores, products, orders, payouts, and reviews. Demonstrates multi-actor flows, payments, and attachments.",
|
|
8
|
+
kind: "reference",
|
|
9
|
+
visibility: "public",
|
|
10
|
+
route: "/docs/examples/marketplace",
|
|
11
|
+
tags: ["marketplace", "orders", "payouts", "reviews"],
|
|
12
|
+
body: `## Entities
|
|
13
|
+
|
|
14
|
+
- Store, Product, Order, OrderItem, Payout, Review.
|
|
15
|
+
- Uses Files module for product media and receipt attachments.
|
|
16
|
+
|
|
17
|
+
## Contracts
|
|
18
|
+
|
|
19
|
+
- \`marketplace.store.create\`, \`marketplace.product.add\`, \`marketplace.order.place\`, \`marketplace.payout.process\`, \`marketplace.review.submit\`.
|
|
20
|
+
- Policy guards via Identity/RBAC for provider vs client actions.
|
|
21
|
+
|
|
22
|
+
## Events
|
|
23
|
+
|
|
24
|
+
- order.created/completed/cancelled, payout.queued/completed, review.submitted.
|
|
25
|
+
- Hooked into Notifications and Audit Trail modules.
|
|
26
|
+
|
|
27
|
+
## UI / Presentations
|
|
28
|
+
|
|
29
|
+
- Dashboard, product catalog, order list/detail, store management.
|
|
30
|
+
- Templates registered under \`marketplace\` in Studio Template Registry.
|
|
31
|
+
|
|
32
|
+
## Notes
|
|
33
|
+
|
|
34
|
+
- Commission model encoded in spec; payouts scheduled via Jobs module.
|
|
35
|
+
- Feature flags can gate beta checkout or new reviews flow.
|
|
36
|
+
`
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
id: "docs.examples.marketplace.goal",
|
|
40
|
+
title: "Marketplace — Goal",
|
|
41
|
+
summary: "Why this marketplace template exists and the outcomes it targets.",
|
|
42
|
+
kind: "goal",
|
|
43
|
+
visibility: "public",
|
|
44
|
+
route: "/docs/examples/marketplace/goal",
|
|
45
|
+
tags: ["marketplace", "goal"],
|
|
46
|
+
body: `## Why it matters
|
|
47
|
+
- Provides a regenerable 2-sided marketplace baseline without bespoke glue.
|
|
48
|
+
- Keeps payouts, catalog, orders, and reviews consistent across surfaces.
|
|
49
|
+
|
|
50
|
+
## Business/Product goal
|
|
51
|
+
- Safe provider/client flows with auditable payouts and moderation-ready reviews.
|
|
52
|
+
- Staged rollouts for payments/reviews via feature flags; explicit commission/tax fields.
|
|
53
|
+
|
|
54
|
+
## Success criteria
|
|
55
|
+
- Orders/payouts regenerate cleanly after spec changes.
|
|
56
|
+
- Events emit for lifecycle + audit; PII is scoped/redacted in presentations.`
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
id: "docs.examples.marketplace.usage",
|
|
60
|
+
title: "Marketplace — Usage",
|
|
61
|
+
summary: "How to seed, extend, and safely regenerate the marketplace.",
|
|
62
|
+
kind: "usage",
|
|
63
|
+
visibility: "public",
|
|
64
|
+
route: "/docs/examples/marketplace/usage",
|
|
65
|
+
tags: ["marketplace", "usage"],
|
|
66
|
+
body: `## Setup
|
|
67
|
+
1) Seed sample stores/products/orders via template registry (or create via UI).
|
|
68
|
+
2) Configure Files storage for media/receipts; set policy.pii for sensitive fields.
|
|
69
|
+
|
|
70
|
+
## Extend & regenerate
|
|
71
|
+
1) Adjust schemas for commission/tax/payout states or review moderation in the spec.
|
|
72
|
+
2) Regenerate to sync UI, API, events, notifications.
|
|
73
|
+
3) Gate risky changes (new payment providers) behind Feature Flags.
|
|
74
|
+
|
|
75
|
+
## Guardrails
|
|
76
|
+
- Emit events for order/payout state changes; log via Audit Trail.
|
|
77
|
+
- Avoid hidden commission math—keep explicit fields.
|
|
78
|
+
- Redact buyer/provider PII in markdown/JSON presentations.`
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
id: "docs.examples.marketplace.constraints",
|
|
82
|
+
title: "Marketplace — Constraints & Safety",
|
|
83
|
+
summary: "Internal guardrails for payouts, order states, and regeneration semantics.",
|
|
84
|
+
kind: "reference",
|
|
85
|
+
visibility: "internal",
|
|
86
|
+
route: "/docs/examples/marketplace/constraints",
|
|
87
|
+
tags: ["marketplace", "constraints", "internal"],
|
|
88
|
+
body: `## Constraints
|
|
89
|
+
- Commission logic and order states must stay spec-defined; never adjust in code-only patches.
|
|
90
|
+
- Events to emit: order.created, order.completed, payout.queued, review.posted (minimum).
|
|
91
|
+
- Regeneration must not change payment semantics without explicit spec diff.
|
|
92
|
+
|
|
93
|
+
## Safety & PII
|
|
94
|
+
- Redact buyer/provider identifiers in markdown/JSON outputs; scope payouts per tenant/org.
|
|
95
|
+
- For MCP/web surfaces, avoid exposing raw payout calc inputs; use summaries.
|
|
96
|
+
|
|
97
|
+
## Testing/Verification
|
|
98
|
+
- Add fixtures covering order lifecycle and payout queueing.
|
|
99
|
+
- Run regeneration diff when changing commission/tax fields; verify presentations updated.
|
|
100
|
+
- Ensure Notifications/Audit wiring remains intact for order/payout/review events.`
|
|
101
|
+
}
|
|
102
|
+
];
|
|
103
|
+
registerDocBlocks(marketplaceDocBlocks);
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
// src/docs/marketplace.docblock.ts
|
|
2
|
+
import { registerDocBlocks } from "@contractspec/lib.contracts/docs";
|
|
3
|
+
var marketplaceDocBlocks = [
|
|
4
|
+
{
|
|
5
|
+
id: "docs.examples.marketplace",
|
|
6
|
+
title: "Marketplace (2-sided)",
|
|
7
|
+
summary: "Two-sided marketplace with stores, products, orders, payouts, and reviews. Demonstrates multi-actor flows, payments, and attachments.",
|
|
8
|
+
kind: "reference",
|
|
9
|
+
visibility: "public",
|
|
10
|
+
route: "/docs/examples/marketplace",
|
|
11
|
+
tags: ["marketplace", "orders", "payouts", "reviews"],
|
|
12
|
+
body: `## Entities
|
|
13
|
+
|
|
14
|
+
- Store, Product, Order, OrderItem, Payout, Review.
|
|
15
|
+
- Uses Files module for product media and receipt attachments.
|
|
16
|
+
|
|
17
|
+
## Contracts
|
|
18
|
+
|
|
19
|
+
- \`marketplace.store.create\`, \`marketplace.product.add\`, \`marketplace.order.place\`, \`marketplace.payout.process\`, \`marketplace.review.submit\`.
|
|
20
|
+
- Policy guards via Identity/RBAC for provider vs client actions.
|
|
21
|
+
|
|
22
|
+
## Events
|
|
23
|
+
|
|
24
|
+
- order.created/completed/cancelled, payout.queued/completed, review.submitted.
|
|
25
|
+
- Hooked into Notifications and Audit Trail modules.
|
|
26
|
+
|
|
27
|
+
## UI / Presentations
|
|
28
|
+
|
|
29
|
+
- Dashboard, product catalog, order list/detail, store management.
|
|
30
|
+
- Templates registered under \`marketplace\` in Studio Template Registry.
|
|
31
|
+
|
|
32
|
+
## Notes
|
|
33
|
+
|
|
34
|
+
- Commission model encoded in spec; payouts scheduled via Jobs module.
|
|
35
|
+
- Feature flags can gate beta checkout or new reviews flow.
|
|
36
|
+
`
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
id: "docs.examples.marketplace.goal",
|
|
40
|
+
title: "Marketplace — Goal",
|
|
41
|
+
summary: "Why this marketplace template exists and the outcomes it targets.",
|
|
42
|
+
kind: "goal",
|
|
43
|
+
visibility: "public",
|
|
44
|
+
route: "/docs/examples/marketplace/goal",
|
|
45
|
+
tags: ["marketplace", "goal"],
|
|
46
|
+
body: `## Why it matters
|
|
47
|
+
- Provides a regenerable 2-sided marketplace baseline without bespoke glue.
|
|
48
|
+
- Keeps payouts, catalog, orders, and reviews consistent across surfaces.
|
|
49
|
+
|
|
50
|
+
## Business/Product goal
|
|
51
|
+
- Safe provider/client flows with auditable payouts and moderation-ready reviews.
|
|
52
|
+
- Staged rollouts for payments/reviews via feature flags; explicit commission/tax fields.
|
|
53
|
+
|
|
54
|
+
## Success criteria
|
|
55
|
+
- Orders/payouts regenerate cleanly after spec changes.
|
|
56
|
+
- Events emit for lifecycle + audit; PII is scoped/redacted in presentations.`
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
id: "docs.examples.marketplace.usage",
|
|
60
|
+
title: "Marketplace — Usage",
|
|
61
|
+
summary: "How to seed, extend, and safely regenerate the marketplace.",
|
|
62
|
+
kind: "usage",
|
|
63
|
+
visibility: "public",
|
|
64
|
+
route: "/docs/examples/marketplace/usage",
|
|
65
|
+
tags: ["marketplace", "usage"],
|
|
66
|
+
body: `## Setup
|
|
67
|
+
1) Seed sample stores/products/orders via template registry (or create via UI).
|
|
68
|
+
2) Configure Files storage for media/receipts; set policy.pii for sensitive fields.
|
|
69
|
+
|
|
70
|
+
## Extend & regenerate
|
|
71
|
+
1) Adjust schemas for commission/tax/payout states or review moderation in the spec.
|
|
72
|
+
2) Regenerate to sync UI, API, events, notifications.
|
|
73
|
+
3) Gate risky changes (new payment providers) behind Feature Flags.
|
|
74
|
+
|
|
75
|
+
## Guardrails
|
|
76
|
+
- Emit events for order/payout state changes; log via Audit Trail.
|
|
77
|
+
- Avoid hidden commission math—keep explicit fields.
|
|
78
|
+
- Redact buyer/provider PII in markdown/JSON presentations.`
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
id: "docs.examples.marketplace.constraints",
|
|
82
|
+
title: "Marketplace — Constraints & Safety",
|
|
83
|
+
summary: "Internal guardrails for payouts, order states, and regeneration semantics.",
|
|
84
|
+
kind: "reference",
|
|
85
|
+
visibility: "internal",
|
|
86
|
+
route: "/docs/examples/marketplace/constraints",
|
|
87
|
+
tags: ["marketplace", "constraints", "internal"],
|
|
88
|
+
body: `## Constraints
|
|
89
|
+
- Commission logic and order states must stay spec-defined; never adjust in code-only patches.
|
|
90
|
+
- Events to emit: order.created, order.completed, payout.queued, review.posted (minimum).
|
|
91
|
+
- Regeneration must not change payment semantics without explicit spec diff.
|
|
92
|
+
|
|
93
|
+
## Safety & PII
|
|
94
|
+
- Redact buyer/provider identifiers in markdown/JSON outputs; scope payouts per tenant/org.
|
|
95
|
+
- For MCP/web surfaces, avoid exposing raw payout calc inputs; use summaries.
|
|
96
|
+
|
|
97
|
+
## Testing/Verification
|
|
98
|
+
- Add fixtures covering order lifecycle and payout queueing.
|
|
99
|
+
- Run regeneration diff when changing commission/tax fields; verify presentations updated.
|
|
100
|
+
- Ensure Notifications/Audit wiring remains intact for order/payout/review events.`
|
|
101
|
+
}
|
|
102
|
+
];
|
|
103
|
+
registerDocBlocks(marketplaceDocBlocks);
|