@lssm/example.marketplace 0.0.0-canary-20251217083314 → 0.0.0-canary-20251220002821
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/LICENSE +21 -0
- package/README.md +3 -0
- package/dist/docs/marketplace.docblock.js +2 -1
- package/dist/docs/marketplace.docblock.js.map +1 -0
- package/dist/entities/index.d.ts +298 -297
- package/dist/entities/index.d.ts.map +1 -0
- package/dist/entities/index.js +2 -1
- package/dist/entities/index.js.map +1 -0
- package/dist/entities/order.d.ts +80 -79
- package/dist/entities/order.d.ts.map +1 -0
- package/dist/entities/order.js +89 -89
- package/dist/entities/order.js.map +1 -0
- package/dist/entities/payout.d.ts +67 -66
- package/dist/entities/payout.d.ts.map +1 -0
- package/dist/entities/payout.js +74 -74
- package/dist/entities/payout.js.map +1 -0
- package/dist/entities/product.d.ts +72 -71
- package/dist/entities/product.d.ts.map +1 -0
- package/dist/entities/product.js +86 -86
- package/dist/entities/product.js.map +1 -0
- package/dist/entities/review.d.ts +58 -57
- package/dist/entities/review.d.ts.map +1 -0
- package/dist/entities/review.js +70 -70
- package/dist/entities/review.js.map +1 -0
- package/dist/entities/store.d.ts +43 -42
- package/dist/entities/store.d.ts.map +1 -0
- package/dist/entities/store.js +49 -49
- package/dist/entities/store.js.map +1 -0
- package/dist/example.d.ts +2 -1
- package/dist/example.d.ts.map +1 -0
- package/dist/example.js +2 -1
- package/dist/example.js.map +1 -0
- package/dist/libs/contracts/dist/capabilities/openbanking.js +2 -1
- package/dist/libs/contracts/dist/capabilities/openbanking.js.map +1 -0
- package/dist/libs/contracts/dist/contract-registry/schemas.js +2 -1
- package/dist/libs/contracts/dist/contract-registry/schemas.js.map +1 -0
- package/dist/libs/contracts/dist/docs/accessibility_wcag_compliance_specs.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/accessibility_wcag_compliance_specs.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/index.js +2 -6
- package/dist/libs/contracts/dist/docs/meta.docs.js +30 -0
- package/dist/libs/contracts/dist/docs/meta.docs.js.map +1 -0
- package/dist/libs/contracts/dist/docs/presentations.js +2 -1
- package/dist/libs/contracts/dist/docs/presentations.js.map +1 -0
- package/dist/libs/contracts/dist/docs/registry.js +2 -1
- package/dist/libs/contracts/dist/docs/registry.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/auth/better-auth-nextjs.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/auth/better-auth-nextjs.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/contracts/openapi-export.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/contracts/openapi-export.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/lifecycle-stage-system.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/lifecycle-stage-system.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/llm/llm-integration.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/llm/llm-integration.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/mcp-endpoints.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/mcp-endpoints.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/presentation-runtime.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/presentation-runtime.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/schema/README.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/schema/README.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/studio/learning-events.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/studio/learning-events.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/studio/learning-journeys.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/studio/learning-journeys.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/studio/platform-admin-panel.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/studio/platform-admin-panel.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/studio/project-access-teams.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/studio/project-access-teams.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/studio/project-routing.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/studio/project-routing.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/studio/sandbox-unlogged.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/studio/sandbox-unlogged.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/studio/team-invitations.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/studio/team-invitations.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/studio/workspace-ops.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/studio/workspace-ops.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/studio/workspaces.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/studio/workspaces.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/telemetry-ingest.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/telemetry-ingest.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/templates/runtime.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/templates/runtime.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/vscode-extension.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/vscode-extension.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/workflows/overview.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/workflows/overview.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech-contracts.docs.js +97 -0
- package/dist/libs/contracts/dist/docs/tech-contracts.docs.js.map +1 -0
- package/dist/libs/contracts/dist/events.js +2 -1
- package/dist/libs/contracts/dist/events.js.map +1 -0
- package/dist/libs/contracts/dist/index.js +2 -1
- package/dist/libs/contracts/dist/integrations/contracts.js +65 -66
- package/dist/libs/contracts/dist/integrations/contracts.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/openbanking/contracts/accounts.js +31 -32
- package/dist/libs/contracts/dist/integrations/openbanking/contracts/accounts.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/openbanking/contracts/balances.js +18 -19
- package/dist/libs/contracts/dist/integrations/openbanking/contracts/balances.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/openbanking/contracts/transactions.js +32 -33
- package/dist/libs/contracts/dist/integrations/openbanking/contracts/transactions.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/openbanking/models.js +60 -61
- package/dist/libs/contracts/dist/integrations/openbanking/models.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/openbanking/telemetry.js +2 -1
- package/dist/libs/contracts/dist/integrations/openbanking/telemetry.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/providers/elevenlabs.js +2 -1
- package/dist/libs/contracts/dist/integrations/providers/elevenlabs.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/providers/gcs-storage.js +2 -1
- package/dist/libs/contracts/dist/integrations/providers/gcs-storage.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/providers/gmail.js +2 -1
- package/dist/libs/contracts/dist/integrations/providers/gmail.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/providers/google-calendar.js +2 -1
- package/dist/libs/contracts/dist/integrations/providers/google-calendar.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/providers/mistral.js +2 -1
- package/dist/libs/contracts/dist/integrations/providers/mistral.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/providers/postmark.js +2 -1
- package/dist/libs/contracts/dist/integrations/providers/postmark.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/providers/powens.js +2 -1
- package/dist/libs/contracts/dist/integrations/providers/powens.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/providers/qdrant.js +2 -1
- package/dist/libs/contracts/dist/integrations/providers/qdrant.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/providers/stripe.js +2 -1
- package/dist/libs/contracts/dist/integrations/providers/stripe.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/providers/twilio-sms.js +2 -1
- package/dist/libs/contracts/dist/integrations/providers/twilio-sms.js.map +1 -0
- package/dist/libs/contracts/dist/knowledge/contracts.js +44 -45
- package/dist/libs/contracts/dist/knowledge/contracts.js.map +1 -0
- package/dist/libs/contracts/dist/knowledge/spaces/email-threads.js +2 -1
- package/dist/libs/contracts/dist/knowledge/spaces/email-threads.js.map +1 -0
- package/dist/libs/contracts/dist/knowledge/spaces/financial-docs.js +2 -1
- package/dist/libs/contracts/dist/knowledge/spaces/financial-docs.js.map +1 -0
- package/dist/libs/contracts/dist/knowledge/spaces/financial-overview.js +2 -1
- package/dist/libs/contracts/dist/knowledge/spaces/financial-overview.js.map +1 -0
- package/dist/libs/contracts/dist/knowledge/spaces/product-canon.js +2 -1
- package/dist/libs/contracts/dist/knowledge/spaces/product-canon.js.map +1 -0
- package/dist/libs/contracts/dist/knowledge/spaces/support-faq.js +2 -1
- package/dist/libs/contracts/dist/knowledge/spaces/support-faq.js.map +1 -0
- package/dist/libs/contracts/dist/knowledge/spaces/uploaded-docs.js +2 -1
- package/dist/libs/contracts/dist/knowledge/spaces/uploaded-docs.js.map +1 -0
- package/dist/libs/contracts/dist/llm/exporters.js +2 -1
- package/dist/libs/contracts/dist/llm/exporters.js.map +1 -0
- package/dist/libs/contracts/dist/onboarding-base.js +22 -23
- package/dist/libs/contracts/dist/onboarding-base.js.map +1 -0
- package/dist/libs/contracts/dist/ownership.js +4 -2
- package/dist/libs/contracts/dist/ownership.js.map +1 -0
- package/dist/libs/contracts/dist/presentations.v2.js +2 -1
- package/dist/libs/contracts/dist/presentations.v2.js.map +1 -0
- package/dist/libs/contracts/dist/regenerator/service.js +2 -1
- package/dist/libs/contracts/dist/regenerator/service.js.map +1 -0
- package/dist/libs/contracts/dist/schema/dist/index.js +3873 -6
- package/dist/libs/contracts/dist/schema/dist/index.js.map +1 -0
- package/dist/libs/contracts/dist/spec.js +2 -1
- package/dist/libs/contracts/dist/spec.js.map +1 -0
- package/dist/libs/schema/dist/index.js +4922 -6
- package/dist/libs/schema/dist/index.js.map +1 -0
- package/dist/marketplace.feature.d.ts +2 -1
- package/dist/marketplace.feature.d.ts.map +1 -0
- package/dist/marketplace.feature.js +2 -1
- package/dist/marketplace.feature.js.map +1 -0
- package/dist/order/order.contracts.d.ts +92 -91
- package/dist/order/order.contracts.d.ts.map +1 -0
- package/dist/order/order.contracts.js +2 -1
- package/dist/order/order.contracts.js.map +1 -0
- package/dist/order/order.enum.d.ts +4 -3
- package/dist/order/order.enum.d.ts.map +1 -0
- package/dist/order/order.enum.js +4 -4
- package/dist/order/order.enum.js.map +1 -0
- package/dist/order/order.event.d.ts +41 -40
- package/dist/order/order.event.d.ts.map +1 -0
- package/dist/order/order.event.js +40 -41
- package/dist/order/order.event.js.map +1 -0
- package/dist/order/order.presentation.d.ts +2 -1
- package/dist/order/order.presentation.d.ts.map +1 -0
- package/dist/order/order.presentation.js +2 -1
- package/dist/order/order.presentation.js.map +1 -0
- package/dist/order/order.schema.d.ts +41 -40
- package/dist/order/order.schema.d.ts.map +1 -0
- package/dist/order/order.schema.js +32 -33
- package/dist/order/order.schema.js.map +1 -0
- package/dist/payout/payout.contracts.d.ts +26 -25
- package/dist/payout/payout.contracts.d.ts.map +1 -0
- package/dist/payout/payout.contracts.js +2 -1
- package/dist/payout/payout.contracts.js.map +1 -0
- package/dist/payout/payout.enum.d.ts +4 -3
- package/dist/payout/payout.enum.d.ts.map +1 -0
- package/dist/payout/payout.enum.js +4 -4
- package/dist/payout/payout.enum.js.map +1 -0
- package/dist/payout/payout.event.d.ts +19 -18
- package/dist/payout/payout.event.d.ts.map +1 -0
- package/dist/payout/payout.event.js +18 -19
- package/dist/payout/payout.event.js.map +1 -0
- package/dist/payout/payout.presentation.d.ts +2 -1
- package/dist/payout/payout.presentation.d.ts.map +1 -0
- package/dist/payout/payout.presentation.js +2 -1
- package/dist/payout/payout.presentation.js.map +1 -0
- package/dist/payout/payout.schema.d.ts +39 -38
- package/dist/payout/payout.schema.d.ts.map +1 -0
- package/dist/payout/payout.schema.js +23 -24
- package/dist/payout/payout.schema.js.map +1 -0
- package/dist/product/product.contracts.d.ts +70 -69
- package/dist/product/product.contracts.d.ts.map +1 -0
- package/dist/product/product.contracts.js +2 -1
- package/dist/product/product.contracts.js.map +1 -0
- package/dist/product/product.enum.d.ts +4 -3
- package/dist/product/product.enum.d.ts.map +1 -0
- package/dist/product/product.enum.js +4 -4
- package/dist/product/product.enum.js.map +1 -0
- package/dist/product/product.event.d.ts +22 -21
- package/dist/product/product.event.d.ts.map +1 -0
- package/dist/product/product.event.js +21 -22
- package/dist/product/product.event.js.map +1 -0
- package/dist/product/product.presentation.d.ts +2 -1
- package/dist/product/product.presentation.d.ts.map +1 -0
- package/dist/product/product.presentation.js +2 -1
- package/dist/product/product.presentation.js.map +1 -0
- package/dist/product/product.schema.d.ts +54 -53
- package/dist/product/product.schema.d.ts.map +1 -0
- package/dist/product/product.schema.js +37 -38
- package/dist/product/product.schema.js.map +1 -0
- package/dist/review/review.contracts.d.ts +61 -60
- package/dist/review/review.contracts.d.ts.map +1 -0
- package/dist/review/review.contracts.js +2 -1
- package/dist/review/review.contracts.js.map +1 -0
- package/dist/review/review.enum.d.ts +4 -3
- package/dist/review/review.enum.d.ts.map +1 -0
- package/dist/review/review.enum.js +4 -4
- package/dist/review/review.enum.js.map +1 -0
- package/dist/review/review.event.d.ts +16 -15
- package/dist/review/review.event.d.ts.map +1 -0
- package/dist/review/review.event.js +16 -17
- package/dist/review/review.event.js.map +1 -0
- package/dist/review/review.presentation.d.ts +2 -1
- package/dist/review/review.presentation.d.ts.map +1 -0
- package/dist/review/review.presentation.js +2 -1
- package/dist/review/review.presentation.js.map +1 -0
- package/dist/review/review.schema.d.ts +47 -46
- package/dist/review/review.schema.d.ts.map +1 -0
- package/dist/review/review.schema.js +32 -33
- package/dist/review/review.schema.js.map +1 -0
- package/dist/store/store.contracts.d.ts +35 -34
- package/dist/store/store.contracts.d.ts.map +1 -0
- package/dist/store/store.contracts.js +2 -1
- package/dist/store/store.contracts.js.map +1 -0
- package/dist/store/store.enum.d.ts +4 -3
- package/dist/store/store.enum.d.ts.map +1 -0
- package/dist/store/store.enum.js +4 -4
- package/dist/store/store.enum.js.map +1 -0
- package/dist/store/store.event.d.ts +16 -15
- package/dist/store/store.event.d.ts.map +1 -0
- package/dist/store/store.event.js +15 -16
- package/dist/store/store.event.js.map +1 -0
- package/dist/store/store.presentation.d.ts +2 -1
- package/dist/store/store.presentation.d.ts.map +1 -0
- package/dist/store/store.presentation.js +2 -1
- package/dist/store/store.presentation.js.map +1 -0
- package/dist/store/store.schema.d.ts +22 -21
- package/dist/store/store.schema.d.ts.map +1 -0
- package/dist/store/store.schema.js +21 -22
- package/dist/store/store.schema.js.map +1 -0
- package/package.json +20 -13
- package/dist/libs/contracts/dist/docs/PUBLISHING.docblock.js +0 -16
- package/dist/libs/contracts/dist/docs/tech/PHASE_1_QUICKSTART.docblock.js +0 -16
- package/dist/libs/contracts/dist/docs/tech/PHASE_2_AI_NATIVE_OPERATIONS.docblock.js +0 -16
- package/dist/libs/contracts/dist/docs/tech/PHASE_3_AUTO_EVOLUTION.docblock.js +0 -16
- package/dist/libs/contracts/dist/docs/tech/PHASE_4_PERSONALIZATION_ENGINE.docblock.js +0 -16
- package/dist/libs/contracts/dist/docs/tech/PHASE_5_ZERO_TOUCH_OPERATIONS.docblock.js +0 -16
- package/dist/libs/contracts/dist/schema/dist/EnumType.js +0 -2
- package/dist/libs/contracts/dist/schema/dist/FieldType.js +0 -49
- package/dist/libs/contracts/dist/schema/dist/ScalarTypeEnum.js +0 -236
- package/dist/libs/contracts/dist/schema/dist/SchemaModel.js +0 -34
- package/dist/libs/contracts/dist/schema/dist/entity/defineEntity.js +0 -1
- package/dist/libs/contracts/dist/schema/dist/entity/index.js +0 -2
- package/dist/libs/contracts/dist/schema/dist/entity/types.js +0 -1
- package/dist/libs/schema/dist/EnumType.js +0 -56
- package/dist/libs/schema/dist/FieldType.js +0 -49
- package/dist/libs/schema/dist/ScalarTypeEnum.js +0 -236
- package/dist/libs/schema/dist/SchemaModel.js +0 -39
- package/dist/libs/schema/dist/entity/defineEntity.js +0 -236
- package/dist/libs/schema/dist/entity/index.js +0 -2
- package/dist/libs/schema/dist/entity/types.js +0 -1
package/dist/entities/product.js
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import "../libs/schema/dist/index.js";
|
|
1
|
+
import { L5, Z5, _5, b5 } from "../libs/schema/dist/index.js";
|
|
3
2
|
|
|
4
3
|
//#region src/entities/product.ts
|
|
5
4
|
/**
|
|
6
5
|
* Product status enum.
|
|
7
6
|
*/
|
|
8
|
-
const ProductStatusEnum =
|
|
7
|
+
const ProductStatusEnum = Z5({
|
|
9
8
|
name: "ProductStatus",
|
|
10
9
|
values: [
|
|
11
10
|
"DRAFT",
|
|
@@ -21,7 +20,7 @@ const ProductStatusEnum = defineEntityEnum({
|
|
|
21
20
|
/**
|
|
22
21
|
* Product type enum.
|
|
23
22
|
*/
|
|
24
|
-
const ProductTypeEnum =
|
|
23
|
+
const ProductTypeEnum = Z5({
|
|
25
24
|
name: "ProductType",
|
|
26
25
|
values: [
|
|
27
26
|
"PHYSICAL",
|
|
@@ -35,127 +34,128 @@ const ProductTypeEnum = defineEntityEnum({
|
|
|
35
34
|
/**
|
|
36
35
|
* Product entity - an item for sale on the marketplace.
|
|
37
36
|
*/
|
|
38
|
-
const ProductEntity =
|
|
37
|
+
const ProductEntity = L5({
|
|
39
38
|
name: "Product",
|
|
40
39
|
description: "A product listing on the marketplace.",
|
|
41
40
|
schema: "marketplace",
|
|
42
41
|
map: "product",
|
|
43
42
|
fields: {
|
|
44
|
-
id:
|
|
45
|
-
storeId:
|
|
46
|
-
name:
|
|
47
|
-
slug:
|
|
48
|
-
description:
|
|
49
|
-
shortDescription:
|
|
50
|
-
status:
|
|
51
|
-
type:
|
|
52
|
-
price:
|
|
53
|
-
compareAtPrice:
|
|
43
|
+
id: _5.id({ description: "Unique product ID" }),
|
|
44
|
+
storeId: _5.foreignKey(),
|
|
45
|
+
name: _5.string({ description: "Product name" }),
|
|
46
|
+
slug: _5.string({ description: "URL-friendly identifier" }),
|
|
47
|
+
description: _5.string({ isOptional: true }),
|
|
48
|
+
shortDescription: _5.string({ isOptional: true }),
|
|
49
|
+
status: _5.enum("ProductStatus", { default: "DRAFT" }),
|
|
50
|
+
type: _5.enum("ProductType", { default: "PHYSICAL" }),
|
|
51
|
+
price: _5.decimal({ description: "Base price" }),
|
|
52
|
+
compareAtPrice: _5.decimal({
|
|
54
53
|
isOptional: true,
|
|
55
54
|
description: "Original price for showing discounts"
|
|
56
55
|
}),
|
|
57
|
-
currency:
|
|
58
|
-
sku:
|
|
59
|
-
barcode:
|
|
60
|
-
quantity:
|
|
61
|
-
trackInventory:
|
|
62
|
-
allowBackorder:
|
|
63
|
-
lowStockThreshold:
|
|
64
|
-
weight:
|
|
65
|
-
weightUnit:
|
|
66
|
-
categoryId:
|
|
67
|
-
tags:
|
|
68
|
-
primaryImageId:
|
|
69
|
-
seoTitle:
|
|
70
|
-
seoDescription:
|
|
71
|
-
attributes:
|
|
56
|
+
currency: _5.string({ default: "\"USD\"" }),
|
|
57
|
+
sku: _5.string({ isOptional: true }),
|
|
58
|
+
barcode: _5.string({ isOptional: true }),
|
|
59
|
+
quantity: _5.int({ default: 0 }),
|
|
60
|
+
trackInventory: _5.boolean({ default: true }),
|
|
61
|
+
allowBackorder: _5.boolean({ default: false }),
|
|
62
|
+
lowStockThreshold: _5.int({ default: 5 }),
|
|
63
|
+
weight: _5.decimal({ isOptional: true }),
|
|
64
|
+
weightUnit: _5.string({ default: "\"kg\"" }),
|
|
65
|
+
categoryId: _5.string({ isOptional: true }),
|
|
66
|
+
tags: _5.string({ isArray: true }),
|
|
67
|
+
primaryImageId: _5.string({ isOptional: true }),
|
|
68
|
+
seoTitle: _5.string({ isOptional: true }),
|
|
69
|
+
seoDescription: _5.string({ isOptional: true }),
|
|
70
|
+
attributes: _5.json({
|
|
72
71
|
isOptional: true,
|
|
73
72
|
description: "Custom product attributes"
|
|
74
73
|
}),
|
|
75
|
-
reviewCount:
|
|
76
|
-
averageRating:
|
|
77
|
-
totalSold:
|
|
78
|
-
createdAt:
|
|
79
|
-
updatedAt:
|
|
80
|
-
publishedAt:
|
|
81
|
-
store:
|
|
82
|
-
variants:
|
|
83
|
-
orderItems:
|
|
84
|
-
reviews:
|
|
74
|
+
reviewCount: _5.int({ default: 0 }),
|
|
75
|
+
averageRating: _5.decimal({ default: 0 }),
|
|
76
|
+
totalSold: _5.int({ default: 0 }),
|
|
77
|
+
createdAt: _5.createdAt(),
|
|
78
|
+
updatedAt: _5.updatedAt(),
|
|
79
|
+
publishedAt: _5.dateTime({ isOptional: true }),
|
|
80
|
+
store: _5.belongsTo("Store", ["storeId"], ["id"]),
|
|
81
|
+
variants: _5.hasMany("ProductVariant"),
|
|
82
|
+
orderItems: _5.hasMany("OrderItem"),
|
|
83
|
+
reviews: _5.hasMany("Review")
|
|
85
84
|
},
|
|
86
85
|
indexes: [
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
86
|
+
b5.unique(["storeId", "slug"]),
|
|
87
|
+
b5.on(["storeId", "status"]),
|
|
88
|
+
b5.on(["status", "publishedAt"]),
|
|
89
|
+
b5.on(["categoryId", "status"]),
|
|
90
|
+
b5.on(["averageRating"]),
|
|
91
|
+
b5.on(["totalSold"]),
|
|
92
|
+
b5.on(["price"])
|
|
94
93
|
],
|
|
95
94
|
enums: [ProductStatusEnum, ProductTypeEnum]
|
|
96
95
|
});
|
|
97
96
|
/**
|
|
98
97
|
* Product variant entity - variations of a product (size, color, etc.).
|
|
99
98
|
*/
|
|
100
|
-
const ProductVariantEntity =
|
|
99
|
+
const ProductVariantEntity = L5({
|
|
101
100
|
name: "ProductVariant",
|
|
102
101
|
description: "A variant of a product with specific options.",
|
|
103
102
|
schema: "marketplace",
|
|
104
103
|
map: "product_variant",
|
|
105
104
|
fields: {
|
|
106
|
-
id:
|
|
107
|
-
productId:
|
|
108
|
-
name:
|
|
109
|
-
options:
|
|
110
|
-
price:
|
|
111
|
-
compareAtPrice:
|
|
112
|
-
sku:
|
|
113
|
-
barcode:
|
|
114
|
-
quantity:
|
|
115
|
-
imageId:
|
|
116
|
-
isActive:
|
|
117
|
-
position:
|
|
118
|
-
createdAt:
|
|
119
|
-
updatedAt:
|
|
120
|
-
product:
|
|
105
|
+
id: _5.id(),
|
|
106
|
+
productId: _5.foreignKey(),
|
|
107
|
+
name: _5.string({ description: "Variant name (e.g., \"Large / Blue\")" }),
|
|
108
|
+
options: _5.json({ description: "Variant options (e.g., {size: \"L\", color: \"Blue\"})" }),
|
|
109
|
+
price: _5.decimal({ description: "Variant-specific price" }),
|
|
110
|
+
compareAtPrice: _5.decimal({ isOptional: true }),
|
|
111
|
+
sku: _5.string({ isOptional: true }),
|
|
112
|
+
barcode: _5.string({ isOptional: true }),
|
|
113
|
+
quantity: _5.int({ default: 0 }),
|
|
114
|
+
imageId: _5.string({ isOptional: true }),
|
|
115
|
+
isActive: _5.boolean({ default: true }),
|
|
116
|
+
position: _5.int({ default: 0 }),
|
|
117
|
+
createdAt: _5.createdAt(),
|
|
118
|
+
updatedAt: _5.updatedAt(),
|
|
119
|
+
product: _5.belongsTo("Product", ["productId"], ["id"], { onDelete: "Cascade" })
|
|
121
120
|
},
|
|
122
121
|
indexes: [
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
122
|
+
b5.on(["productId", "sku"]),
|
|
123
|
+
b5.on(["productId", "position"]),
|
|
124
|
+
b5.on(["barcode"])
|
|
126
125
|
]
|
|
127
126
|
});
|
|
128
127
|
/**
|
|
129
128
|
* Category entity - product categorization.
|
|
130
129
|
*/
|
|
131
|
-
const CategoryEntity =
|
|
130
|
+
const CategoryEntity = L5({
|
|
132
131
|
name: "Category",
|
|
133
132
|
description: "Product category for organization.",
|
|
134
133
|
schema: "marketplace",
|
|
135
134
|
map: "category",
|
|
136
135
|
fields: {
|
|
137
|
-
id:
|
|
138
|
-
name:
|
|
139
|
-
slug:
|
|
140
|
-
description:
|
|
141
|
-
parentId:
|
|
142
|
-
path:
|
|
143
|
-
level:
|
|
144
|
-
position:
|
|
145
|
-
imageId:
|
|
146
|
-
isActive:
|
|
147
|
-
createdAt:
|
|
148
|
-
updatedAt:
|
|
149
|
-
parent:
|
|
150
|
-
children:
|
|
136
|
+
id: _5.id(),
|
|
137
|
+
name: _5.string(),
|
|
138
|
+
slug: _5.string(),
|
|
139
|
+
description: _5.string({ isOptional: true }),
|
|
140
|
+
parentId: _5.string({ isOptional: true }),
|
|
141
|
+
path: _5.string({ description: "Full path for hierarchical queries" }),
|
|
142
|
+
level: _5.int({ default: 0 }),
|
|
143
|
+
position: _5.int({ default: 0 }),
|
|
144
|
+
imageId: _5.string({ isOptional: true }),
|
|
145
|
+
isActive: _5.boolean({ default: true }),
|
|
146
|
+
createdAt: _5.createdAt(),
|
|
147
|
+
updatedAt: _5.updatedAt(),
|
|
148
|
+
parent: _5.belongsTo("Category", ["parentId"], ["id"]),
|
|
149
|
+
children: _5.hasMany("Category")
|
|
151
150
|
},
|
|
152
151
|
indexes: [
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
152
|
+
b5.unique(["slug"]),
|
|
153
|
+
b5.on(["parentId", "position"]),
|
|
154
|
+
b5.on(["path"]),
|
|
155
|
+
b5.on(["isActive"])
|
|
157
156
|
]
|
|
158
157
|
});
|
|
159
158
|
|
|
160
159
|
//#endregion
|
|
161
|
-
export { CategoryEntity, ProductEntity, ProductStatusEnum, ProductTypeEnum, ProductVariantEntity };
|
|
160
|
+
export { CategoryEntity, ProductEntity, ProductStatusEnum, ProductTypeEnum, ProductVariantEntity };
|
|
161
|
+
//# sourceMappingURL=product.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"product.js","names":["defineEntityEnum","defineEntity","field","index"],"sources":["../../src/entities/product.ts"],"sourcesContent":["import { defineEntity, defineEntityEnum, field, index } from '@lssm/lib.schema';\n\n/**\n * Product status enum.\n */\nexport const ProductStatusEnum = defineEntityEnum({\n name: 'ProductStatus',\n values: [\n 'DRAFT',\n 'PENDING_REVIEW',\n 'ACTIVE',\n 'OUT_OF_STOCK',\n 'DISCONTINUED',\n 'REJECTED',\n ] as const,\n schema: 'marketplace',\n description: 'Status of a product listing.',\n});\n\n/**\n * Product type enum.\n */\nexport const ProductTypeEnum = defineEntityEnum({\n name: 'ProductType',\n values: ['PHYSICAL', 'DIGITAL', 'SERVICE', 'SUBSCRIPTION'] as const,\n schema: 'marketplace',\n description: 'Type of product.',\n});\n\n/**\n * Product entity - an item for sale on the marketplace.\n */\nexport const ProductEntity = defineEntity({\n name: 'Product',\n description: 'A product listing on the marketplace.',\n schema: 'marketplace',\n map: 'product',\n fields: {\n id: field.id({ description: 'Unique product ID' }),\n\n // Store\n storeId: field.foreignKey(),\n\n // Identity\n name: field.string({ description: 'Product name' }),\n slug: field.string({ description: 'URL-friendly identifier' }),\n description: field.string({ isOptional: true }),\n shortDescription: field.string({ isOptional: true }),\n\n // Status\n status: field.enum('ProductStatus', { default: 'DRAFT' }),\n type: field.enum('ProductType', { default: 'PHYSICAL' }),\n\n // Pricing\n price: field.decimal({ description: 'Base price' }),\n compareAtPrice: field.decimal({\n isOptional: true,\n description: 'Original price for showing discounts',\n }),\n currency: field.string({ default: '\"USD\"' }),\n\n // Inventory\n sku: field.string({ isOptional: true }),\n barcode: field.string({ isOptional: true }),\n quantity: field.int({ default: 0 }),\n trackInventory: field.boolean({ default: true }),\n allowBackorder: field.boolean({ default: false }),\n lowStockThreshold: field.int({ default: 5 }),\n\n // Physical properties\n weight: field.decimal({ isOptional: true }),\n weightUnit: field.string({ default: '\"kg\"' }),\n\n // Categories\n categoryId: field.string({ isOptional: true }),\n tags: field.string({ isArray: true }),\n\n // Media (using file attachments)\n primaryImageId: field.string({ isOptional: true }),\n\n // SEO\n seoTitle: field.string({ isOptional: true }),\n seoDescription: field.string({ isOptional: true }),\n\n // Attributes\n attributes: field.json({\n isOptional: true,\n description: 'Custom product attributes',\n }),\n\n // Reviews\n reviewCount: field.int({ default: 0 }),\n averageRating: field.decimal({ default: 0 }),\n\n // Sales\n totalSold: field.int({ default: 0 }),\n\n // Timestamps\n createdAt: field.createdAt(),\n updatedAt: field.updatedAt(),\n publishedAt: field.dateTime({ isOptional: true }),\n\n // Relations\n store: field.belongsTo('Store', ['storeId'], ['id']),\n variants: field.hasMany('ProductVariant'),\n orderItems: field.hasMany('OrderItem'),\n reviews: field.hasMany('Review'),\n },\n indexes: [\n index.unique(['storeId', 'slug']),\n index.on(['storeId', 'status']),\n index.on(['status', 'publishedAt']),\n index.on(['categoryId', 'status']),\n index.on(['averageRating']),\n index.on(['totalSold']),\n index.on(['price']),\n ],\n enums: [ProductStatusEnum, ProductTypeEnum],\n});\n\n/**\n * Product variant entity - variations of a product (size, color, etc.).\n */\nexport const ProductVariantEntity = defineEntity({\n name: 'ProductVariant',\n description: 'A variant of a product with specific options.',\n schema: 'marketplace',\n map: 'product_variant',\n fields: {\n id: field.id(),\n productId: field.foreignKey(),\n\n // Identity\n name: field.string({ description: 'Variant name (e.g., \"Large / Blue\")' }),\n\n // Options\n options: field.json({\n description: 'Variant options (e.g., {size: \"L\", color: \"Blue\"})',\n }),\n\n // Pricing\n price: field.decimal({ description: 'Variant-specific price' }),\n compareAtPrice: field.decimal({ isOptional: true }),\n\n // Inventory\n sku: field.string({ isOptional: true }),\n barcode: field.string({ isOptional: true }),\n quantity: field.int({ default: 0 }),\n\n // Media\n imageId: field.string({ isOptional: true }),\n\n // Status\n isActive: field.boolean({ default: true }),\n\n // Position\n position: field.int({ default: 0 }),\n\n // Timestamps\n createdAt: field.createdAt(),\n updatedAt: field.updatedAt(),\n\n // Relations\n product: field.belongsTo('Product', ['productId'], ['id'], {\n onDelete: 'Cascade',\n }),\n },\n indexes: [\n index.on(['productId', 'sku']),\n index.on(['productId', 'position']),\n index.on(['barcode']),\n ],\n});\n\n/**\n * Category entity - product categorization.\n */\nexport const CategoryEntity = defineEntity({\n name: 'Category',\n description: 'Product category for organization.',\n schema: 'marketplace',\n map: 'category',\n fields: {\n id: field.id(),\n\n name: field.string(),\n slug: field.string(),\n description: field.string({ isOptional: true }),\n\n // Hierarchy\n parentId: field.string({ isOptional: true }),\n path: field.string({ description: 'Full path for hierarchical queries' }),\n level: field.int({ default: 0 }),\n\n // Display\n position: field.int({ default: 0 }),\n imageId: field.string({ isOptional: true }),\n\n // Status\n isActive: field.boolean({ default: true }),\n\n // Timestamps\n createdAt: field.createdAt(),\n updatedAt: field.updatedAt(),\n\n // Relations\n parent: field.belongsTo('Category', ['parentId'], ['id']),\n children: field.hasMany('Category'),\n },\n indexes: [\n index.unique(['slug']),\n index.on(['parentId', 'position']),\n index.on(['path']),\n index.on(['isActive']),\n ],\n});\n"],"mappings":"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"}
|
|
@@ -1,82 +1,83 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as _lssm_lib_schema640 from "@lssm/lib.schema";
|
|
2
2
|
|
|
3
3
|
//#region src/entities/review.d.ts
|
|
4
4
|
/**
|
|
5
5
|
* Review status enum.
|
|
6
6
|
*/
|
|
7
|
-
declare const ReviewStatusEnum:
|
|
7
|
+
declare const ReviewStatusEnum: _lssm_lib_schema640.EntityEnumDef;
|
|
8
8
|
/**
|
|
9
9
|
* Review type enum.
|
|
10
10
|
*/
|
|
11
|
-
declare const ReviewTypeEnum:
|
|
11
|
+
declare const ReviewTypeEnum: _lssm_lib_schema640.EntityEnumDef;
|
|
12
12
|
/**
|
|
13
13
|
* Review entity - customer reviews and ratings.
|
|
14
14
|
*/
|
|
15
|
-
declare const ReviewEntity:
|
|
16
|
-
id:
|
|
17
|
-
type:
|
|
18
|
-
productId:
|
|
19
|
-
storeId:
|
|
20
|
-
orderId:
|
|
21
|
-
orderItemId:
|
|
22
|
-
authorId:
|
|
23
|
-
rating:
|
|
24
|
-
title:
|
|
25
|
-
content:
|
|
26
|
-
isVerifiedPurchase:
|
|
27
|
-
status:
|
|
28
|
-
hasMedia:
|
|
29
|
-
helpfulCount:
|
|
30
|
-
notHelpfulCount:
|
|
31
|
-
moderatedBy:
|
|
32
|
-
moderatedAt:
|
|
33
|
-
moderationNote:
|
|
34
|
-
hasResponse:
|
|
35
|
-
createdAt:
|
|
36
|
-
updatedAt:
|
|
37
|
-
product:
|
|
38
|
-
store:
|
|
39
|
-
responses:
|
|
40
|
-
votes:
|
|
15
|
+
declare const ReviewEntity: _lssm_lib_schema640.EntitySpec<{
|
|
16
|
+
id: _lssm_lib_schema640.EntityScalarField;
|
|
17
|
+
type: _lssm_lib_schema640.EntityEnumField;
|
|
18
|
+
productId: _lssm_lib_schema640.EntityScalarField;
|
|
19
|
+
storeId: _lssm_lib_schema640.EntityScalarField;
|
|
20
|
+
orderId: _lssm_lib_schema640.EntityScalarField;
|
|
21
|
+
orderItemId: _lssm_lib_schema640.EntityScalarField;
|
|
22
|
+
authorId: _lssm_lib_schema640.EntityScalarField;
|
|
23
|
+
rating: _lssm_lib_schema640.EntityScalarField;
|
|
24
|
+
title: _lssm_lib_schema640.EntityScalarField;
|
|
25
|
+
content: _lssm_lib_schema640.EntityScalarField;
|
|
26
|
+
isVerifiedPurchase: _lssm_lib_schema640.EntityScalarField;
|
|
27
|
+
status: _lssm_lib_schema640.EntityEnumField;
|
|
28
|
+
hasMedia: _lssm_lib_schema640.EntityScalarField;
|
|
29
|
+
helpfulCount: _lssm_lib_schema640.EntityScalarField;
|
|
30
|
+
notHelpfulCount: _lssm_lib_schema640.EntityScalarField;
|
|
31
|
+
moderatedBy: _lssm_lib_schema640.EntityScalarField;
|
|
32
|
+
moderatedAt: _lssm_lib_schema640.EntityScalarField;
|
|
33
|
+
moderationNote: _lssm_lib_schema640.EntityScalarField;
|
|
34
|
+
hasResponse: _lssm_lib_schema640.EntityScalarField;
|
|
35
|
+
createdAt: _lssm_lib_schema640.EntityScalarField;
|
|
36
|
+
updatedAt: _lssm_lib_schema640.EntityScalarField;
|
|
37
|
+
product: _lssm_lib_schema640.EntityRelationField;
|
|
38
|
+
store: _lssm_lib_schema640.EntityRelationField;
|
|
39
|
+
responses: _lssm_lib_schema640.EntityRelationField;
|
|
40
|
+
votes: _lssm_lib_schema640.EntityRelationField;
|
|
41
41
|
}>;
|
|
42
42
|
/**
|
|
43
43
|
* Review response entity - seller responses to reviews.
|
|
44
44
|
*/
|
|
45
|
-
declare const ReviewResponseEntity:
|
|
46
|
-
id:
|
|
47
|
-
reviewId:
|
|
48
|
-
authorId:
|
|
49
|
-
content:
|
|
50
|
-
createdAt:
|
|
51
|
-
updatedAt:
|
|
52
|
-
review:
|
|
45
|
+
declare const ReviewResponseEntity: _lssm_lib_schema640.EntitySpec<{
|
|
46
|
+
id: _lssm_lib_schema640.EntityScalarField;
|
|
47
|
+
reviewId: _lssm_lib_schema640.EntityScalarField;
|
|
48
|
+
authorId: _lssm_lib_schema640.EntityScalarField;
|
|
49
|
+
content: _lssm_lib_schema640.EntityScalarField;
|
|
50
|
+
createdAt: _lssm_lib_schema640.EntityScalarField;
|
|
51
|
+
updatedAt: _lssm_lib_schema640.EntityScalarField;
|
|
52
|
+
review: _lssm_lib_schema640.EntityRelationField;
|
|
53
53
|
}>;
|
|
54
54
|
/**
|
|
55
55
|
* Review vote entity - helpfulness votes.
|
|
56
56
|
*/
|
|
57
|
-
declare const ReviewVoteEntity:
|
|
58
|
-
id:
|
|
59
|
-
reviewId:
|
|
60
|
-
userId:
|
|
61
|
-
isHelpful:
|
|
62
|
-
createdAt:
|
|
63
|
-
review:
|
|
57
|
+
declare const ReviewVoteEntity: _lssm_lib_schema640.EntitySpec<{
|
|
58
|
+
id: _lssm_lib_schema640.EntityScalarField;
|
|
59
|
+
reviewId: _lssm_lib_schema640.EntityScalarField;
|
|
60
|
+
userId: _lssm_lib_schema640.EntityScalarField;
|
|
61
|
+
isHelpful: _lssm_lib_schema640.EntityScalarField;
|
|
62
|
+
createdAt: _lssm_lib_schema640.EntityScalarField;
|
|
63
|
+
review: _lssm_lib_schema640.EntityRelationField;
|
|
64
64
|
}>;
|
|
65
65
|
/**
|
|
66
66
|
* Review report entity - flagged reviews.
|
|
67
67
|
*/
|
|
68
|
-
declare const ReviewReportEntity:
|
|
69
|
-
id:
|
|
70
|
-
reviewId:
|
|
71
|
-
reporterId:
|
|
72
|
-
reason:
|
|
73
|
-
details:
|
|
74
|
-
status:
|
|
75
|
-
resolvedBy:
|
|
76
|
-
resolvedAt:
|
|
77
|
-
resolution:
|
|
78
|
-
createdAt:
|
|
79
|
-
review:
|
|
68
|
+
declare const ReviewReportEntity: _lssm_lib_schema640.EntitySpec<{
|
|
69
|
+
id: _lssm_lib_schema640.EntityScalarField;
|
|
70
|
+
reviewId: _lssm_lib_schema640.EntityScalarField;
|
|
71
|
+
reporterId: _lssm_lib_schema640.EntityScalarField;
|
|
72
|
+
reason: _lssm_lib_schema640.EntityScalarField;
|
|
73
|
+
details: _lssm_lib_schema640.EntityScalarField;
|
|
74
|
+
status: _lssm_lib_schema640.EntityScalarField;
|
|
75
|
+
resolvedBy: _lssm_lib_schema640.EntityScalarField;
|
|
76
|
+
resolvedAt: _lssm_lib_schema640.EntityScalarField;
|
|
77
|
+
resolution: _lssm_lib_schema640.EntityScalarField;
|
|
78
|
+
createdAt: _lssm_lib_schema640.EntityScalarField;
|
|
79
|
+
review: _lssm_lib_schema640.EntityRelationField;
|
|
80
80
|
}>;
|
|
81
81
|
//#endregion
|
|
82
|
-
export { ReviewEntity, ReviewReportEntity, ReviewResponseEntity, ReviewStatusEnum, ReviewTypeEnum, ReviewVoteEntity };
|
|
82
|
+
export { ReviewEntity, ReviewReportEntity, ReviewResponseEntity, ReviewStatusEnum, ReviewTypeEnum, ReviewVoteEntity };
|
|
83
|
+
//# sourceMappingURL=review.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"review.d.ts","names":[],"sources":["../../src/entities/review.ts"],"sourcesContent":[],"mappings":";;;;;;AAKa,cAAA,gBAKX,EAAA,mBAAA,CAL2B,aAK3B;AAKF;AAUA;;cAVa,gBAKX,mBAAA,CALyB;;;;cAUd,kCAAY;MAgEvB,mBAAA,CAAA;;;;;;;;;;;;;;;;;;;kDAhEuB;EAAA,SAAA,uCAAA;EAqEZ,OAAA,yCAyBX;EAAA,KAAA,yCAAA;;;;;;;cAzBW,oBAAoB,sBAAA,UAAA,CAAA;EAAA,EAAA,EAyB/B,mBAAA,CAAA,iBAzB+B;EA8BpB,QAAA,uCAoBX;EAAA,QAAA,uCAAA;;;;;;;;AAKF;AA6BE,cAtDW,gBAsDX,sBAtD2B,UAsD3B,CAAA;MAlCA,mBAAA,CAAA;;;;;;;;;;cAKW,kBAAkB,sBAAA,UAAA,CAAA;EAAA,EAAA,EA6B7B,mBAAA,CAAA,iBA7B6B"}
|
package/dist/entities/review.js
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import "../libs/schema/dist/index.js";
|
|
1
|
+
import { L5, Z5, _5, b5 } from "../libs/schema/dist/index.js";
|
|
3
2
|
|
|
4
3
|
//#region src/entities/review.ts
|
|
5
4
|
/**
|
|
6
5
|
* Review status enum.
|
|
7
6
|
*/
|
|
8
|
-
const ReviewStatusEnum =
|
|
7
|
+
const ReviewStatusEnum = Z5({
|
|
9
8
|
name: "ReviewStatus",
|
|
10
9
|
values: [
|
|
11
10
|
"PENDING",
|
|
@@ -19,7 +18,7 @@ const ReviewStatusEnum = defineEntityEnum({
|
|
|
19
18
|
/**
|
|
20
19
|
* Review type enum.
|
|
21
20
|
*/
|
|
22
|
-
const ReviewTypeEnum =
|
|
21
|
+
const ReviewTypeEnum = Z5({
|
|
23
22
|
name: "ReviewType",
|
|
24
23
|
values: [
|
|
25
24
|
"PRODUCT",
|
|
@@ -32,121 +31,122 @@ const ReviewTypeEnum = defineEntityEnum({
|
|
|
32
31
|
/**
|
|
33
32
|
* Review entity - customer reviews and ratings.
|
|
34
33
|
*/
|
|
35
|
-
const ReviewEntity =
|
|
34
|
+
const ReviewEntity = L5({
|
|
36
35
|
name: "Review",
|
|
37
36
|
description: "A customer review on the marketplace.",
|
|
38
37
|
schema: "marketplace",
|
|
39
38
|
map: "review",
|
|
40
39
|
fields: {
|
|
41
|
-
id:
|
|
42
|
-
type:
|
|
43
|
-
productId:
|
|
44
|
-
storeId:
|
|
45
|
-
orderId:
|
|
46
|
-
orderItemId:
|
|
47
|
-
authorId:
|
|
48
|
-
rating:
|
|
49
|
-
title:
|
|
50
|
-
content:
|
|
51
|
-
isVerifiedPurchase:
|
|
52
|
-
status:
|
|
53
|
-
hasMedia:
|
|
54
|
-
helpfulCount:
|
|
55
|
-
notHelpfulCount:
|
|
56
|
-
moderatedBy:
|
|
57
|
-
moderatedAt:
|
|
58
|
-
moderationNote:
|
|
59
|
-
hasResponse:
|
|
60
|
-
createdAt:
|
|
61
|
-
updatedAt:
|
|
62
|
-
product:
|
|
63
|
-
store:
|
|
64
|
-
responses:
|
|
65
|
-
votes:
|
|
40
|
+
id: _5.id({ description: "Unique review ID" }),
|
|
41
|
+
type: _5.enum("ReviewType", { default: "PRODUCT" }),
|
|
42
|
+
productId: _5.string({ isOptional: true }),
|
|
43
|
+
storeId: _5.string({ isOptional: true }),
|
|
44
|
+
orderId: _5.string({ isOptional: true }),
|
|
45
|
+
orderItemId: _5.string({ isOptional: true }),
|
|
46
|
+
authorId: _5.foreignKey({ description: "Reviewer user ID" }),
|
|
47
|
+
rating: _5.int({ description: "Rating 1-5" }),
|
|
48
|
+
title: _5.string({ isOptional: true }),
|
|
49
|
+
content: _5.string({ isOptional: true }),
|
|
50
|
+
isVerifiedPurchase: _5.boolean({ default: false }),
|
|
51
|
+
status: _5.enum("ReviewStatus", { default: "PENDING" }),
|
|
52
|
+
hasMedia: _5.boolean({ default: false }),
|
|
53
|
+
helpfulCount: _5.int({ default: 0 }),
|
|
54
|
+
notHelpfulCount: _5.int({ default: 0 }),
|
|
55
|
+
moderatedBy: _5.string({ isOptional: true }),
|
|
56
|
+
moderatedAt: _5.dateTime({ isOptional: true }),
|
|
57
|
+
moderationNote: _5.string({ isOptional: true }),
|
|
58
|
+
hasResponse: _5.boolean({ default: false }),
|
|
59
|
+
createdAt: _5.createdAt(),
|
|
60
|
+
updatedAt: _5.updatedAt(),
|
|
61
|
+
product: _5.belongsTo("Product", ["productId"], ["id"]),
|
|
62
|
+
store: _5.belongsTo("Store", ["storeId"], ["id"]),
|
|
63
|
+
responses: _5.hasMany("ReviewResponse"),
|
|
64
|
+
votes: _5.hasMany("ReviewVote")
|
|
66
65
|
},
|
|
67
66
|
indexes: [
|
|
68
|
-
|
|
67
|
+
b5.on([
|
|
69
68
|
"productId",
|
|
70
69
|
"status",
|
|
71
70
|
"createdAt"
|
|
72
71
|
]),
|
|
73
|
-
|
|
72
|
+
b5.on([
|
|
74
73
|
"storeId",
|
|
75
74
|
"status",
|
|
76
75
|
"createdAt"
|
|
77
76
|
]),
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
77
|
+
b5.on(["authorId"]),
|
|
78
|
+
b5.on(["orderId"]),
|
|
79
|
+
b5.on(["status"]),
|
|
80
|
+
b5.on(["rating"]),
|
|
81
|
+
b5.on(["isVerifiedPurchase", "status"])
|
|
83
82
|
],
|
|
84
83
|
enums: [ReviewStatusEnum, ReviewTypeEnum]
|
|
85
84
|
});
|
|
86
85
|
/**
|
|
87
86
|
* Review response entity - seller responses to reviews.
|
|
88
87
|
*/
|
|
89
|
-
const ReviewResponseEntity =
|
|
88
|
+
const ReviewResponseEntity = L5({
|
|
90
89
|
name: "ReviewResponse",
|
|
91
90
|
description: "A seller response to a review.",
|
|
92
91
|
schema: "marketplace",
|
|
93
92
|
map: "review_response",
|
|
94
93
|
fields: {
|
|
95
|
-
id:
|
|
96
|
-
reviewId:
|
|
97
|
-
authorId:
|
|
98
|
-
content:
|
|
99
|
-
createdAt:
|
|
100
|
-
updatedAt:
|
|
101
|
-
review:
|
|
94
|
+
id: _5.id(),
|
|
95
|
+
reviewId: _5.foreignKey(),
|
|
96
|
+
authorId: _5.foreignKey(),
|
|
97
|
+
content: _5.string(),
|
|
98
|
+
createdAt: _5.createdAt(),
|
|
99
|
+
updatedAt: _5.updatedAt(),
|
|
100
|
+
review: _5.belongsTo("Review", ["reviewId"], ["id"], { onDelete: "Cascade" })
|
|
102
101
|
},
|
|
103
|
-
indexes: [
|
|
102
|
+
indexes: [b5.on(["reviewId"]), b5.on(["authorId"])]
|
|
104
103
|
});
|
|
105
104
|
/**
|
|
106
105
|
* Review vote entity - helpfulness votes.
|
|
107
106
|
*/
|
|
108
|
-
const ReviewVoteEntity =
|
|
107
|
+
const ReviewVoteEntity = L5({
|
|
109
108
|
name: "ReviewVote",
|
|
110
109
|
description: "A helpfulness vote on a review.",
|
|
111
110
|
schema: "marketplace",
|
|
112
111
|
map: "review_vote",
|
|
113
112
|
fields: {
|
|
114
|
-
id:
|
|
115
|
-
reviewId:
|
|
116
|
-
userId:
|
|
117
|
-
isHelpful:
|
|
118
|
-
createdAt:
|
|
119
|
-
review:
|
|
113
|
+
id: _5.id(),
|
|
114
|
+
reviewId: _5.foreignKey(),
|
|
115
|
+
userId: _5.foreignKey(),
|
|
116
|
+
isHelpful: _5.boolean(),
|
|
117
|
+
createdAt: _5.createdAt(),
|
|
118
|
+
review: _5.belongsTo("Review", ["reviewId"], ["id"], { onDelete: "Cascade" })
|
|
120
119
|
},
|
|
121
|
-
indexes: [
|
|
120
|
+
indexes: [b5.unique(["reviewId", "userId"]), b5.on(["userId"])]
|
|
122
121
|
});
|
|
123
122
|
/**
|
|
124
123
|
* Review report entity - flagged reviews.
|
|
125
124
|
*/
|
|
126
|
-
const ReviewReportEntity =
|
|
125
|
+
const ReviewReportEntity = L5({
|
|
127
126
|
name: "ReviewReport",
|
|
128
127
|
description: "A report/flag on a review.",
|
|
129
128
|
schema: "marketplace",
|
|
130
129
|
map: "review_report",
|
|
131
130
|
fields: {
|
|
132
|
-
id:
|
|
133
|
-
reviewId:
|
|
134
|
-
reporterId:
|
|
135
|
-
reason:
|
|
136
|
-
details:
|
|
137
|
-
status:
|
|
138
|
-
resolvedBy:
|
|
139
|
-
resolvedAt:
|
|
140
|
-
resolution:
|
|
141
|
-
createdAt:
|
|
142
|
-
review:
|
|
131
|
+
id: _5.id(),
|
|
132
|
+
reviewId: _5.foreignKey(),
|
|
133
|
+
reporterId: _5.foreignKey(),
|
|
134
|
+
reason: _5.string({ description: "Report reason category" }),
|
|
135
|
+
details: _5.string({ isOptional: true }),
|
|
136
|
+
status: _5.string({ default: "\"PENDING\"" }),
|
|
137
|
+
resolvedBy: _5.string({ isOptional: true }),
|
|
138
|
+
resolvedAt: _5.dateTime({ isOptional: true }),
|
|
139
|
+
resolution: _5.string({ isOptional: true }),
|
|
140
|
+
createdAt: _5.createdAt(),
|
|
141
|
+
review: _5.belongsTo("Review", ["reviewId"], ["id"])
|
|
143
142
|
},
|
|
144
143
|
indexes: [
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
144
|
+
b5.on(["reviewId"]),
|
|
145
|
+
b5.on(["status"]),
|
|
146
|
+
b5.on(["reporterId"])
|
|
148
147
|
]
|
|
149
148
|
});
|
|
150
149
|
|
|
151
150
|
//#endregion
|
|
152
|
-
export { ReviewEntity, ReviewReportEntity, ReviewResponseEntity, ReviewStatusEnum, ReviewTypeEnum, ReviewVoteEntity };
|
|
151
|
+
export { ReviewEntity, ReviewReportEntity, ReviewResponseEntity, ReviewStatusEnum, ReviewTypeEnum, ReviewVoteEntity };
|
|
152
|
+
//# sourceMappingURL=review.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"review.js","names":["defineEntityEnum","defineEntity","field","index"],"sources":["../../src/entities/review.ts"],"sourcesContent":["import { defineEntity, defineEntityEnum, field, index } from '@lssm/lib.schema';\n\n/**\n * Review status enum.\n */\nexport const ReviewStatusEnum = defineEntityEnum({\n name: 'ReviewStatus',\n values: ['PENDING', 'APPROVED', 'REJECTED', 'FLAGGED'] as const,\n schema: 'marketplace',\n description: 'Status of a review.',\n});\n\n/**\n * Review type enum.\n */\nexport const ReviewTypeEnum = defineEntityEnum({\n name: 'ReviewType',\n values: ['PRODUCT', 'STORE', 'ORDER'] as const,\n schema: 'marketplace',\n description: 'Type of review.',\n});\n\n/**\n * Review entity - customer reviews and ratings.\n */\nexport const ReviewEntity = defineEntity({\n name: 'Review',\n description: 'A customer review on the marketplace.',\n schema: 'marketplace',\n map: 'review',\n fields: {\n id: field.id({ description: 'Unique review ID' }),\n\n // Type and target\n type: field.enum('ReviewType', { default: 'PRODUCT' }),\n productId: field.string({ isOptional: true }),\n storeId: field.string({ isOptional: true }),\n orderId: field.string({ isOptional: true }),\n orderItemId: field.string({ isOptional: true }),\n\n // Author\n authorId: field.foreignKey({ description: 'Reviewer user ID' }),\n\n // Content\n rating: field.int({ description: 'Rating 1-5' }),\n title: field.string({ isOptional: true }),\n content: field.string({ isOptional: true }),\n\n // Verification\n isVerifiedPurchase: field.boolean({ default: false }),\n\n // Status\n status: field.enum('ReviewStatus', { default: 'PENDING' }),\n\n // Media (using file attachments)\n hasMedia: field.boolean({ default: false }),\n\n // Helpfulness\n helpfulCount: field.int({ default: 0 }),\n notHelpfulCount: field.int({ default: 0 }),\n\n // Moderation\n moderatedBy: field.string({ isOptional: true }),\n moderatedAt: field.dateTime({ isOptional: true }),\n moderationNote: field.string({ isOptional: true }),\n\n // Response\n hasResponse: field.boolean({ default: false }),\n\n // Timestamps\n createdAt: field.createdAt(),\n updatedAt: field.updatedAt(),\n\n // Relations\n product: field.belongsTo('Product', ['productId'], ['id']),\n store: field.belongsTo('Store', ['storeId'], ['id']),\n responses: field.hasMany('ReviewResponse'),\n votes: field.hasMany('ReviewVote'),\n },\n indexes: [\n index.on(['productId', 'status', 'createdAt']),\n index.on(['storeId', 'status', 'createdAt']),\n index.on(['authorId']),\n index.on(['orderId']),\n index.on(['status']),\n index.on(['rating']),\n index.on(['isVerifiedPurchase', 'status']),\n ],\n enums: [ReviewStatusEnum, ReviewTypeEnum],\n});\n\n/**\n * Review response entity - seller responses to reviews.\n */\nexport const ReviewResponseEntity = defineEntity({\n name: 'ReviewResponse',\n description: 'A seller response to a review.',\n schema: 'marketplace',\n map: 'review_response',\n fields: {\n id: field.id(),\n reviewId: field.foreignKey(),\n\n // Author (usually store owner)\n authorId: field.foreignKey(),\n\n // Content\n content: field.string(),\n\n // Timestamps\n createdAt: field.createdAt(),\n updatedAt: field.updatedAt(),\n\n // Relations\n review: field.belongsTo('Review', ['reviewId'], ['id'], {\n onDelete: 'Cascade',\n }),\n },\n indexes: [index.on(['reviewId']), index.on(['authorId'])],\n});\n\n/**\n * Review vote entity - helpfulness votes.\n */\nexport const ReviewVoteEntity = defineEntity({\n name: 'ReviewVote',\n description: 'A helpfulness vote on a review.',\n schema: 'marketplace',\n map: 'review_vote',\n fields: {\n id: field.id(),\n reviewId: field.foreignKey(),\n userId: field.foreignKey(),\n\n isHelpful: field.boolean(),\n\n createdAt: field.createdAt(),\n\n // Relations\n review: field.belongsTo('Review', ['reviewId'], ['id'], {\n onDelete: 'Cascade',\n }),\n },\n indexes: [index.unique(['reviewId', 'userId']), index.on(['userId'])],\n});\n\n/**\n * Review report entity - flagged reviews.\n */\nexport const ReviewReportEntity = defineEntity({\n name: 'ReviewReport',\n description: 'A report/flag on a review.',\n schema: 'marketplace',\n map: 'review_report',\n fields: {\n id: field.id(),\n reviewId: field.foreignKey(),\n reporterId: field.foreignKey(),\n\n reason: field.string({ description: 'Report reason category' }),\n details: field.string({ isOptional: true }),\n\n // Status\n status: field.string({ default: '\"PENDING\"' }),\n resolvedBy: field.string({ isOptional: true }),\n resolvedAt: field.dateTime({ isOptional: true }),\n resolution: field.string({ isOptional: true }),\n\n createdAt: field.createdAt(),\n\n // Relations\n review: field.belongsTo('Review', ['reviewId'], ['id']),\n },\n indexes: [\n index.on(['reviewId']),\n index.on(['status']),\n index.on(['reporterId']),\n ],\n});\n"],"mappings":"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"}
|