@lssm/example.marketplace 0.0.0-canary-20251215234153 → 0.0.0-canary-20251216023757

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lssm/example.marketplace",
3
- "version": "0.0.0-canary-20251215234153",
3
+ "version": "0.0.0-canary-20251216023757",
4
4
  "description": "Marketplace example with orders, payouts, and reviews for ContractSpec",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -35,7 +35,6 @@
35
35
  },
36
36
  "exports": {
37
37
  ".": "./src/index.ts",
38
- "./contracts": "./src/contracts/index.ts",
39
38
  "./docs": "./src/docs/index.ts",
40
39
  "./docs/marketplace.docblock": "./src/docs/marketplace.docblock.ts",
41
40
  "./entities": "./src/entities/index.ts",
@@ -44,11 +43,33 @@
44
43
  "./entities/product": "./src/entities/product.ts",
45
44
  "./entities/review": "./src/entities/review.ts",
46
45
  "./entities/store": "./src/entities/store.ts",
47
- "./events": "./src/events.ts",
48
46
  "./example": "./src/example.ts",
49
47
  "./feature": "./src/feature.ts",
50
- "./handlers": "./src/handlers/index.ts",
51
- "./presentations": "./src/presentations/index.ts",
48
+ "./order": "./src/order/index.ts",
49
+ "./order/order.contracts": "./src/order/order.contracts.ts",
50
+ "./order/order.enum": "./src/order/order.enum.ts",
51
+ "./order/order.event": "./src/order/order.event.ts",
52
+ "./order/order.schema": "./src/order/order.schema.ts",
53
+ "./payout": "./src/payout/index.ts",
54
+ "./payout/payout.contracts": "./src/payout/payout.contracts.ts",
55
+ "./payout/payout.enum": "./src/payout/payout.enum.ts",
56
+ "./payout/payout.event": "./src/payout/payout.event.ts",
57
+ "./payout/payout.schema": "./src/payout/payout.schema.ts",
58
+ "./product": "./src/product/index.ts",
59
+ "./product/product.contracts": "./src/product/product.contracts.ts",
60
+ "./product/product.enum": "./src/product/product.enum.ts",
61
+ "./product/product.event": "./src/product/product.event.ts",
62
+ "./product/product.schema": "./src/product/product.schema.ts",
63
+ "./review": "./src/review/index.ts",
64
+ "./review/review.contracts": "./src/review/review.contracts.ts",
65
+ "./review/review.enum": "./src/review/review.enum.ts",
66
+ "./review/review.event": "./src/review/review.event.ts",
67
+ "./review/review.schema": "./src/review/review.schema.ts",
68
+ "./store": "./src/store/index.ts",
69
+ "./store/store.contracts": "./src/store/store.contracts.ts",
70
+ "./store/store.enum": "./src/store/store.enum.ts",
71
+ "./store/store.event": "./src/store/store.event.ts",
72
+ "./store/store.schema": "./src/store/store.schema.ts",
52
73
  "./*": "./*"
53
74
  },
54
75
  "module": "./dist/index.js",
@@ -60,7 +81,6 @@
60
81
  "access": "public",
61
82
  "exports": {
62
83
  ".": "./dist/index.js",
63
- "./contracts": "./dist/contracts/index.js",
64
84
  "./docs": "./dist/docs/index.js",
65
85
  "./docs/marketplace.docblock": "./dist/docs/marketplace.docblock.js",
66
86
  "./entities": "./dist/entities/index.js",
@@ -69,11 +89,33 @@
69
89
  "./entities/product": "./dist/entities/product.js",
70
90
  "./entities/review": "./dist/entities/review.js",
71
91
  "./entities/store": "./dist/entities/store.js",
72
- "./events": "./dist/events.js",
73
92
  "./example": "./dist/example.js",
74
93
  "./feature": "./dist/feature.js",
75
- "./handlers": "./dist/handlers/index.js",
76
- "./presentations": "./dist/presentations/index.js",
94
+ "./order": "./dist/order/index.js",
95
+ "./order/order.contracts": "./dist/order/order.contracts.js",
96
+ "./order/order.enum": "./dist/order/order.enum.js",
97
+ "./order/order.event": "./dist/order/order.event.js",
98
+ "./order/order.schema": "./dist/order/order.schema.js",
99
+ "./payout": "./dist/payout/index.js",
100
+ "./payout/payout.contracts": "./dist/payout/payout.contracts.js",
101
+ "./payout/payout.enum": "./dist/payout/payout.enum.js",
102
+ "./payout/payout.event": "./dist/payout/payout.event.js",
103
+ "./payout/payout.schema": "./dist/payout/payout.schema.js",
104
+ "./product": "./dist/product/index.js",
105
+ "./product/product.contracts": "./dist/product/product.contracts.js",
106
+ "./product/product.enum": "./dist/product/product.enum.js",
107
+ "./product/product.event": "./dist/product/product.event.js",
108
+ "./product/product.schema": "./dist/product/product.schema.js",
109
+ "./review": "./dist/review/index.js",
110
+ "./review/review.contracts": "./dist/review/review.contracts.js",
111
+ "./review/review.enum": "./dist/review/review.enum.js",
112
+ "./review/review.event": "./dist/review/review.event.js",
113
+ "./review/review.schema": "./dist/review/review.schema.js",
114
+ "./store": "./dist/store/index.js",
115
+ "./store/store.contracts": "./dist/store/store.contracts.js",
116
+ "./store/store.enum": "./dist/store/store.enum.js",
117
+ "./store/store.event": "./dist/store/store.event.js",
118
+ "./store/store.schema": "./dist/store/store.schema.js",
77
119
  "./*": "./*"
78
120
  }
