@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.
Files changed (277) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +3 -0
  3. package/dist/docs/marketplace.docblock.js +2 -1
  4. package/dist/docs/marketplace.docblock.js.map +1 -0
  5. package/dist/entities/index.d.ts +298 -297
  6. package/dist/entities/index.d.ts.map +1 -0
  7. package/dist/entities/index.js +2 -1
  8. package/dist/entities/index.js.map +1 -0
  9. package/dist/entities/order.d.ts +80 -79
  10. package/dist/entities/order.d.ts.map +1 -0
  11. package/dist/entities/order.js +89 -89
  12. package/dist/entities/order.js.map +1 -0
  13. package/dist/entities/payout.d.ts +67 -66
  14. package/dist/entities/payout.d.ts.map +1 -0
  15. package/dist/entities/payout.js +74 -74
  16. package/dist/entities/payout.js.map +1 -0
  17. package/dist/entities/product.d.ts +72 -71
  18. package/dist/entities/product.d.ts.map +1 -0
  19. package/dist/entities/product.js +86 -86
  20. package/dist/entities/product.js.map +1 -0
  21. package/dist/entities/review.d.ts +58 -57
  22. package/dist/entities/review.d.ts.map +1 -0
  23. package/dist/entities/review.js +70 -70
  24. package/dist/entities/review.js.map +1 -0
  25. package/dist/entities/store.d.ts +43 -42
  26. package/dist/entities/store.d.ts.map +1 -0
  27. package/dist/entities/store.js +49 -49
  28. package/dist/entities/store.js.map +1 -0
  29. package/dist/example.d.ts +2 -1
  30. package/dist/example.d.ts.map +1 -0
  31. package/dist/example.js +2 -1
  32. package/dist/example.js.map +1 -0
  33. package/dist/libs/contracts/dist/capabilities/openbanking.js +2 -1
  34. package/dist/libs/contracts/dist/capabilities/openbanking.js.map +1 -0
  35. package/dist/libs/contracts/dist/contract-registry/schemas.js +2 -1
  36. package/dist/libs/contracts/dist/contract-registry/schemas.js.map +1 -0
  37. package/dist/libs/contracts/dist/docs/accessibility_wcag_compliance_specs.docblock.js +2 -1
  38. package/dist/libs/contracts/dist/docs/accessibility_wcag_compliance_specs.docblock.js.map +1 -0
  39. package/dist/libs/contracts/dist/docs/index.js +2 -6
  40. package/dist/libs/contracts/dist/docs/meta.docs.js +30 -0
  41. package/dist/libs/contracts/dist/docs/meta.docs.js.map +1 -0
  42. package/dist/libs/contracts/dist/docs/presentations.js +2 -1
  43. package/dist/libs/contracts/dist/docs/presentations.js.map +1 -0
  44. package/dist/libs/contracts/dist/docs/registry.js +2 -1
  45. package/dist/libs/contracts/dist/docs/registry.js.map +1 -0
  46. package/dist/libs/contracts/dist/docs/tech/auth/better-auth-nextjs.docblock.js +2 -1
  47. package/dist/libs/contracts/dist/docs/tech/auth/better-auth-nextjs.docblock.js.map +1 -0
  48. package/dist/libs/contracts/dist/docs/tech/contracts/openapi-export.docblock.js +2 -1
  49. package/dist/libs/contracts/dist/docs/tech/contracts/openapi-export.docblock.js.map +1 -0
  50. package/dist/libs/contracts/dist/docs/tech/lifecycle-stage-system.docblock.js +2 -1
  51. package/dist/libs/contracts/dist/docs/tech/lifecycle-stage-system.docblock.js.map +1 -0
  52. package/dist/libs/contracts/dist/docs/tech/llm/llm-integration.docblock.js +2 -1
  53. package/dist/libs/contracts/dist/docs/tech/llm/llm-integration.docblock.js.map +1 -0
  54. package/dist/libs/contracts/dist/docs/tech/mcp-endpoints.docblock.js +2 -1
  55. package/dist/libs/contracts/dist/docs/tech/mcp-endpoints.docblock.js.map +1 -0
  56. package/dist/libs/contracts/dist/docs/tech/presentation-runtime.docblock.js +2 -1
  57. package/dist/libs/contracts/dist/docs/tech/presentation-runtime.docblock.js.map +1 -0
  58. package/dist/libs/contracts/dist/docs/tech/schema/README.docblock.js +2 -1
  59. package/dist/libs/contracts/dist/docs/tech/schema/README.docblock.js.map +1 -0
  60. package/dist/libs/contracts/dist/docs/tech/studio/learning-events.docblock.js +2 -1
  61. package/dist/libs/contracts/dist/docs/tech/studio/learning-events.docblock.js.map +1 -0
  62. package/dist/libs/contracts/dist/docs/tech/studio/learning-journeys.docblock.js +2 -1
  63. package/dist/libs/contracts/dist/docs/tech/studio/learning-journeys.docblock.js.map +1 -0
  64. package/dist/libs/contracts/dist/docs/tech/studio/platform-admin-panel.docblock.js +2 -1
  65. package/dist/libs/contracts/dist/docs/tech/studio/platform-admin-panel.docblock.js.map +1 -0
  66. package/dist/libs/contracts/dist/docs/tech/studio/project-access-teams.docblock.js +2 -1
  67. package/dist/libs/contracts/dist/docs/tech/studio/project-access-teams.docblock.js.map +1 -0
  68. package/dist/libs/contracts/dist/docs/tech/studio/project-routing.docblock.js +2 -1
  69. package/dist/libs/contracts/dist/docs/tech/studio/project-routing.docblock.js.map +1 -0
  70. package/dist/libs/contracts/dist/docs/tech/studio/sandbox-unlogged.docblock.js +2 -1
  71. package/dist/libs/contracts/dist/docs/tech/studio/sandbox-unlogged.docblock.js.map +1 -0
  72. package/dist/libs/contracts/dist/docs/tech/studio/team-invitations.docblock.js +2 -1
  73. package/dist/libs/contracts/dist/docs/tech/studio/team-invitations.docblock.js.map +1 -0
  74. package/dist/libs/contracts/dist/docs/tech/studio/workspace-ops.docblock.js +2 -1
  75. package/dist/libs/contracts/dist/docs/tech/studio/workspace-ops.docblock.js.map +1 -0
  76. package/dist/libs/contracts/dist/docs/tech/studio/workspaces.docblock.js +2 -1
  77. package/dist/libs/contracts/dist/docs/tech/studio/workspaces.docblock.js.map +1 -0
  78. package/dist/libs/contracts/dist/docs/tech/telemetry-ingest.docblock.js +2 -1
  79. package/dist/libs/contracts/dist/docs/tech/telemetry-ingest.docblock.js.map +1 -0
  80. package/dist/libs/contracts/dist/docs/tech/templates/runtime.docblock.js +2 -1
  81. package/dist/libs/contracts/dist/docs/tech/templates/runtime.docblock.js.map +1 -0
  82. package/dist/libs/contracts/dist/docs/tech/vscode-extension.docblock.js +2 -1
  83. package/dist/libs/contracts/dist/docs/tech/vscode-extension.docblock.js.map +1 -0
  84. package/dist/libs/contracts/dist/docs/tech/workflows/overview.docblock.js +2 -1
  85. package/dist/libs/contracts/dist/docs/tech/workflows/overview.docblock.js.map +1 -0
  86. package/dist/libs/contracts/dist/docs/tech-contracts.docs.js +97 -0
  87. package/dist/libs/contracts/dist/docs/tech-contracts.docs.js.map +1 -0
  88. package/dist/libs/contracts/dist/events.js +2 -1
  89. package/dist/libs/contracts/dist/events.js.map +1 -0
  90. package/dist/libs/contracts/dist/index.js +2 -1
  91. package/dist/libs/contracts/dist/integrations/contracts.js +65 -66
  92. package/dist/libs/contracts/dist/integrations/contracts.js.map +1 -0
  93. package/dist/libs/contracts/dist/integrations/openbanking/contracts/accounts.js +31 -32
  94. package/dist/libs/contracts/dist/integrations/openbanking/contracts/accounts.js.map +1 -0
  95. package/dist/libs/contracts/dist/integrations/openbanking/contracts/balances.js +18 -19
  96. package/dist/libs/contracts/dist/integrations/openbanking/contracts/balances.js.map +1 -0
  97. package/dist/libs/contracts/dist/integrations/openbanking/contracts/transactions.js +32 -33
  98. package/dist/libs/contracts/dist/integrations/openbanking/contracts/transactions.js.map +1 -0
  99. package/dist/libs/contracts/dist/integrations/openbanking/models.js +60 -61
  100. package/dist/libs/contracts/dist/integrations/openbanking/models.js.map +1 -0
  101. package/dist/libs/contracts/dist/integrations/openbanking/telemetry.js +2 -1
  102. package/dist/libs/contracts/dist/integrations/openbanking/telemetry.js.map +1 -0
  103. package/dist/libs/contracts/dist/integrations/providers/elevenlabs.js +2 -1
  104. package/dist/libs/contracts/dist/integrations/providers/elevenlabs.js.map +1 -0
  105. package/dist/libs/contracts/dist/integrations/providers/gcs-storage.js +2 -1
  106. package/dist/libs/contracts/dist/integrations/providers/gcs-storage.js.map +1 -0
  107. package/dist/libs/contracts/dist/integrations/providers/gmail.js +2 -1
  108. package/dist/libs/contracts/dist/integrations/providers/gmail.js.map +1 -0
  109. package/dist/libs/contracts/dist/integrations/providers/google-calendar.js +2 -1
  110. package/dist/libs/contracts/dist/integrations/providers/google-calendar.js.map +1 -0
  111. package/dist/libs/contracts/dist/integrations/providers/mistral.js +2 -1
  112. package/dist/libs/contracts/dist/integrations/providers/mistral.js.map +1 -0
  113. package/dist/libs/contracts/dist/integrations/providers/postmark.js +2 -1
  114. package/dist/libs/contracts/dist/integrations/providers/postmark.js.map +1 -0
  115. package/dist/libs/contracts/dist/integrations/providers/powens.js +2 -1
  116. package/dist/libs/contracts/dist/integrations/providers/powens.js.map +1 -0
  117. package/dist/libs/contracts/dist/integrations/providers/qdrant.js +2 -1
  118. package/dist/libs/contracts/dist/integrations/providers/qdrant.js.map +1 -0
  119. package/dist/libs/contracts/dist/integrations/providers/stripe.js +2 -1
  120. package/dist/libs/contracts/dist/integrations/providers/stripe.js.map +1 -0
  121. package/dist/libs/contracts/dist/integrations/providers/twilio-sms.js +2 -1
  122. package/dist/libs/contracts/dist/integrations/providers/twilio-sms.js.map +1 -0
  123. package/dist/libs/contracts/dist/knowledge/contracts.js +44 -45
  124. package/dist/libs/contracts/dist/knowledge/contracts.js.map +1 -0
  125. package/dist/libs/contracts/dist/knowledge/spaces/email-threads.js +2 -1
  126. package/dist/libs/contracts/dist/knowledge/spaces/email-threads.js.map +1 -0
  127. package/dist/libs/contracts/dist/knowledge/spaces/financial-docs.js +2 -1
  128. package/dist/libs/contracts/dist/knowledge/spaces/financial-docs.js.map +1 -0
  129. package/dist/libs/contracts/dist/knowledge/spaces/financial-overview.js +2 -1
  130. package/dist/libs/contracts/dist/knowledge/spaces/financial-overview.js.map +1 -0
  131. package/dist/libs/contracts/dist/knowledge/spaces/product-canon.js +2 -1
  132. package/dist/libs/contracts/dist/knowledge/spaces/product-canon.js.map +1 -0
  133. package/dist/libs/contracts/dist/knowledge/spaces/support-faq.js +2 -1
  134. package/dist/libs/contracts/dist/knowledge/spaces/support-faq.js.map +1 -0
  135. package/dist/libs/contracts/dist/knowledge/spaces/uploaded-docs.js +2 -1
  136. package/dist/libs/contracts/dist/knowledge/spaces/uploaded-docs.js.map +1 -0
  137. package/dist/libs/contracts/dist/llm/exporters.js +2 -1
  138. package/dist/libs/contracts/dist/llm/exporters.js.map +1 -0
  139. package/dist/libs/contracts/dist/onboarding-base.js +22 -23
  140. package/dist/libs/contracts/dist/onboarding-base.js.map +1 -0
  141. package/dist/libs/contracts/dist/ownership.js +4 -2
  142. package/dist/libs/contracts/dist/ownership.js.map +1 -0
  143. package/dist/libs/contracts/dist/presentations.v2.js +2 -1
  144. package/dist/libs/contracts/dist/presentations.v2.js.map +1 -0
  145. package/dist/libs/contracts/dist/regenerator/service.js +2 -1
  146. package/dist/libs/contracts/dist/regenerator/service.js.map +1 -0
  147. package/dist/libs/contracts/dist/schema/dist/index.js +3873 -6
  148. package/dist/libs/contracts/dist/schema/dist/index.js.map +1 -0
  149. package/dist/libs/contracts/dist/spec.js +2 -1
  150. package/dist/libs/contracts/dist/spec.js.map +1 -0
  151. package/dist/libs/schema/dist/index.js +4922 -6
  152. package/dist/libs/schema/dist/index.js.map +1 -0
  153. package/dist/marketplace.feature.d.ts +2 -1
  154. package/dist/marketplace.feature.d.ts.map +1 -0
  155. package/dist/marketplace.feature.js +2 -1
  156. package/dist/marketplace.feature.js.map +1 -0
  157. package/dist/order/order.contracts.d.ts +92 -91
  158. package/dist/order/order.contracts.d.ts.map +1 -0
  159. package/dist/order/order.contracts.js +2 -1
  160. package/dist/order/order.contracts.js.map +1 -0
  161. package/dist/order/order.enum.d.ts +4 -3
  162. package/dist/order/order.enum.d.ts.map +1 -0
  163. package/dist/order/order.enum.js +4 -4
  164. package/dist/order/order.enum.js.map +1 -0
  165. package/dist/order/order.event.d.ts +41 -40
  166. package/dist/order/order.event.d.ts.map +1 -0
  167. package/dist/order/order.event.js +40 -41
  168. package/dist/order/order.event.js.map +1 -0
  169. package/dist/order/order.presentation.d.ts +2 -1
  170. package/dist/order/order.presentation.d.ts.map +1 -0
  171. package/dist/order/order.presentation.js +2 -1
  172. package/dist/order/order.presentation.js.map +1 -0
  173. package/dist/order/order.schema.d.ts +41 -40
  174. package/dist/order/order.schema.d.ts.map +1 -0
  175. package/dist/order/order.schema.js +32 -33
  176. package/dist/order/order.schema.js.map +1 -0
  177. package/dist/payout/payout.contracts.d.ts +26 -25
  178. package/dist/payout/payout.contracts.d.ts.map +1 -0
  179. package/dist/payout/payout.contracts.js +2 -1
  180. package/dist/payout/payout.contracts.js.map +1 -0
  181. package/dist/payout/payout.enum.d.ts +4 -3
  182. package/dist/payout/payout.enum.d.ts.map +1 -0
  183. package/dist/payout/payout.enum.js +4 -4
  184. package/dist/payout/payout.enum.js.map +1 -0
  185. package/dist/payout/payout.event.d.ts +19 -18
  186. package/dist/payout/payout.event.d.ts.map +1 -0
  187. package/dist/payout/payout.event.js +18 -19
  188. package/dist/payout/payout.event.js.map +1 -0
  189. package/dist/payout/payout.presentation.d.ts +2 -1
  190. package/dist/payout/payout.presentation.d.ts.map +1 -0
  191. package/dist/payout/payout.presentation.js +2 -1
  192. package/dist/payout/payout.presentation.js.map +1 -0
  193. package/dist/payout/payout.schema.d.ts +39 -38
  194. package/dist/payout/payout.schema.d.ts.map +1 -0
  195. package/dist/payout/payout.schema.js +23 -24
  196. package/dist/payout/payout.schema.js.map +1 -0
  197. package/dist/product/product.contracts.d.ts +70 -69
  198. package/dist/product/product.contracts.d.ts.map +1 -0
  199. package/dist/product/product.contracts.js +2 -1
  200. package/dist/product/product.contracts.js.map +1 -0
  201. package/dist/product/product.enum.d.ts +4 -3
  202. package/dist/product/product.enum.d.ts.map +1 -0
  203. package/dist/product/product.enum.js +4 -4
  204. package/dist/product/product.enum.js.map +1 -0
  205. package/dist/product/product.event.d.ts +22 -21
  206. package/dist/product/product.event.d.ts.map +1 -0
  207. package/dist/product/product.event.js +21 -22
  208. package/dist/product/product.event.js.map +1 -0
  209. package/dist/product/product.presentation.d.ts +2 -1
  210. package/dist/product/product.presentation.d.ts.map +1 -0
  211. package/dist/product/product.presentation.js +2 -1
  212. package/dist/product/product.presentation.js.map +1 -0
  213. package/dist/product/product.schema.d.ts +54 -53
  214. package/dist/product/product.schema.d.ts.map +1 -0
  215. package/dist/product/product.schema.js +37 -38
  216. package/dist/product/product.schema.js.map +1 -0
  217. package/dist/review/review.contracts.d.ts +61 -60
  218. package/dist/review/review.contracts.d.ts.map +1 -0
  219. package/dist/review/review.contracts.js +2 -1
  220. package/dist/review/review.contracts.js.map +1 -0
  221. package/dist/review/review.enum.d.ts +4 -3
  222. package/dist/review/review.enum.d.ts.map +1 -0
  223. package/dist/review/review.enum.js +4 -4
  224. package/dist/review/review.enum.js.map +1 -0
  225. package/dist/review/review.event.d.ts +16 -15
  226. package/dist/review/review.event.d.ts.map +1 -0
  227. package/dist/review/review.event.js +16 -17
  228. package/dist/review/review.event.js.map +1 -0
  229. package/dist/review/review.presentation.d.ts +2 -1
  230. package/dist/review/review.presentation.d.ts.map +1 -0
  231. package/dist/review/review.presentation.js +2 -1
  232. package/dist/review/review.presentation.js.map +1 -0
  233. package/dist/review/review.schema.d.ts +47 -46
  234. package/dist/review/review.schema.d.ts.map +1 -0
  235. package/dist/review/review.schema.js +32 -33
  236. package/dist/review/review.schema.js.map +1 -0
  237. package/dist/store/store.contracts.d.ts +35 -34
  238. package/dist/store/store.contracts.d.ts.map +1 -0
  239. package/dist/store/store.contracts.js +2 -1
  240. package/dist/store/store.contracts.js.map +1 -0
  241. package/dist/store/store.enum.d.ts +4 -3
  242. package/dist/store/store.enum.d.ts.map +1 -0
  243. package/dist/store/store.enum.js +4 -4
  244. package/dist/store/store.enum.js.map +1 -0
  245. package/dist/store/store.event.d.ts +16 -15
  246. package/dist/store/store.event.d.ts.map +1 -0
  247. package/dist/store/store.event.js +15 -16
  248. package/dist/store/store.event.js.map +1 -0
  249. package/dist/store/store.presentation.d.ts +2 -1
  250. package/dist/store/store.presentation.d.ts.map +1 -0
  251. package/dist/store/store.presentation.js +2 -1
  252. package/dist/store/store.presentation.js.map +1 -0
  253. package/dist/store/store.schema.d.ts +22 -21
  254. package/dist/store/store.schema.d.ts.map +1 -0
  255. package/dist/store/store.schema.js +21 -22
  256. package/dist/store/store.schema.js.map +1 -0
  257. package/package.json +20 -13
  258. package/dist/libs/contracts/dist/docs/PUBLISHING.docblock.js +0 -16
  259. package/dist/libs/contracts/dist/docs/tech/PHASE_1_QUICKSTART.docblock.js +0 -16
  260. package/dist/libs/contracts/dist/docs/tech/PHASE_2_AI_NATIVE_OPERATIONS.docblock.js +0 -16
  261. package/dist/libs/contracts/dist/docs/tech/PHASE_3_AUTO_EVOLUTION.docblock.js +0 -16
  262. package/dist/libs/contracts/dist/docs/tech/PHASE_4_PERSONALIZATION_ENGINE.docblock.js +0 -16
  263. package/dist/libs/contracts/dist/docs/tech/PHASE_5_ZERO_TOUCH_OPERATIONS.docblock.js +0 -16
  264. package/dist/libs/contracts/dist/schema/dist/EnumType.js +0 -2
  265. package/dist/libs/contracts/dist/schema/dist/FieldType.js +0 -49
  266. package/dist/libs/contracts/dist/schema/dist/ScalarTypeEnum.js +0 -236
  267. package/dist/libs/contracts/dist/schema/dist/SchemaModel.js +0 -34
  268. package/dist/libs/contracts/dist/schema/dist/entity/defineEntity.js +0 -1
  269. package/dist/libs/contracts/dist/schema/dist/entity/index.js +0 -2
  270. package/dist/libs/contracts/dist/schema/dist/entity/types.js +0 -1
  271. package/dist/libs/schema/dist/EnumType.js +0 -56
  272. package/dist/libs/schema/dist/FieldType.js +0 -49
  273. package/dist/libs/schema/dist/ScalarTypeEnum.js +0 -236
  274. package/dist/libs/schema/dist/SchemaModel.js +0 -39
  275. package/dist/libs/schema/dist/entity/defineEntity.js +0 -236
  276. package/dist/libs/schema/dist/entity/index.js +0 -2
  277. package/dist/libs/schema/dist/entity/types.js +0 -1
