@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/dist/index.js CHANGED
@@ -1 +1 @@
1
- import{InventoryUpdatedEvent as e,MarketplaceEvents as t,OrderCompletedEvent as n,OrderCreatedEvent as r,OrderPaidEvent as i,OrderShippedEvent as a,OrderStatusUpdatedEvent as o,PayoutCreatedEvent as s,PayoutPaidEvent as c,ProductCreatedEvent as l,ProductPublishedEvent as u,ReviewCreatedEvent as d,ReviewRespondedEvent as f,StoreCreatedEvent as p,StoreStatusChangedEvent as m}from"./events.js";import h from"./example.js";import{MarketplaceFeature as g}from"./feature.js";import{StoreCategoryEntity as _,StoreEntity as v,StoreStatusEnum as y,StoreTypeEnum as b}from"./entities/store.js";import{CategoryEntity as x,ProductEntity as S,ProductStatusEnum as C,ProductTypeEnum as w,ProductVariantEntity as T}from"./entities/product.js";import{OrderEntity as E,OrderItemEntity as D,OrderStatusEnum as O,PaymentStatusEnum as k,RefundEntity as A,RefundItemEntity as j}from"./entities/order.js";import{BankAccountEntity as M,PayoutEntity as N,PayoutItemEntity as P,PayoutScheduleEnum as F,PayoutSettingsEntity as I,PayoutStatusEnum as L}from"./entities/payout.js";import{ReviewEntity as R,ReviewReportEntity as z,ReviewResponseEntity as B,ReviewStatusEnum as V,ReviewTypeEnum as H,ReviewVoteEntity as U}from"./entities/review.js";import{marketplaceEntities as W,marketplaceSchemaContribution as G}from"./entities/index.js";import{CreateOrderContract as K,CreateOrderInputModel as q,CreateProductContract as J,CreateProductInputModel as Y,CreateReviewContract as X,CreateReviewInputModel as Z,CreateStoreContract as Q,CreateStoreInputModel as $,ListPayoutsContract as ee,ListPayoutsInputModel as te,ListPayoutsOutputModel as ne,ListProductsContract as re,ListProductsInputModel as ie,ListProductsOutputModel as ae,ListReviewsContract as oe,ListReviewsInputModel as se,ListReviewsOutputModel as ce,OrderItemModel as le,OrderModel as ue,PayoutModel as de,ProductModel as fe,ReviewModel as pe,StoreModel as me,UpdateOrderStatusContract as he,UpdateOrderStatusInputModel as ge}from"./contracts/index.js";import{calculateCommission as _e,calculateRatingStats as ve,generateOrderNumber as ye,generatePayoutNumber as be,handleCreateOrder as xe,handleCreateProduct as Se,handleCreateReview as Ce,handleCreateStore as we,mockMarketplaceStore as Te}from"./handlers/index.js";import{CheckoutPresentation as Ee,MarketplacePresentations as De,OrderDetailPresentation as Oe,OrderListPresentation as ke,PayoutDetailPresentation as Ae,PayoutListPresentation as je,ProductCatalogPresentation as Me,ProductDetailPresentation as Ne,ProductEditorPresentation as Pe,ReviewFormPresentation as Fe,ReviewListPresentation as Ie,SellerDashboardPresentation as Le,StoreProfilePresentation as Re}from"./presentations/index.js";import"./docs/index.js";import{identityRbacSchemaContribution as ze}from"@lssm/lib.identity-rbac";import{auditTrailSchemaContribution as Be}from"@lssm/module.audit-trail";import{notificationsSchemaContribution as Ve}from"@lssm/module.notifications";import{filesSchemaContribution as He}from"@lssm/lib.files";import{meteringSchemaContribution as Ue}from"@lssm/lib.metering";const We={modules:[ze,Be,Ve,He,Ue,G],provider:`postgresql`,outputPath:`./prisma/schema/generated.prisma`};export{M as BankAccountEntity,x as CategoryEntity,Ee as CheckoutPresentation,K as CreateOrderContract,q as CreateOrderInputModel,J as CreateProductContract,Y as CreateProductInputModel,X as CreateReviewContract,Z as CreateReviewInputModel,Q as CreateStoreContract,$ as CreateStoreInputModel,e as InventoryUpdatedEvent,ee as ListPayoutsContract,te as ListPayoutsInputModel,ne as ListPayoutsOutputModel,re as ListProductsContract,ie as ListProductsInputModel,ae as ListProductsOutputModel,oe as ListReviewsContract,se as ListReviewsInputModel,ce as ListReviewsOutputModel,t as MarketplaceEvents,g as MarketplaceFeature,De as MarketplacePresentations,n as OrderCompletedEvent,r as OrderCreatedEvent,Oe as OrderDetailPresentation,E as OrderEntity,D as OrderItemEntity,le as OrderItemModel,ke as OrderListPresentation,ue as OrderModel,i as OrderPaidEvent,a as OrderShippedEvent,O as OrderStatusEnum,o as OrderStatusUpdatedEvent,k as PaymentStatusEnum,s as PayoutCreatedEvent,Ae as PayoutDetailPresentation,N as PayoutEntity,P as PayoutItemEntity,je as PayoutListPresentation,de as PayoutModel,c as PayoutPaidEvent,F as PayoutScheduleEnum,I as PayoutSettingsEntity,L as PayoutStatusEnum,Me as ProductCatalogPresentation,l as ProductCreatedEvent,Ne as ProductDetailPresentation,Pe as ProductEditorPresentation,S as ProductEntity,fe as ProductModel,u as ProductPublishedEvent,C as ProductStatusEnum,w as ProductTypeEnum,T as ProductVariantEntity,A as RefundEntity,j as RefundItemEntity,d as ReviewCreatedEvent,R as ReviewEntity,Fe as ReviewFormPresentation,Ie as ReviewListPresentation,pe as ReviewModel,z as ReviewReportEntity,f as ReviewRespondedEvent,B as ReviewResponseEntity,V as ReviewStatusEnum,H as ReviewTypeEnum,U as ReviewVoteEntity,Le as SellerDashboardPresentation,_ as StoreCategoryEntity,p as StoreCreatedEvent,v as StoreEntity,me as StoreModel,Re as StoreProfilePresentation,m as StoreStatusChangedEvent,y as StoreStatusEnum,b as StoreTypeEnum,he as UpdateOrderStatusContract,ge as UpdateOrderStatusInputModel,_e as calculateCommission,ve as calculateRatingStats,h as example,ye as generateOrderNumber,be as generatePayoutNumber,xe as handleCreateOrder,Se as handleCreateProduct,Ce as handleCreateReview,we as handleCreateStore,W as marketplaceEntities,G as marketplaceSchemaContribution,Te as mockMarketplaceStore,We as schemaComposition};
1
+ import{StoreStatusEnum as e}from"./store/store.enum.js";import{CreateStoreInputModel as t,StoreModel as n}from"./store/store.schema.js";import{CreateStoreContract as r}from"./store/store.contracts.js";import{StoreCreatedEvent as i,StoreStatusChangedEvent as a}from"./store/store.event.js";import"./store/index.js";import{ProductStatusEnum as o}from"./product/product.enum.js";import{CreateProductInputModel as s,ListProductsInputModel as c,ListProductsOutputModel as l,ProductModel as u}from"./product/product.schema.js";import{CreateProductContract as d,ListProductsContract as f}from"./product/product.contracts.js";import{InventoryUpdatedEvent as p,ProductCreatedEvent as m,ProductPublishedEvent as h}from"./product/product.event.js";import"./product/index.js";import{OrderStatusEnum as g}from"./order/order.enum.js";import{CreateOrderInputModel as _,OrderItemModel as v,OrderModel as y,UpdateOrderStatusInputModel as b}from"./order/order.schema.js";import{CreateOrderContract as x,UpdateOrderStatusContract as S}from"./order/order.contracts.js";import{OrderCompletedEvent as C,OrderCreatedEvent as w,OrderPaidEvent as T,OrderShippedEvent as E,OrderStatusUpdatedEvent as D}from"./order/order.event.js";import"./order/index.js";import{PayoutStatusEnum as O}from"./payout/payout.enum.js";import{ListPayoutsInputModel as k,ListPayoutsOutputModel as A,PayoutModel as j}from"./payout/payout.schema.js";import{ListPayoutsContract as M}from"./payout/payout.contracts.js";import{PayoutCreatedEvent as N,PayoutPaidEvent as P}from"./payout/payout.event.js";import"./payout/index.js";import{ReviewStatusEnum as F}from"./review/review.enum.js";import{CreateReviewInputModel as I,ListReviewsInputModel as L,ListReviewsOutputModel as R,ReviewModel as z}from"./review/review.schema.js";import{CreateReviewContract as B,ListReviewsContract as V}from"./review/review.contracts.js";import{ReviewCreatedEvent as H,ReviewRespondedEvent as U}from"./review/review.event.js";import"./review/index.js";export{x as CreateOrderContract,_ as CreateOrderInputModel,d as CreateProductContract,s as CreateProductInputModel,B as CreateReviewContract,I as CreateReviewInputModel,r as CreateStoreContract,t as CreateStoreInputModel,p as InventoryUpdatedEvent,M as ListPayoutsContract,k as ListPayoutsInputModel,A as ListPayoutsOutputModel,f as ListProductsContract,c as ListProductsInputModel,l as ListProductsOutputModel,V as ListReviewsContract,L as ListReviewsInputModel,R as ListReviewsOutputModel,C as OrderCompletedEvent,w as OrderCreatedEvent,v as OrderItemModel,y as OrderModel,T as OrderPaidEvent,E as OrderShippedEvent,g as OrderStatusEnum,D as OrderStatusUpdatedEvent,N as PayoutCreatedEvent,j as PayoutModel,P as PayoutPaidEvent,O as PayoutStatusEnum,m as ProductCreatedEvent,u as ProductModel,h as ProductPublishedEvent,o as ProductStatusEnum,H as ReviewCreatedEvent,z as ReviewModel,U as ReviewRespondedEvent,F as ReviewStatusEnum,i as StoreCreatedEvent,n as StoreModel,a as StoreStatusChangedEvent,e as StoreStatusEnum,S as UpdateOrderStatusContract,b as UpdateOrderStatusInputModel};
@@ -0,0 +1 @@
1
+ import{OrderStatusEnum as e}from"./order.enum.js";import{CreateOrderInputModel as t,OrderItemModel as n,OrderModel as r,UpdateOrderStatusInputModel as i}from"./order.schema.js";import{CreateOrderContract as a,UpdateOrderStatusContract as o}from"./order.contracts.js";import{OrderCompletedEvent as s,OrderCreatedEvent as c,OrderPaidEvent as l,OrderShippedEvent as u,OrderStatusUpdatedEvent as d}from"./order.event.js";export{a as CreateOrderContract,t as CreateOrderInputModel,s as OrderCompletedEvent,c as OrderCreatedEvent,n as OrderItemModel,r as OrderModel,l as OrderPaidEvent,u as OrderShippedEvent,e as OrderStatusEnum,d as OrderStatusUpdatedEvent,o as UpdateOrderStatusContract,i as UpdateOrderStatusInputModel};
@@ -0,0 +1 @@
1
+ import{CreateOrderInputModel as e,OrderModel as t,UpdateOrderStatusInputModel as n}from"./order.schema.js";import{defineCommand as r}from"@lssm/lib.contracts/spec";const i=[`@example.marketplace`],a=r({meta:{name:`marketplace.order.create`,version:1,stability:`stable`,owners:[...i],tags:[`marketplace`,`order`,`create`],description:`Create a new order.`,goal:`Allow buyers to purchase products.`,context:`Checkout flow.`},io:{input:e,output:t},policy:{auth:`user`},sideEffects:{emits:[{name:`marketplace.order.created`,version:1,when:`Order is created`,payload:t}],audit:[`marketplace.order.created`]}}),o=r({meta:{name:`marketplace.order.updateStatus`,version:1,stability:`stable`,owners:[...i],tags:[`marketplace`,`order`,`status`],description:`Update order status.`,goal:`Track order fulfillment.`,context:`Order management.`},io:{input:n,output:t},policy:{auth:`user`},sideEffects:{emits:[{name:`marketplace.order.statusUpdated`,version:1,when:`Status changes`,payload:t}],audit:[`marketplace.order.statusUpdated`]}});export{a as CreateOrderContract,o as UpdateOrderStatusContract};
@@ -0,0 +1 @@
1
+ import{defineEnum as e}from"@lssm/lib.schema";const t=e(`OrderStatus`,[`PENDING`,`PAID`,`PROCESSING`,`SHIPPED`,`DELIVERED`,`COMPLETED`,`CANCELLED`,`REFUNDED`,`PARTIALLY_REFUNDED`,`DISPUTED`]);export{t as OrderStatusEnum};
@@ -0,0 +1 @@
1
+ import{ScalarTypeEnum as e,defineSchemaModel as t}from"@lssm/lib.schema";import{defineEvent as n}from"@lssm/lib.contracts";const r=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}}}),i=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}}}),a=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}}}),o=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}}}),s=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}}}),c=n({name:`marketplace.order.created`,version:1,description:`A new order has been created.`,payload:r}),l=n({name:`marketplace.order.paid`,version:1,description:`An order has been paid.`,payload:i}),u=n({name:`marketplace.order.statusUpdated`,version:1,description:`An order status has been updated.`,payload:a}),d=n({name:`marketplace.order.shipped`,version:1,description:`An order has been shipped.`,payload:o}),f=n({name:`marketplace.order.completed`,version:1,description:`An order has been completed.`,payload:s});export{f as OrderCompletedEvent,c as OrderCreatedEvent,l as OrderPaidEvent,d as OrderShippedEvent,u as OrderStatusUpdatedEvent};
@@ -0,0 +1 @@
1
+ import{OrderStatusEnum as e}from"./order.enum.js";import{ScalarTypeEnum as t,defineSchemaModel as n}from"@lssm/lib.schema";const r=n({name:`OrderItemModel`,fields:{id:{type:t.String_unsecure(),isOptional:!1},productId:{type:t.String_unsecure(),isOptional:!1},productName:{type:t.String_unsecure(),isOptional:!1},unitPrice:{type:t.Float_unsecure(),isOptional:!1},quantity:{type:t.Int_unsecure(),isOptional:!1},subtotal:{type:t.Float_unsecure(),isOptional:!1}}}),i=n({name:`OrderModel`,description:`An order`,fields:{id:{type:t.String_unsecure(),isOptional:!1},orderNumber:{type:t.String_unsecure(),isOptional:!1},buyerId:{type:t.String_unsecure(),isOptional:!1},storeId:{type:t.String_unsecure(),isOptional:!1},status:{type:e,isOptional:!1},subtotal:{type:t.Float_unsecure(),isOptional:!1},shippingTotal:{type:t.Float_unsecure(),isOptional:!1},taxTotal:{type:t.Float_unsecure(),isOptional:!1},total:{type:t.Float_unsecure(),isOptional:!1},currency:{type:t.String_unsecure(),isOptional:!1},items:{type:r,isArray:!0,isOptional:!0},createdAt:{type:t.DateTime(),isOptional:!1}}}),a=n({name:`CreateOrderInput`,fields:{storeId:{type:t.String_unsecure(),isOptional:!1},items:{type:t.JSON(),isOptional:!1,description:`Array of {productId, variantId?, quantity}`},shippingAddress:{type:t.JSON(),isOptional:!0},billingAddress:{type:t.JSON(),isOptional:!0},buyerNote:{type:t.String_unsecure(),isOptional:!0}}}),o=n({name:`UpdateOrderStatusInput`,fields:{orderId:{type:t.String_unsecure(),isOptional:!1},status:{type:e,isOptional:!1},trackingNumber:{type:t.String_unsecure(),isOptional:!0},trackingUrl:{type:t.String_unsecure(),isOptional:!0},note:{type:t.String_unsecure(),isOptional:!0}}});export{a as CreateOrderInputModel,r as OrderItemModel,i as OrderModel,o as UpdateOrderStatusInputModel};
@@ -0,0 +1 @@
1
+ import{PayoutStatusEnum as e}from"./payout.enum.js";import{ListPayoutsInputModel as t,ListPayoutsOutputModel as n,PayoutModel as r}from"./payout.schema.js";import{ListPayoutsContract as i}from"./payout.contracts.js";import{PayoutCreatedEvent as a,PayoutPaidEvent as o}from"./payout.event.js";export{i as ListPayoutsContract,t as ListPayoutsInputModel,n as ListPayoutsOutputModel,a as PayoutCreatedEvent,r as PayoutModel,o as PayoutPaidEvent,e as PayoutStatusEnum};
@@ -0,0 +1 @@
1
+ import{ListPayoutsInputModel as e,ListPayoutsOutputModel as t}from"./payout.schema.js";import{defineQuery as n}from"@lssm/lib.contracts/spec";const r=n({meta:{name:`marketplace.payout.list`,version:1,stability:`stable`,owners:[...[`@example.marketplace`]],tags:[`marketplace`,`payout`,`list`],description:`List payouts for a store.`,goal:`View payout history.`,context:`Seller dashboard.`},io:{input:e,output:t},policy:{auth:`user`}});export{r as ListPayoutsContract};
@@ -0,0 +1 @@
1
+ import{defineEnum as e}from"@lssm/lib.schema";const t=e(`PayoutStatus`,[`PENDING`,`PROCESSING`,`PAID`,`FAILED`,`CANCELLED`]);export{t as PayoutStatusEnum};
@@ -0,0 +1 @@
1
+ import{ScalarTypeEnum as e,defineSchemaModel as t}from"@lssm/lib.schema";import{defineEvent as n}from"@lssm/lib.contracts";const r=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}}}),i=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}}}),a=n({name:`marketplace.payout.created`,version:1,description:`A payout has been created.`,payload:r}),o=n({name:`marketplace.payout.paid`,version:1,description:`A payout has been sent.`,payload:i});export{a as PayoutCreatedEvent,o as PayoutPaidEvent};
@@ -0,0 +1 @@
1
+ import{PayoutStatusEnum as e}from"./payout.enum.js";import{ScalarTypeEnum as t,defineSchemaModel as n}from"@lssm/lib.schema";const r=n({name:`PayoutModel`,description:`A payout to seller`,fields:{id:{type:t.String_unsecure(),isOptional:!1},payoutNumber:{type:t.String_unsecure(),isOptional:!1},storeId:{type:t.String_unsecure(),isOptional:!1},status:{type:e,isOptional:!1},grossAmount:{type:t.Float_unsecure(),isOptional:!1},platformFees:{type:t.Float_unsecure(),isOptional:!1},netAmount:{type:t.Float_unsecure(),isOptional:!1},currency:{type:t.String_unsecure(),isOptional:!1},periodStart:{type:t.DateTime(),isOptional:!1},periodEnd:{type:t.DateTime(),isOptional:!1},orderCount:{type:t.Int_unsecure(),isOptional:!1},createdAt:{type:t.DateTime(),isOptional:!1},paidAt:{type:t.DateTime(),isOptional:!0}}}),i=n({name:`ListPayoutsInput`,fields:{storeId:{type:t.String_unsecure(),isOptional:!1},status:{type:e,isOptional:!0},limit:{type:t.Int_unsecure(),isOptional:!0,defaultValue:20},offset:{type:t.Int_unsecure(),isOptional:!0,defaultValue:0}}}),a=n({name:`ListPayoutsOutput`,fields:{payouts:{type:r,isArray:!0,isOptional:!1},total:{type:t.Int_unsecure(),isOptional:!1},totalPending:{type:t.Float_unsecure(),isOptional:!1}}});export{i as ListPayoutsInputModel,a as ListPayoutsOutputModel,r as PayoutModel};
@@ -0,0 +1 @@
1
+ import{ProductStatusEnum as e}from"./product.enum.js";import{CreateProductInputModel as t,ListProductsInputModel as n,ListProductsOutputModel as r,ProductModel as i}from"./product.schema.js";import{CreateProductContract as a,ListProductsContract as o}from"./product.contracts.js";import{InventoryUpdatedEvent as s,ProductCreatedEvent as c,ProductPublishedEvent as l}from"./product.event.js";export{a as CreateProductContract,t as CreateProductInputModel,s as InventoryUpdatedEvent,o as ListProductsContract,n as ListProductsInputModel,r as ListProductsOutputModel,c as ProductCreatedEvent,i as ProductModel,l as ProductPublishedEvent,e as ProductStatusEnum};
@@ -0,0 +1 @@
1
+ import{CreateProductInputModel as e,ListProductsInputModel as t,ListProductsOutputModel as n,ProductModel as r}from"./product.schema.js";import{defineCommand as i,defineQuery as a}from"@lssm/lib.contracts/spec";const o=[`@example.marketplace`],s=i({meta:{name:`marketplace.product.create`,version:1,stability:`stable`,owners:[...o],tags:[`marketplace`,`product`,`create`],description:`Create a new product listing.`,goal:`Allow sellers to list products.`,context:`Product management.`},io:{input:e,output:r},policy:{auth:`user`},sideEffects:{emits:[{name:`marketplace.product.created`,version:1,when:`Product is created`,payload:r}],audit:[`marketplace.product.created`]}}),c=a({meta:{name:`marketplace.product.list`,version:1,stability:`stable`,owners:[...o],tags:[`marketplace`,`product`,`list`],description:`List products with filters.`,goal:`Browse products on the marketplace.`,context:`Product catalog, search.`},io:{input:t,output:n},policy:{auth:`anonymous`}});export{s as CreateProductContract,c as ListProductsContract};
@@ -0,0 +1 @@
1
+ import{defineEnum as e}from"@lssm/lib.schema";const t=e(`ProductStatus`,[`DRAFT`,`PENDING_REVIEW`,`ACTIVE`,`OUT_OF_STOCK`,`DISCONTINUED`,`REJECTED`]);export{t as ProductStatusEnum};
@@ -0,0 +1 @@
1
+ import{ScalarTypeEnum as e,defineSchemaModel as t}from"@lssm/lib.schema";import{defineEvent as n}from"@lssm/lib.contracts";const r=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}}}),i=t({name:`ProductPublishedEventPayload`,fields:{productId:{type:e.String_unsecure(),isOptional:!1},storeId:{type:e.String_unsecure(),isOptional:!1},timestamp:{type:e.DateTime(),isOptional:!1}}}),a=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}}}),o=n({name:`marketplace.product.created`,version:1,description:`A new product has been created.`,payload:r}),s=n({name:`marketplace.product.published`,version:1,description:`A product has been published.`,payload:i}),c=n({name:`marketplace.inventory.updated`,version:1,description:`Product inventory has been updated.`,payload:a});export{c as InventoryUpdatedEvent,o as ProductCreatedEvent,s as ProductPublishedEvent};
@@ -0,0 +1 @@
1
+ import{ProductStatusEnum as e}from"./product.enum.js";import{ScalarTypeEnum as t,defineSchemaModel as n}from"@lssm/lib.schema";const r=n({name:`ProductModel`,description:`A product listing`,fields:{id:{type:t.String_unsecure(),isOptional:!1},storeId:{type:t.String_unsecure(),isOptional:!1},name:{type:t.String_unsecure(),isOptional:!1},slug:{type:t.String_unsecure(),isOptional:!1},description:{type:t.String_unsecure(),isOptional:!0},status:{type:e,isOptional:!1},price:{type:t.Float_unsecure(),isOptional:!1},currency:{type:t.String_unsecure(),isOptional:!1},quantity:{type:t.Int_unsecure(),isOptional:!1},categoryId:{type:t.String_unsecure(),isOptional:!0},primaryImageId:{type:t.String_unsecure(),isOptional:!0},averageRating:{type:t.Float_unsecure(),isOptional:!1},totalSold:{type:t.Int_unsecure(),isOptional:!1},createdAt:{type:t.DateTime(),isOptional:!1}}}),i=n({name:`CreateProductInput`,fields:{storeId:{type:t.String_unsecure(),isOptional:!1},name:{type:t.NonEmptyString(),isOptional:!1},slug:{type:t.NonEmptyString(),isOptional:!1},description:{type:t.String_unsecure(),isOptional:!0},price:{type:t.Float_unsecure(),isOptional:!1},currency:{type:t.String_unsecure(),isOptional:!0},quantity:{type:t.Int_unsecure(),isOptional:!0},categoryId:{type:t.String_unsecure(),isOptional:!0},sku:{type:t.String_unsecure(),isOptional:!0}}}),a=n({name:`ListProductsInput`,fields:{storeId:{type:t.String_unsecure(),isOptional:!0},categoryId:{type:t.String_unsecure(),isOptional:!0},status:{type:e,isOptional:!0},search:{type:t.String_unsecure(),isOptional:!0},minPrice:{type:t.Float_unsecure(),isOptional:!0},maxPrice:{type:t.Float_unsecure(),isOptional:!0},limit:{type:t.Int_unsecure(),isOptional:!0,defaultValue:20},offset:{type:t.Int_unsecure(),isOptional:!0,defaultValue:0}}}),o=n({name:`ListProductsOutput`,fields:{products:{type:r,isArray:!0,isOptional:!1},total:{type:t.Int_unsecure(),isOptional:!1}}});export{i as CreateProductInputModel,a as ListProductsInputModel,o as ListProductsOutputModel,r as ProductModel};
@@ -0,0 +1 @@
1
+ import{ReviewStatusEnum as e}from"./review.enum.js";import{CreateReviewInputModel as t,ListReviewsInputModel as n,ListReviewsOutputModel as r,ReviewModel as i}from"./review.schema.js";import{CreateReviewContract as a,ListReviewsContract as o}from"./review.contracts.js";import{ReviewCreatedEvent as s,ReviewRespondedEvent as c}from"./review.event.js";export{a as CreateReviewContract,t as CreateReviewInputModel,o as ListReviewsContract,n as ListReviewsInputModel,r as ListReviewsOutputModel,s as ReviewCreatedEvent,i as ReviewModel,c as ReviewRespondedEvent,e as ReviewStatusEnum};
@@ -0,0 +1 @@
1
+ import{CreateReviewInputModel as e,ListReviewsInputModel as t,ListReviewsOutputModel as n,ReviewModel as r}from"./review.schema.js";import{defineCommand as i,defineQuery as a}from"@lssm/lib.contracts/spec";const o=[`@example.marketplace`],s=i({meta:{name:`marketplace.review.create`,version:1,stability:`stable`,owners:[...o],tags:[`marketplace`,`review`,`create`],description:`Create a product/store review.`,goal:`Allow buyers to leave feedback.`,context:`Post-purchase.`},io:{input:e,output:r},policy:{auth:`user`},sideEffects:{emits:[{name:`marketplace.review.created`,version:1,when:`Review is created`,payload:r}],audit:[`marketplace.review.created`]}}),c=a({meta:{name:`marketplace.review.list`,version:1,stability:`stable`,owners:[...o],tags:[`marketplace`,`review`,`list`],description:`List reviews with filters.`,goal:`Display product/store reviews.`,context:`Product page, store page.`},io:{input:t,output:n},policy:{auth:`anonymous`}});export{s as CreateReviewContract,c as ListReviewsContract};
@@ -0,0 +1 @@
1
+ import{defineEnum as e}from"@lssm/lib.schema";const t=e(`ReviewStatus`,[`PENDING`,`APPROVED`,`REJECTED`,`FLAGGED`]);export{t as ReviewStatusEnum};
@@ -0,0 +1 @@
1
+ import{ScalarTypeEnum as e,defineSchemaModel as t}from"@lssm/lib.schema";import{defineEvent as n}from"@lssm/lib.contracts";const r=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}}}),i=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}}}),a=n({name:`marketplace.review.created`,version:1,description:`A review has been created.`,payload:r}),o=n({name:`marketplace.review.responded`,version:1,description:`A seller has responded to a review.`,payload:i});export{a as ReviewCreatedEvent,o as ReviewRespondedEvent};
@@ -0,0 +1 @@
1
+ import{ReviewStatusEnum as e}from"./review.enum.js";import{ScalarTypeEnum as t,defineSchemaModel as n}from"@lssm/lib.schema";const r=n({name:`ReviewModel`,description:`A customer review`,fields:{id:{type:t.String_unsecure(),isOptional:!1},productId:{type:t.String_unsecure(),isOptional:!0},storeId:{type:t.String_unsecure(),isOptional:!0},authorId:{type:t.String_unsecure(),isOptional:!1},rating:{type:t.Int_unsecure(),isOptional:!1},title:{type:t.String_unsecure(),isOptional:!0},content:{type:t.String_unsecure(),isOptional:!0},status:{type:e,isOptional:!1},isVerifiedPurchase:{type:t.Boolean(),isOptional:!1},helpfulCount:{type:t.Int_unsecure(),isOptional:!1},hasResponse:{type:t.Boolean(),isOptional:!1},createdAt:{type:t.DateTime(),isOptional:!1}}}),i=n({name:`CreateReviewInput`,fields:{productId:{type:t.String_unsecure(),isOptional:!0},storeId:{type:t.String_unsecure(),isOptional:!0},orderId:{type:t.String_unsecure(),isOptional:!0},rating:{type:t.Int_unsecure(),isOptional:!1},title:{type:t.String_unsecure(),isOptional:!0},content:{type:t.String_unsecure(),isOptional:!0}}}),a=n({name:`ListReviewsInput`,fields:{productId:{type:t.String_unsecure(),isOptional:!0},storeId:{type:t.String_unsecure(),isOptional:!0},status:{type:e,isOptional:!0},minRating:{type:t.Int_unsecure(),isOptional:!0},limit:{type:t.Int_unsecure(),isOptional:!0,defaultValue:20},offset:{type:t.Int_unsecure(),isOptional:!0,defaultValue:0}}}),o=n({name:`ListReviewsOutput`,fields:{reviews:{type:r,isArray:!0,isOptional:!1},total:{type:t.Int_unsecure(),isOptional:!1},averageRating:{type:t.Float_unsecure(),isOptional:!1},ratingDistribution:{type:t.JSON(),isOptional:!1}}});export{i as CreateReviewInputModel,a as ListReviewsInputModel,o as ListReviewsOutputModel,r as ReviewModel};
@@ -0,0 +1 @@
1
+ import{StoreStatusEnum as e}from"./store.enum.js";import{CreateStoreInputModel as t,StoreModel as n}from"./store.schema.js";import{CreateStoreContract as r}from"./store.contracts.js";import{StoreCreatedEvent as i,StoreStatusChangedEvent as a}from"./store.event.js";export{r as CreateStoreContract,t as CreateStoreInputModel,i as StoreCreatedEvent,n as StoreModel,a as StoreStatusChangedEvent,e as StoreStatusEnum};
@@ -0,0 +1 @@
1
+ import{CreateStoreInputModel as e,StoreModel as t}from"./store.schema.js";import{defineCommand as n}from"@lssm/lib.contracts/spec";const r=n({meta:{name:`marketplace.store.create`,version:1,stability:`stable`,owners:[...[`@example.marketplace`]],tags:[`marketplace`,`store`,`create`],description:`Create a new seller store.`,goal:`Allow users to become sellers on the marketplace.`,context:`Seller onboarding.`},io:{input:e,output:t},policy:{auth:`user`},sideEffects:{emits:[{name:`marketplace.store.created`,version:1,when:`Store is created`,payload:t}],audit:[`marketplace.store.created`]}});export{r as CreateStoreContract};
@@ -0,0 +1 @@
1
+ import{defineEnum as e}from"@lssm/lib.schema";const t=e(`StoreStatus`,[`PENDING`,`ACTIVE`,`SUSPENDED`,`CLOSED`]);export{t as StoreStatusEnum};
@@ -0,0 +1 @@
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=n({name:`marketplace.store.created`,version:1,description:`A new seller store has been created.`,payload:r}),o=n({name:`marketplace.store.statusChanged`,version:1,description:`A store status has changed.`,payload:i});export{a as StoreCreatedEvent,o as StoreStatusChangedEvent};
@@ -0,0 +1 @@
1
+ import{StoreStatusEnum as e}from"./store.enum.js";import{ScalarTypeEnum as t,defineSchemaModel as n}from"@lssm/lib.schema";const r=n({name:`StoreModel`,description:`A seller store`,fields:{id:{type:t.String_unsecure(),isOptional:!1},name:{type:t.String_unsecure(),isOptional:!1},slug:{type:t.String_unsecure(),isOptional:!1},description:{type:t.String_unsecure(),isOptional:!0},status:{type:e,isOptional:!1},ownerId:{type:t.String_unsecure(),isOptional:!1},logoFileId:{type:t.String_unsecure(),isOptional:!0},isVerified:{type:t.Boolean(),isOptional:!1},totalProducts:{type:t.Int_unsecure(),isOptional:!1},averageRating:{type:t.Float_unsecure(),isOptional:!1},createdAt:{type:t.DateTime(),isOptional:!1}}}),i=n({name:`CreateStoreInput`,fields:{name:{type:t.NonEmptyString(),isOptional:!1},slug:{type:t.NonEmptyString(),isOptional:!1},description:{type:t.String_unsecure(),isOptional:!0},email:{type:t.EmailAddress(),isOptional:!0},country:{type:t.String_unsecure(),isOptional:!0},currency:{type:t.String_unsecure(),isOptional:!0}}});export{i as CreateStoreInputModel,r as StoreModel};