79
121
  }
@@ -1 +0,0 @@
1
- import{ScalarTypeEnum as e,defineEnum as t,defineSchemaModel as n}from"@lssm/lib.schema";import{defineCommand as r,defineQuery as i}from"@lssm/lib.contracts/spec";const a=[`example.marketplace`],o=t(`StoreStatus`,[`PENDING`,`ACTIVE`,`SUSPENDED`,`CLOSED`]),s=t(`ProductStatus`,[`DRAFT`,`PENDING_REVIEW`,`ACTIVE`,`OUT_OF_STOCK`,`DISCONTINUED`,`REJECTED`]),c=t(`OrderStatus`,[`PENDING`,`PAID`,`PROCESSING`,`SHIPPED`,`DELIVERED`,`COMPLETED`,`CANCELLED`,`REFUNDED`,`PARTIALLY_REFUNDED`,`DISPUTED`]),l=t(`PayoutStatus`,[`PENDING`,`PROCESSING`,`PAID`,`FAILED`,`CANCELLED`]),u=t(`ReviewStatus`,[`PENDING`,`APPROVED`,`REJECTED`,`FLAGGED`]),d=n({name:`StoreModel`,description:`A seller store`,fields:{id:{type:e.String_unsecure(),isOptional:!1},name:{type:e.String_unsecure(),isOptional:!1},slug:{type:e.String_unsecure(),isOptional:!1},description:{type:e.String_unsecure(),isOptional:!0},status:{type:o,isOptional:!1},ownerId:{type:e.String_unsecure(),isOptional:!1},logoFileId:{type:e.String_unsecure(),isOptional:!0},isVerified:{type:e.Boolean(),isOptional:!1},totalProducts:{type:e.Int_unsecure(),isOptional:!1},averageRating:{type:e.Float_unsecure(),isOptional:!1},createdAt:{type:e.DateTime(),isOptional:!1}}}),f=n({name:`CreateStoreInput`,fields:{name:{type:e.NonEmptyString(),isOptional:!1},slug:{type:e.NonEmptyString(),isOptional:!1},description:{type:e.String_unsecure(),isOptional:!0},email:{type:e.EmailAddress(),isOptional:!0},country:{type:e.String_unsecure(),isOptional:!0},currency:{type:e.String_unsecure(),isOptional:!0}}}),p=n({name:`ProductModel`,description:`A product listing`,fields:{id:{type:e.String_unsecure(),isOptional:!1},storeId:{type:e.String_unsecure(),isOptional:!1},name:{type:e.String_unsecure(),isOptional:!1},slug:{type:e.String_unsecure(),isOptional:!1},description:{type:e.String_unsecure(),isOptional:!0},status:{type:s,isOptional:!1},price:{type:e.Float_unsecure(),isOptional:!1},currency:{type:e.String_unsecure(),isOptional:!1},quantity:{type:e.Int_unsecure(),isOptional:!1},categoryId:{type:e.String_unsecure(),isOptional:!0},primaryImageId:{type:e.String_unsecure(),isOptional:!0},averageRating:{type:e.Float_unsecure(),isOptional:!1},totalSold:{type:e.Int_unsecure(),isOptional:!1},createdAt:{type:e.DateTime(),isOptional:!1}}}),m=n({name:`CreateProductInput`,fields:{storeId:{type:e.String_unsecure(),isOptional:!1},name:{type:e.NonEmptyString(),isOptional:!1},slug:{type:e.NonEmptyString(),isOptional:!1},description:{type:e.String_unsecure(),isOptional:!0},price:{type:e.Float_unsecure(),isOptional:!1},currency:{type:e.String_unsecure(),isOptional:!0},quantity:{type:e.Int_unsecure(),isOptional:!0},categoryId:{type:e.String_unsecure(),isOptional:!0},sku:{type:e.String_unsecure(),isOptional:!0}}}),h=n({name:`ListProductsInput`,fields:{storeId:{type:e.String_unsecure(),isOptional:!0},categoryId:{type:e.String_unsecure(),isOptional:!0},status:{type:s,isOptional:!0},search:{type:e.String_unsecure(),isOptional:!0},minPrice:{type:e.Float_unsecure(),isOptional:!0},maxPrice:{type:e.Float_unsecure(),isOptional:!0},limit:{type:e.Int_unsecure(),isOptional:!0,defaultValue:20},offset:{type:e.Int_unsecure(),isOptional:!0,defaultValue:0}}}),g=n({name:`ListProductsOutput`,fields:{products:{type:p,isArray:!0,isOptional:!1},total:{type:e.Int_unsecure(),isOptional:!1}}}),_=n({name:`OrderItemModel`,fields:{id:{type:e.String_unsecure(),isOptional:!1},productId:{type:e.String_unsecure(),isOptional:!1},productName:{type:e.String_unsecure(),isOptional:!1},unitPrice:{type:e.Float_unsecure(),isOptional:!1},quantity:{type:e.Int_unsecure(),isOptional:!1},subtotal:{type:e.Float_unsecure(),isOptional:!1}}}),v=n({name:`OrderModel`,description:`An order`,fields:{id:{type:e.String_unsecure(),isOptional:!1},orderNumber:{type:e.String_unsecure(),isOptional:!1},buyerId:{type:e.String_unsecure(),isOptional:!1},storeId:{type:e.String_unsecure(),isOptional:!1},status:{type:c,isOptional:!1},subtotal:{type:e.Float_unsecure(),isOptional:!1},shippingTotal:{type:e.Float_unsecure(),isOptional:!1},taxTotal:{type:e.Float_unsecure(),isOptional:!1},total:{type:e.Float_unsecure(),isOptional:!1},currency:{type:e.String_unsecure(),isOptional:!1},items:{type:_,isArray:!0,isOptional:!0},createdAt:{type:e.DateTime(),isOptional:!1}}}),y=n({name:`CreateOrderInput`,fields:{storeId:{type:e.String_unsecure(),isOptional:!1},items:{type:e.JSON(),isOptional:!1,description:`Array of {productId, variantId?, quantity}`},shippingAddress:{type:e.JSON(),isOptional:!0},billingAddress:{type:e.JSON(),isOptional:!0},buyerNote:{type:e.String_unsecure(),isOptional:!0}}}),b=n({name:`UpdateOrderStatusInput`,fields:{orderId:{type:e.String_unsecure(),isOptional:!1},status:{type:c,isOptional:!1},trackingNumber:{type:e.String_unsecure(),isOptional:!0},trackingUrl:{type:e.String_unsecure(),isOptional:!0},note:{type:e.String_unsecure(),isOptional:!0}}}),x=n({name:`PayoutModel`,description:`A payout to seller`,fields:{id:{type:e.String_unsecure(),isOptional:!1},payoutNumber:{type:e.String_unsecure(),isOptional:!1},storeId:{type:e.String_unsecure(),isOptional:!1},status:{type:l,isOptional:!1},grossAmount:{type:e.Float_unsecure(),isOptional:!1},platformFees:{type:e.Float_unsecure(),isOptional:!1},netAmount:{type:e.Float_unsecure(),isOptional:!1},currency:{type:e.String_unsecure(),isOptional:!1},periodStart:{type:e.DateTime(),isOptional:!1},periodEnd:{type:e.DateTime(),isOptional:!1},orderCount:{type:e.Int_unsecure(),isOptional:!1},createdAt:{type:e.DateTime(),isOptional:!1},paidAt:{type:e.DateTime(),isOptional:!0}}}),S=n({name:`ListPayoutsInput`,fields:{storeId:{type:e.String_unsecure(),isOptional:!1},status:{type:l,isOptional:!0},limit:{type:e.Int_unsecure(),isOptional:!0,defaultValue:20},offset:{type:e.Int_unsecure(),isOptional:!0,defaultValue:0}}}),C=n({name:`ListPayoutsOutput`,fields:{payouts:{type:x,isArray:!0,isOptional:!1},total:{type:e.Int_unsecure(),isOptional:!1},totalPending:{type:e.Float_unsecure(),isOptional:!1}}}),w=n({name:`ReviewModel`,description:`A customer review`,fields:{id:{type:e.String_unsecure(),isOptional:!1},productId:{type:e.String_unsecure(),isOptional:!0},storeId:{type:e.String_unsecure(),isOptional:!0},authorId:{type:e.String_unsecure(),isOptional:!1},rating:{type:e.Int_unsecure(),isOptional:!1},title:{type:e.String_unsecure(),isOptional:!0},content:{type:e.String_unsecure(),isOptional:!0},status:{type:u,isOptional:!1},isVerifiedPurchase:{type:e.Boolean(),isOptional:!1},helpfulCount:{type:e.Int_unsecure(),isOptional:!1},hasResponse:{type:e.Boolean(),isOptional:!1},createdAt:{type:e.DateTime(),isOptional:!1}}}),T=n({name:`CreateReviewInput`,fields:{productId:{type:e.String_unsecure(),isOptional:!0},storeId:{type:e.String_unsecure(),isOptional:!0},orderId:{type:e.String_unsecure(),isOptional:!0},rating:{type:e.Int_unsecure(),isOptional:!1},title:{type:e.String_unsecure(),isOptional:!0},content:{type:e.String_unsecure(),isOptional:!0}}}),E=n({name:`ListReviewsInput`,fields:{productId:{type:e.String_unsecure(),isOptional:!0},storeId:{type:e.String_unsecure(),isOptional:!0},status:{type:u,isOptional:!0},minRating:{type:e.Int_unsecure(),isOptional:!0},limit:{type:e.Int_unsecure(),isOptional:!0,defaultValue:20},offset:{type:e.Int_unsecure(),isOptional:!0,defaultValue:0}}}),D=n({name:`ListReviewsOutput`,fields:{reviews:{type:w,isArray:!0,isOptional:!1},total:{type:e.Int_unsecure(),isOptional:!1},averageRating:{type:e.Float_unsecure(),isOptional:!1},ratingDistribution:{type:e.JSON(),isOptional:!1}}}),O=r({meta:{name:`marketplace.store.create`,version:1,stability:`stable`,owners:[...a],tags:[`marketplace`,`store`,`create`],description:`Create a new seller store.`,goal:`Allow users to become sellers on the marketplace.`,context:`Seller onboarding.`},io:{input:f,output:d},policy:{auth:`user`},sideEffects:{emits:[{name:`marketplace.store.created`,version:1,when:`Store is created`,payload:d}],audit:[`marketplace.store.created`]}}),k=r({meta:{name:`marketplace.product.create`,version:1,stability:`stable`,owners:[...a],tags:[`marketplace`,`product`,`create`],description:`Create a new product listing.`,goal:`Allow sellers to list products.`,context:`Product management.`},io:{input:m,output:p},policy:{auth:`user`},sideEffects:{emits:[{name:`marketplace.product.created`,version:1,when:`Product is created`,payload:p}],audit:[`marketplace.product.created`]}}),A=i({meta:{name:`marketplace.product.list`,version:1,stability:`stable`,owners:[...a],tags:[`marketplace`,`product`,`list`],description:`List products with filters.`,goal:`Browse products on the marketplace.`,context:`Product catalog, search.`},io:{input:h,output:g},policy:{auth:`anonymous`}}),j=r({meta:{name:`marketplace.order.create`,version:1,stability:`stable`,owners:[...a],tags:[`marketplace`,`order`,`create`],description:`Create a new order.`,goal:`Allow buyers to purchase products.`,context:`Checkout flow.`},io:{input:y,output:v},policy:{auth:`user`},sideEffects:{emits:[{name:`marketplace.order.created`,version:1,when:`Order is created`,payload:v}],audit:[`marketplace.order.created`]}}),M=r({meta:{name:`marketplace.order.updateStatus`,version:1,stability:`stable`,owners:[...a],tags:[`marketplace`,`order`,`status`],description:`Update order status.`,goal:`Track order fulfillment.`,context:`Order management.`},io:{input:b,output:v},policy:{auth:`user`},sideEffects:{emits:[{name:`marketplace.order.statusUpdated`,version:1,when:`Status changes`,payload:v}],audit:[`marketplace.order.statusUpdated`]}}),N=i({meta:{name:`marketplace.payout.list`,version:1,stability:`stable`,owners:[...a],tags:[`marketplace`,`payout`,`list`],description:`List payouts for a store.`,goal:`View payout history.`,context:`Seller dashboard.`},io:{input:S,output:C},policy:{auth:`user`}}),P=r({meta:{name:`marketplace.review.create`,version:1,stability:`stable`,owners:[...a],tags:[`marketplace`,`review`,`create`],description:`Create a product/store review.`,goal:`Allow buyers to leave feedback.`,context:`Post-purchase.`},io:{input:T,output:w},policy:{auth:`user`},sideEffects:{emits:[{name:`marketplace.review.created`,version:1,when:`Review is created`,payload:w}],audit:[`marketplace.review.created`]}}),F=i({meta:{name:`marketplace.review.list`,version:1,stability:`stable`,owners:[...a],tags:[`marketplace`,`review`,`list`],description:`List reviews with filters.`,goal:`Display product/store reviews.`,context:`Product page, store page.`},io:{input:E,output:D},policy:{auth:`anonymous`}});export{j as CreateOrderContract,y as CreateOrderInputModel,k as CreateProductContract,m as CreateProductInputModel,P as CreateReviewContract,T as CreateReviewInputModel,O as CreateStoreContract,f as CreateStoreInputModel,N as ListPayoutsContract,S as ListPayoutsInputModel,C as ListPayoutsOutputModel,A as ListProductsContract,h as ListProductsInputModel,g as ListProductsOutputModel,F as ListReviewsContract,E as ListReviewsInputModel,D as ListReviewsOutputModel,_ as OrderItemModel,v as OrderModel,x as PayoutModel,p as ProductModel,w as ReviewModel,d as StoreModel,M as UpdateOrderStatusContract,b as UpdateOrderStatusInputModel};
package/dist/events.js DELETED
@@ -1 +0,0 @@
1
- import{ScalarTypeEnum as e,defineSchemaModel as t}from"@lssm/lib.schema";import{defineEvent as n}from"@lssm/lib.contracts";const r=t({name:`StoreCreatedEventPayload`,fields:{storeId:{type:e.String_unsecure(),isOptional:!1},name:{type:e.String_unsecure(),isOptional:!1},slug:{type:e.String_unsecure(),isOptional:!1},ownerId:{type:e.String_unsecure(),isOptional:!1},timestamp:{type:e.DateTime(),isOptional:!1}}}),i=t({name:`StoreStatusChangedEventPayload`,fields:{storeId:{type:e.String_unsecure(),isOptional:!1},previousStatus:{type:e.String_unsecure(),isOptional:!1},newStatus:{type:e.String_unsecure(),isOptional:!1},reason:{type:e.String_unsecure(),isOptional:!0},timestamp:{type:e.DateTime(),isOptional:!1}}}),a=t({name:`ProductCreatedEventPayload`,fields:{productId:{type:e.String_unsecure(),isOptional:!1},storeId:{type:e.String_unsecure(),isOptional:!1},name:{type:e.String_unsecure(),isOptional:!1},price:{type:e.Float_unsecure(),isOptional:!1},currency:{type:e.String_unsecure(),isOptional:!1},timestamp:{type:e.DateTime(),isOptional:!1}}}),o=t({name:`ProductPublishedEventPayload`,fields:{productId:{type:e.String_unsecure(),isOptional:!1},storeId:{type:e.String_unsecure(),isOptional:!1},timestamp:{type:e.DateTime(),isOptional:!1}}}),s=t({name:`InventoryUpdatedEventPayload`,fields:{productId:{type:e.String_unsecure(),isOptional:!1},variantId:{type:e.String_unsecure(),isOptional:!0},previousQuantity:{type:e.Int_unsecure(),isOptional:!1},newQuantity:{type:e.Int_unsecure(),isOptional:!1},reason:{type:e.String_unsecure(),isOptional:!1},timestamp:{type:e.DateTime(),isOptional:!1}}}),c=t({name:`OrderCreatedEventPayload`,fields:{orderId:{type:e.String_unsecure(),isOptional:!1},orderNumber:{type:e.String_unsecure(),isOptional:!1},buyerId:{type:e.String_unsecure(),isOptional:!1},storeId:{type:e.String_unsecure(),isOptional:!1},total:{type:e.Float_unsecure(),isOptional:!1},currency:{type:e.String_unsecure(),isOptional:!1},itemCount:{type:e.Int_unsecure(),isOptional:!1},timestamp:{type:e.DateTime(),isOptional:!1}}}),l=t({name:`OrderPaidEventPayload`,fields:{orderId:{type:e.String_unsecure(),isOptional:!1},orderNumber:{type:e.String_unsecure(),isOptional:!1},total:{type:e.Float_unsecure(),isOptional:!1},paymentMethod:{type:e.String_unsecure(),isOptional:!1},timestamp:{type:e.DateTime(),isOptional:!1}}}),u=t({name:`OrderStatusUpdatedEventPayload`,fields:{orderId:{type:e.String_unsecure(),isOptional:!1},orderNumber:{type:e.String_unsecure(),isOptional:!1},previousStatus:{type:e.String_unsecure(),isOptional:!1},newStatus:{type:e.String_unsecure(),isOptional:!1},updatedBy:{type:e.String_unsecure(),isOptional:!1},timestamp:{type:e.DateTime(),isOptional:!1}}}),d=t({name:`OrderShippedEventPayload`,fields:{orderId:{type:e.String_unsecure(),isOptional:!1},orderNumber:{type:e.String_unsecure(),isOptional:!1},trackingNumber:{type:e.String_unsecure(),isOptional:!0},trackingUrl:{type:e.String_unsecure(),isOptional:!0},carrier:{type:e.String_unsecure(),isOptional:!0},timestamp:{type:e.DateTime(),isOptional:!1}}}),f=t({name:`OrderCompletedEventPayload`,fields:{orderId:{type:e.String_unsecure(),isOptional:!1},orderNumber:{type:e.String_unsecure(),isOptional:!1},buyerId:{type:e.String_unsecure(),isOptional:!1},storeId:{type:e.String_unsecure(),isOptional:!1},total:{type:e.Float_unsecure(),isOptional:!1},sellerPayout:{type:e.Float_unsecure(),isOptional:!1},timestamp:{type:e.DateTime(),isOptional:!1}}}),p=t({name:`PayoutCreatedEventPayload`,fields:{payoutId:{type:e.String_unsecure(),isOptional:!1},payoutNumber:{type:e.String_unsecure(),isOptional:!1},storeId:{type:e.String_unsecure(),isOptional:!1},netAmount:{type:e.Float_unsecure(),isOptional:!1},currency:{type:e.String_unsecure(),isOptional:!1},orderCount:{type:e.Int_unsecure(),isOptional:!1},timestamp:{type:e.DateTime(),isOptional:!1}}}),m=t({name:`PayoutPaidEventPayload`,fields:{payoutId:{type:e.String_unsecure(),isOptional:!1},payoutNumber:{type:e.String_unsecure(),isOptional:!1},storeId:{type:e.String_unsecure(),isOptional:!1},netAmount:{type:e.Float_unsecure(),isOptional:!1},paymentReference:{type:e.String_unsecure(),isOptional:!0},timestamp:{type:e.DateTime(),isOptional:!1}}}),h=t({name:`ReviewCreatedEventPayload`,fields:{reviewId:{type:e.String_unsecure(),isOptional:!1},productId:{type:e.String_unsecure(),isOptional:!0},storeId:{type:e.String_unsecure(),isOptional:!0},authorId:{type:e.String_unsecure(),isOptional:!1},rating:{type:e.Int_unsecure(),isOptional:!1},isVerifiedPurchase:{type:e.Boolean(),isOptional:!1},timestamp:{type:e.DateTime(),isOptional:!1}}}),g=t({name:`ReviewRespondedEventPayload`,fields:{reviewId:{type:e.String_unsecure(),isOptional:!1},responseId:{type:e.String_unsecure(),isOptional:!1},authorId:{type:e.String_unsecure(),isOptional:!1},timestamp:{type:e.DateTime(),isOptional:!1}}}),_=n({name:`marketplace.store.created`,version:1,description:`A new seller store has been created.`,payload:r}),v=n({name:`marketplace.store.statusChanged`,version:1,description:`A store status has changed.`,payload:i}),y=n({name:`marketplace.product.created`,version:1,description:`A new product has been created.`,payload:a}),b=n({name:`marketplace.product.published`,version:1,description:`A product has been published.`,payload:o}),x=n({name:`marketplace.inventory.updated`,version:1,description:`Product inventory has been updated.`,payload:s}),S=n({name:`marketplace.order.created`,version:1,description:`A new order has been created.`,payload:c}),C=n({name:`marketplace.order.paid`,version:1,description:`An order has been paid.`,payload:l}),w=n({name:`marketplace.order.statusUpdated`,version:1,description:`An order status has been updated.`,payload:u}),T=n({name:`marketplace.order.shipped`,version:1,description:`An order has been shipped.`,payload:d}),E=n({name:`marketplace.order.completed`,version:1,description:`An order has been completed.`,payload:f}),D=n({name:`marketplace.payout.created`,version:1,description:`A payout has been created.`,payload:p}),O=n({name:`marketplace.payout.paid`,version:1,description:`A payout has been sent.`,payload:m}),k=n({name:`marketplace.review.created`,version:1,description:`A review has been created.`,payload:h}),A=n({name:`marketplace.review.responded`,version:1,description:`A seller has responded to a review.`,payload:g}),j={StoreCreatedEvent:_,StoreStatusChangedEvent:v,ProductCreatedEvent:y,ProductPublishedEvent:b,InventoryUpdatedEvent:x,OrderCreatedEvent:S,OrderPaidEvent:C,OrderStatusUpdatedEvent:w,OrderShippedEvent:T,OrderCompletedEvent:E,PayoutCreatedEvent:D,PayoutPaidEvent:O,ReviewCreatedEvent:k,ReviewRespondedEvent:A};export{x as InventoryUpdatedEvent,j as MarketplaceEvents,E as OrderCompletedEvent,S as OrderCreatedEvent,C as OrderPaidEvent,T as OrderShippedEvent,w as OrderStatusUpdatedEvent,D as PayoutCreatedEvent,O as PayoutPaidEvent,y as ProductCreatedEvent,b as ProductPublishedEvent,k as ReviewCreatedEvent,A as ReviewRespondedEvent,_ as StoreCreatedEvent,v as StoreStatusChangedEvent};
@@ -1 +0,0 @@
1
- const e={stores:new Map,products:new Map,orders:new Map,payouts:new Map,reviews:new Map};let t=1e3;function n(){t++;let e=new Date;return`ORD-${e.getFullYear().toString().slice(-2)}${(e.getMonth()+1).toString().padStart(2,`0`)}-${t}`}let r=100;function i(){r++;let e=new Date;return`PAY-${e.getFullYear().toString().slice(-2)}${(e.getMonth()+1).toString().padStart(2,`0`)}-${r}`}function a(e,t=.1){let n=Math.round(e*t*100)/100;return{subtotal:e,platformFee:n,sellerPayout:Math.round((e-n)*100)/100}}function o(e){if(e.length===0)return{averageRating:0,totalReviews:0,distribution:{1:0,2:0,3:0,4:0,5:0}};let t={1:0,2:0,3:0,4:0,5:0},n=0;for(let r of e)n+=r,t[r]=(t[r]??0)+1;return{averageRating:Math.round(n/e.length*10)/10,totalReviews:e.length,distribution:t}}async function s(t,n){let r=`store_${Date.now()}`,i=new Date,a={id:r,name:t.name,slug:t.slug,description:t.description,status:`PENDING`,ownerId:n.userId,email:t.email,country:t.country,currency:t.currency??`USD`,commissionRate:.1,isVerified:!1,totalProducts:0,totalOrders:0,totalRevenue:0,averageRating:0,createdAt:i,updatedAt:i};return e.stores.set(r,a),{id:r,name:t.name,slug:t.slug,status:`PENDING`,ownerId:n.userId,createdAt:i}}async function c(t,n){let r=`prod_${Date.now()}`,i=new Date,a={id:r,storeId:t.storeId,name:t.name,slug:t.slug,description:t.description,status:`DRAFT`,price:t.price,currency:t.currency??`USD`,quantity:t.quantity??0,categoryId:t.categoryId,sku:t.sku,trackInventory:!0,reviewCount:0,averageRating:0,totalSold:0,createdAt:i,updatedAt:i};e.products.set(r,a);let o=e.stores.get(t.storeId);return o&&o.totalProducts++,{id:r,storeId:t.storeId,name:t.name,slug:t.slug,price:t.price,status:`DRAFT`,createdAt:i}}async function l(t,r){let i=`order_${Date.now()}`,o=n(),s=new Date,c=0,l=[];for(let n of t.items){let t=e.products.get(n.productId);if(t){let e=t.price,r=e*n.quantity;c+=r,l.push({id:`item_${Date.now()}_${Math.random()}`,productId:n.productId,variantId:n.variantId,productName:t.name,unitPrice:e,quantity:n.quantity,subtotal:r})}}let u=a(c),d={id:i,orderNumber:o,buyerId:r.userId,storeId:t.storeId,status:`PENDING`,paymentStatus:`PENDING`,subtotal:c,shippingTotal:0,taxTotal:0,discountTotal:0,total:c,currency:`USD`,platformFee:u.platformFee,sellerPayout:u.sellerPayout,items:l,shippingAddress:t.shippingAddress,billingAddress:t.billingAddress,buyerNote:t.buyerNote,createdAt:s,updatedAt:s};return e.orders.set(i,d),{id:i,orderNumber:o,storeId:t.storeId,buyerId:r.userId,status:`PENDING`,total:c,createdAt:s}}async function u(t,n){let r=`review_${Date.now()}`,i=new Date,a=!1;if(t.orderId){let r=e.orders.get(t.orderId);r&&(a=r.buyerId===n.userId)}let o={id:r,type:t.productId?`PRODUCT`:`STORE`,productId:t.productId,storeId:t.storeId,orderId:t.orderId,authorId:n.userId,customerId:n.userId,rating:t.rating,title:t.title,content:t.content,status:`PENDING`,isVerifiedPurchase:a,isPublic:!0,helpfulCount:0,createdAt:i,updatedAt:i};return e.reviews.set(r,o),{id:r,productId:t.productId,storeId:t.storeId,rating:t.rating,status:`PENDING`,createdAt:i}}export{a as calculateCommission,o as calculateRatingStats,n as generateOrderNumber,i as generatePayoutNumber,l as handleCreateOrder,c as handleCreateProduct,u as handleCreateReview,s as handleCreateStore,e as mockMarketplaceStore};
@@ -1 +0,0 @@
1
- import{OrderModel as e,PayoutModel as t,ProductModel as n,ReviewModel as r,StoreModel as i}from"../contracts/index.js";const a={meta:{name:`marketplace.store.profile`,version:1,description:`Store profile page with products and reviews`,domain:`marketplace`,owners:[`marketplace-team`],tags:[`marketplace`,`store`,`profile`]},source:{type:`component`,framework:`react`,componentKey:`StoreProfile`,props:i},targets:[`react`,`markdown`],policy:{flags:[`marketplace.enabled`]}},o={meta:{name:`marketplace.seller.dashboard`,version:1,description:`Seller dashboard with orders, products, and payouts`,domain:`marketplace`,owners:[`marketplace-team`],tags:[`marketplace`,`seller`,`dashboard`]},source:{type:`component`,framework:`react`,componentKey:`SellerDashboard`},targets:[`react`],policy:{flags:[`marketplace.seller.enabled`]}},s={meta:{name:`marketplace.product.catalog`,version:1,description:`Product catalog with filtering and search`,domain:`marketplace`,owners:[`marketplace-team`],tags:[`marketplace`,`product`,`catalog`]},source:{type:`component`,framework:`react`,componentKey:`ProductCatalog`,props:n},targets:[`react`,`markdown`],policy:{flags:[`marketplace.enabled`]}},c={meta:{name:`marketplace.product.detail`,version:1,description:`Product detail page with variants and reviews`,domain:`marketplace`,owners:[`marketplace-team`],tags:[`marketplace`,`product`,`detail`]},source:{type:`component`,framework:`react`,componentKey:`ProductDetail`,props:n},targets:[`react`,`markdown`],policy:{flags:[`marketplace.enabled`]}},l={meta:{name:`marketplace.product.editor`,version:1,description:`Product creation and editing form`,domain:`marketplace`,owners:[`marketplace-team`],tags:[`marketplace`,`product`,`editor`]},source:{type:`component`,framework:`react`,componentKey:`ProductEditor`},targets:[`react`],policy:{flags:[`marketplace.seller.enabled`]}},u={meta:{name:`marketplace.order.list`,version:1,description:`Order list with status and filtering`,domain:`marketplace`,owners:[`marketplace-team`],tags:[`marketplace`,`order`,`list`]},source:{type:`component`,framework:`react`,componentKey:`OrderList`,props:e},targets:[`react`,`markdown`],policy:{flags:[`marketplace.enabled`]}},d={meta:{name:`marketplace.order.detail`,version:1,description:`Order detail with items, timeline, and actions`,domain:`marketplace`,owners:[`marketplace-team`],tags:[`marketplace`,`order`,`detail`]},source:{type:`component`,framework:`react`,componentKey:`OrderDetail`,props:e},targets:[`react`,`markdown`],policy:{flags:[`marketplace.enabled`]}},f={meta:{name:`marketplace.checkout`,version:1,description:`Checkout flow with cart and payment`,domain:`marketplace`,owners:[`marketplace-team`],tags:[`marketplace`,`checkout`]},source:{type:`component`,framework:`react`,componentKey:`Checkout`},targets:[`react`],policy:{flags:[`marketplace.enabled`]}},p={meta:{name:`marketplace.payout.list`,version:1,description:`Payout history with status and details`,domain:`marketplace`,owners:[`marketplace-team`],tags:[`marketplace`,`payout`,`list`]},source:{type:`component`,framework:`react`,componentKey:`PayoutList`,props:t},targets:[`react`,`markdown`],policy:{flags:[`marketplace.seller.enabled`]}},m={meta:{name:`marketplace.payout.detail`,version:1,description:`Payout detail with included orders`,domain:`marketplace`,owners:[`marketplace-team`],tags:[`marketplace`,`payout`,`detail`]},source:{type:`component`,framework:`react`,componentKey:`PayoutDetail`,props:t},targets:[`react`,`markdown`],policy:{flags:[`marketplace.seller.enabled`]}},h={meta:{name:`marketplace.review.list`,version:1,description:`Review list with rating distribution`,domain:`marketplace`,owners:[`marketplace-team`],tags:[`marketplace`,`review`,`list`]},source:{type:`component`,framework:`react`,componentKey:`ReviewList`,props:r},targets:[`react`,`markdown`],policy:{flags:[`marketplace.reviews.enabled`]}},g={meta:{name:`marketplace.review.form`,version:1,description:`Review submission form`,domain:`marketplace`,owners:[`marketplace-team`],tags:[`marketplace`,`review`,`form`]},source:{type:`component`,framework:`react`,componentKey:`ReviewForm`},targets:[`react`],policy:{flags:[`marketplace.reviews.enabled`]}},_={StoreProfilePresentation:a,SellerDashboardPresentation:o,ProductCatalogPresentation:s,ProductDetailPresentation:c,ProductEditorPresentation:l,OrderListPresentation:u,OrderDetailPresentation:d,CheckoutPresentation:f,PayoutListPresentation:p,PayoutDetailPresentation:m,ReviewListPresentation:h,ReviewFormPresentation:g};export{f as CheckoutPresentation,_ as MarketplacePresentations,d as OrderDetailPresentation,u as OrderListPresentation,m as PayoutDetailPresentation,p as PayoutListPresentation,s as ProductCatalogPresentation,c as ProductDetailPresentation,l as ProductEditorPresentation,g as ReviewFormPresentation,h as ReviewListPresentation,o as SellerDashboardPresentation,a as StoreProfilePresentation};