@@ -1,11 +1,10 @@
1
- import { defineEntity, defineEntityEnum, field, index } from "../libs/schema/dist/entity/defineEntity.js";
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 = defineEntityEnum({
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 = defineEntityEnum({
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 = defineEntity({
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: field.id({ description: "Unique product ID" }),
45
- storeId: field.foreignKey(),
46
- name: field.string({ description: "Product name" }),
47
- slug: field.string({ description: "URL-friendly identifier" }),
48
- description: field.string({ isOptional: true }),
49
- shortDescription: field.string({ isOptional: true }),
50
- status: field.enum("ProductStatus", { default: "DRAFT" }),
51
- type: field.enum("ProductType", { default: "PHYSICAL" }),
52
- price: field.decimal({ description: "Base price" }),
53
- compareAtPrice: field.decimal({
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: field.string({ default: "\"USD\"" }),
58
- sku: field.string({ isOptional: true }),
59
- barcode: field.string({ isOptional: true }),
60
- quantity: field.int({ default: 0 }),
61
- trackInventory: field.boolean({ default: true }),
62
- allowBackorder: field.boolean({ default: false }),
63
- lowStockThreshold: field.int({ default: 5 }),
64
- weight: field.decimal({ isOptional: true }),
65
- weightUnit: field.string({ default: "\"kg\"" }),
66
- categoryId: field.string({ isOptional: true }),
67
- tags: field.string({ isArray: true }),
68
- primaryImageId: field.string({ isOptional: true }),
69
- seoTitle: field.string({ isOptional: true }),
70
- seoDescription: field.string({ isOptional: true }),
71
- attributes: field.json({
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: field.int({ default: 0 }),
76
- averageRating: field.decimal({ default: 0 }),
77
- totalSold: field.int({ default: 0 }),
78
- createdAt: field.createdAt(),
79
- updatedAt: field.updatedAt(),
80
- publishedAt: field.dateTime({ isOptional: true }),
81
- store: field.belongsTo("Store", ["storeId"], ["id"]),
82
- variants: field.hasMany("ProductVariant"),
83
- orderItems: field.hasMany("OrderItem"),
84
- reviews: field.hasMany("Review")
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
- index.unique(["storeId", "slug"]),
88
- index.on(["storeId", "status"]),
89
- index.on(["status", "publishedAt"]),
90
- index.on(["categoryId", "status"]),
91
- index.on(["averageRating"]),
92
- index.on(["totalSold"]),
93
- index.on(["price"])
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 = defineEntity({
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: field.id(),
107
- productId: field.foreignKey(),
108
- name: field.string({ description: "Variant name (e.g., \"Large / Blue\")" }),
109
- options: field.json({ description: "Variant options (e.g., {size: \"L\", color: \"Blue\"})" }),
110
- price: field.decimal({ description: "Variant-specific price" }),
111
- compareAtPrice: field.decimal({ isOptional: true }),
112
- sku: field.string({ isOptional: true }),
113
- barcode: field.string({ isOptional: true }),
114
- quantity: field.int({ default: 0 }),
115
- imageId: field.string({ isOptional: true }),
116
- isActive: field.boolean({ default: true }),
117
- position: field.int({ default: 0 }),
118
- createdAt: field.createdAt(),
119
- updatedAt: field.updatedAt(),
120
- product: field.belongsTo("Product", ["productId"], ["id"], { onDelete: "Cascade" })
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
- index.on(["productId", "sku"]),
124
- index.on(["productId", "position"]),
125
- index.on(["barcode"])
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 = defineEntity({
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: field.id(),
138
- name: field.string(),
139
- slug: field.string(),
140
- description: field.string({ isOptional: true }),
141
- parentId: field.string({ isOptional: true }),
142
- path: field.string({ description: "Full path for hierarchical queries" }),
143
- level: field.int({ default: 0 }),
144
- position: field.int({ default: 0 }),
145
- imageId: field.string({ isOptional: true }),
146
- isActive: field.boolean({ default: true }),
147
- createdAt: field.createdAt(),
148
- updatedAt: field.updatedAt(),
149
- parent: field.belongsTo("Category", ["parentId"], ["id"]),
150
- children: field.hasMany("Category")
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
- index.unique(["slug"]),
154
- index.on(["parentId", "position"]),
155
- index.on(["path"]),
156
- index.on(["isActive"])
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 _lssm_lib_schema741 from "@lssm/lib.schema";
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: _lssm_lib_schema741.EntityEnumDef;
7
+ declare const ReviewStatusEnum: _lssm_lib_schema640.EntityEnumDef;
8
8
  /**
9
9
  * Review type enum.
10
10
  */
11
- declare const ReviewTypeEnum: _lssm_lib_schema741.EntityEnumDef;
11
+ declare const ReviewTypeEnum: _lssm_lib_schema640.EntityEnumDef;
12
12
  /**
13
13
  * Review entity - customer reviews and ratings.
14
14
  */
15
- declare const ReviewEntity: _lssm_lib_schema741.EntitySpec<{
16
- id: _lssm_lib_schema741.EntityScalarField;
17
- type: _lssm_lib_schema741.EntityEnumField;
18
- productId: _lssm_lib_schema741.EntityScalarField;
19
- storeId: _lssm_lib_schema741.EntityScalarField;
20
- orderId: _lssm_lib_schema741.EntityScalarField;
21
- orderItemId: _lssm_lib_schema741.EntityScalarField;
22
- authorId: _lssm_lib_schema741.EntityScalarField;
23
- rating: _lssm_lib_schema741.EntityScalarField;
24
- title: _lssm_lib_schema741.EntityScalarField;
25
- content: _lssm_lib_schema741.EntityScalarField;
26
- isVerifiedPurchase: _lssm_lib_schema741.EntityScalarField;
27
- status: _lssm_lib_schema741.EntityEnumField;
28
- hasMedia: _lssm_lib_schema741.EntityScalarField;
29
- helpfulCount: _lssm_lib_schema741.EntityScalarField;
30
- notHelpfulCount: _lssm_lib_schema741.EntityScalarField;
31
- moderatedBy: _lssm_lib_schema741.EntityScalarField;
32
- moderatedAt: _lssm_lib_schema741.EntityScalarField;
33
- moderationNote: _lssm_lib_schema741.EntityScalarField;
34
- hasResponse: _lssm_lib_schema741.EntityScalarField;
35
- createdAt: _lssm_lib_schema741.EntityScalarField;
36
- updatedAt: _lssm_lib_schema741.EntityScalarField;
37
- product: _lssm_lib_schema741.EntityRelationField;
38
- store: _lssm_lib_schema741.EntityRelationField;
39
- responses: _lssm_lib_schema741.EntityRelationField;
40
- votes: _lssm_lib_schema741.EntityRelationField;
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: _lssm_lib_schema741.EntitySpec<{
46
- id: _lssm_lib_schema741.EntityScalarField;
47
- reviewId: _lssm_lib_schema741.EntityScalarField;
48
- authorId: _lssm_lib_schema741.EntityScalarField;
49
- content: _lssm_lib_schema741.EntityScalarField;
50
- createdAt: _lssm_lib_schema741.EntityScalarField;
51
- updatedAt: _lssm_lib_schema741.EntityScalarField;
52
- review: _lssm_lib_schema741.EntityRelationField;
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: _lssm_lib_schema741.EntitySpec<{
58
- id: _lssm_lib_schema741.EntityScalarField;
59
- reviewId: _lssm_lib_schema741.EntityScalarField;
60
- userId: _lssm_lib_schema741.EntityScalarField;
61
- isHelpful: _lssm_lib_schema741.EntityScalarField;
62
- createdAt: _lssm_lib_schema741.EntityScalarField;
63
- review: _lssm_lib_schema741.EntityRelationField;
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: _lssm_lib_schema741.EntitySpec<{
69
- id: _lssm_lib_schema741.EntityScalarField;
70
- reviewId: _lssm_lib_schema741.EntityScalarField;
71
- reporterId: _lssm_lib_schema741.EntityScalarField;
72
- reason: _lssm_lib_schema741.EntityScalarField;
73
- details: _lssm_lib_schema741.EntityScalarField;
74
- status: _lssm_lib_schema741.EntityScalarField;
75
- resolvedBy: _lssm_lib_schema741.EntityScalarField;
76
- resolvedAt: _lssm_lib_schema741.EntityScalarField;
77
- resolution: _lssm_lib_schema741.EntityScalarField;
78
- createdAt: _lssm_lib_schema741.EntityScalarField;
79
- review: _lssm_lib_schema741.EntityRelationField;
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"}
@@ -1,11 +1,10 @@
1
- import { defineEntity, defineEntityEnum, field, index } from "../libs/schema/dist/entity/defineEntity.js";
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 = defineEntityEnum({
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 = defineEntityEnum({
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 = defineEntity({
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: field.id({ description: "Unique review ID" }),
42
- type: field.enum("ReviewType", { default: "PRODUCT" }),
43
- productId: field.string({ isOptional: true }),
44
- storeId: field.string({ isOptional: true }),
45
- orderId: field.string({ isOptional: true }),
46
- orderItemId: field.string({ isOptional: true }),
47
- authorId: field.foreignKey({ description: "Reviewer user ID" }),
48
- rating: field.int({ description: "Rating 1-5" }),
49
- title: field.string({ isOptional: true }),
50
- content: field.string({ isOptional: true }),
51
- isVerifiedPurchase: field.boolean({ default: false }),
52
- status: field.enum("ReviewStatus", { default: "PENDING" }),
53
- hasMedia: field.boolean({ default: false }),
54
- helpfulCount: field.int({ default: 0 }),
55
- notHelpfulCount: field.int({ default: 0 }),
56
- moderatedBy: field.string({ isOptional: true }),
57
- moderatedAt: field.dateTime({ isOptional: true }),
58
- moderationNote: field.string({ isOptional: true }),
59
- hasResponse: field.boolean({ default: false }),
60
- createdAt: field.createdAt(),
61
- updatedAt: field.updatedAt(),
62
- product: field.belongsTo("Product", ["productId"], ["id"]),
63
- store: field.belongsTo("Store", ["storeId"], ["id"]),
64
- responses: field.hasMany("ReviewResponse"),
65
- votes: field.hasMany("ReviewVote")
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
- index.on([
67
+ b5.on([
69
68
  "productId",
70
69
  "status",
71
70
  "createdAt"
72
71
  ]),
73
- index.on([
72
+ b5.on([
74
73
  "storeId",
75
74
  "status",
76
75
  "createdAt"
77
76
  ]),
78
- index.on(["authorId"]),
79
- index.on(["orderId"]),
80
- index.on(["status"]),
81
- index.on(["rating"]),
82
- index.on(["isVerifiedPurchase", "status"])
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 = defineEntity({
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: field.id(),
96
- reviewId: field.foreignKey(),
97
- authorId: field.foreignKey(),
98
- content: field.string(),
99
- createdAt: field.createdAt(),
100
- updatedAt: field.updatedAt(),
101
- review: field.belongsTo("Review", ["reviewId"], ["id"], { onDelete: "Cascade" })
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: [index.on(["reviewId"]), index.on(["authorId"])]
102
+ indexes: [b5.on(["reviewId"]), b5.on(["authorId"])]
104
103
  });
105
104
  /**
106
105
  * Review vote entity - helpfulness votes.
107
106
  */
108
- const ReviewVoteEntity = defineEntity({
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: field.id(),
115
- reviewId: field.foreignKey(),
116
- userId: field.foreignKey(),
117
- isHelpful: field.boolean(),
118
- createdAt: field.createdAt(),
119
- review: field.belongsTo("Review", ["reviewId"], ["id"], { onDelete: "Cascade" })
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: [index.unique(["reviewId", "userId"]), index.on(["userId"])]
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 = defineEntity({
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: field.id(),
133
- reviewId: field.foreignKey(),
134
- reporterId: field.foreignKey(),
135
- reason: field.string({ description: "Report reason category" }),
136
- details: field.string({ isOptional: true }),
137
- status: field.string({ default: "\"PENDING\"" }),
138
- resolvedBy: field.string({ isOptional: true }),
139
- resolvedAt: field.dateTime({ isOptional: true }),
140
- resolution: field.string({ isOptional: true }),
141
- createdAt: field.createdAt(),
142
- review: field.belongsTo("Review", ["reviewId"], ["id"])
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
- index.on(["reviewId"]),
146
- index.on(["status"]),
147
- index.on(["reporterId"])
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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"}