@endora-commerce/mod-catalog 0.100.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +63 -0
- package/dist/admin/components/PackagingUnitsEditor.d.ts +12 -0
- package/dist/admin/components/PackagingUnitsEditor.d.ts.map +1 -0
- package/dist/admin/components/PackagingUnitsEditor.js +99 -0
- package/dist/admin/components/PackagingUnitsEditor.js.map +1 -0
- package/dist/admin/components/ProductAttributesTab.d.ts +13 -0
- package/dist/admin/components/ProductAttributesTab.d.ts.map +1 -0
- package/dist/admin/components/ProductAttributesTab.js +140 -0
- package/dist/admin/components/ProductAttributesTab.js.map +1 -0
- package/dist/admin/components/ProductInventoryTab.d.ts +14 -0
- package/dist/admin/components/ProductInventoryTab.d.ts.map +1 -0
- package/dist/admin/components/ProductInventoryTab.js +284 -0
- package/dist/admin/components/ProductInventoryTab.js.map +1 -0
- package/dist/admin/components/ProductScopeEditor.d.ts +94 -0
- package/dist/admin/components/ProductScopeEditor.d.ts.map +1 -0
- package/dist/admin/components/ProductScopeEditor.js +395 -0
- package/dist/admin/components/ProductScopeEditor.js.map +1 -0
- package/dist/admin/components/ProductsBulkEditDialog.d.ts +11 -0
- package/dist/admin/components/ProductsBulkEditDialog.d.ts.map +1 -0
- package/dist/admin/components/ProductsBulkEditDialog.js +304 -0
- package/dist/admin/components/ProductsBulkEditDialog.js.map +1 -0
- package/dist/admin/index.d.ts +45 -0
- package/dist/admin/index.d.ts.map +1 -0
- package/dist/admin/index.js +184 -0
- package/dist/admin/index.js.map +1 -0
- package/dist/admin/lib/resolve-product-selection.d.ts +21 -0
- package/dist/admin/lib/resolve-product-selection.d.ts.map +1 -0
- package/dist/admin/lib/resolve-product-selection.js +25 -0
- package/dist/admin/lib/resolve-product-selection.js.map +1 -0
- package/dist/admin/pages/AttachmentTypesPage.d.ts +18 -0
- package/dist/admin/pages/AttachmentTypesPage.d.ts.map +1 -0
- package/dist/admin/pages/AttachmentTypesPage.js +92 -0
- package/dist/admin/pages/AttachmentTypesPage.js.map +1 -0
- package/dist/admin/pages/AttributeSetsPage.d.ts +21 -0
- package/dist/admin/pages/AttributeSetsPage.d.ts.map +1 -0
- package/dist/admin/pages/AttributeSetsPage.js +158 -0
- package/dist/admin/pages/AttributeSetsPage.js.map +1 -0
- package/dist/admin/pages/AttributesManager.d.ts +9 -0
- package/dist/admin/pages/AttributesManager.d.ts.map +1 -0
- package/dist/admin/pages/AttributesManager.js +305 -0
- package/dist/admin/pages/AttributesManager.js.map +1 -0
- package/dist/admin/pages/BulkOperationDetailPage.d.ts +9 -0
- package/dist/admin/pages/BulkOperationDetailPage.d.ts.map +1 -0
- package/dist/admin/pages/BulkOperationDetailPage.js +187 -0
- package/dist/admin/pages/BulkOperationDetailPage.js.map +1 -0
- package/dist/admin/pages/BulkOperationsPage.d.ts +9 -0
- package/dist/admin/pages/BulkOperationsPage.d.ts.map +1 -0
- package/dist/admin/pages/BulkOperationsPage.js +98 -0
- package/dist/admin/pages/BulkOperationsPage.js.map +1 -0
- package/dist/admin/pages/CategoriesTree.d.ts +9 -0
- package/dist/admin/pages/CategoriesTree.d.ts.map +1 -0
- package/dist/admin/pages/CategoriesTree.js +176 -0
- package/dist/admin/pages/CategoriesTree.js.map +1 -0
- package/dist/admin/pages/ProductEditor.d.ts +13 -0
- package/dist/admin/pages/ProductEditor.d.ts.map +1 -0
- package/dist/admin/pages/ProductEditor.js +1050 -0
- package/dist/admin/pages/ProductEditor.js.map +1 -0
- package/dist/admin/pages/ProductsList.d.ts +9 -0
- package/dist/admin/pages/ProductsList.d.ts.map +1 -0
- package/dist/admin/pages/ProductsList.js +399 -0
- package/dist/admin/pages/ProductsList.js.map +1 -0
- package/dist/backend/commands/attribute-commands.d.ts +111 -0
- package/dist/backend/commands/attribute-commands.d.ts.map +1 -0
- package/dist/backend/commands/attribute-commands.js +482 -0
- package/dist/backend/commands/attribute-commands.js.map +1 -0
- package/dist/backend/demo/reset.d.ts +23 -0
- package/dist/backend/demo/reset.d.ts.map +1 -0
- package/dist/backend/demo/reset.js +41 -0
- package/dist/backend/demo/reset.js.map +1 -0
- package/dist/backend/demo/rows.d.ts +103 -0
- package/dist/backend/demo/rows.d.ts.map +1 -0
- package/dist/backend/demo/rows.js +162 -0
- package/dist/backend/demo/rows.js.map +1 -0
- package/dist/backend/demo/seed.d.ts +35 -0
- package/dist/backend/demo/seed.d.ts.map +1 -0
- package/dist/backend/demo/seed.js +177 -0
- package/dist/backend/demo/seed.js.map +1 -0
- package/dist/backend/entities/attachment-type.entity.d.ts +16 -0
- package/dist/backend/entities/attachment-type.entity.d.ts.map +1 -0
- package/dist/backend/entities/attachment-type.entity.js +57 -0
- package/dist/backend/entities/attachment-type.entity.js.map +1 -0
- package/dist/backend/entities/attribute-set-attribute.entity.d.ts +26 -0
- package/dist/backend/entities/attribute-set-attribute.entity.d.ts.map +1 -0
- package/dist/backend/entities/attribute-set-attribute.entity.js +55 -0
- package/dist/backend/entities/attribute-set-attribute.entity.js.map +1 -0
- package/dist/backend/entities/attribute-set.entity.d.ts +22 -0
- package/dist/backend/entities/attribute-set.entity.d.ts.map +1 -0
- package/dist/backend/entities/attribute-set.entity.js +67 -0
- package/dist/backend/entities/attribute-set.entity.js.map +1 -0
- package/dist/backend/entities/bulk-operation.entity.d.ts +78 -0
- package/dist/backend/entities/bulk-operation.entity.d.ts.map +1 -0
- package/dist/backend/entities/bulk-operation.entity.js +138 -0
- package/dist/backend/entities/bulk-operation.entity.js.map +1 -0
- package/dist/backend/entities/bundle-slot-option.entity.d.ts +23 -0
- package/dist/backend/entities/bundle-slot-option.entity.d.ts.map +1 -0
- package/dist/backend/entities/bundle-slot-option.entity.js +68 -0
- package/dist/backend/entities/bundle-slot-option.entity.js.map +1 -0
- package/dist/backend/entities/bundle-slot.entity.d.ts +25 -0
- package/dist/backend/entities/bundle-slot.entity.d.ts.map +1 -0
- package/dist/backend/entities/bundle-slot.entity.js +74 -0
- package/dist/backend/entities/bundle-slot.entity.js.map +1 -0
- package/dist/backend/entities/category.entity.d.ts +26 -0
- package/dist/backend/entities/category.entity.d.ts.map +1 -0
- package/dist/backend/entities/category.entity.js +119 -0
- package/dist/backend/entities/category.entity.js.map +1 -0
- package/dist/backend/entities/gallery-item-label.entity.d.ts +22 -0
- package/dist/backend/entities/gallery-item-label.entity.d.ts.map +1 -0
- package/dist/backend/entities/gallery-item-label.entity.js +50 -0
- package/dist/backend/entities/gallery-item-label.entity.js.map +1 -0
- package/dist/backend/entities/gallery-item.entity.d.ts +17 -0
- package/dist/backend/entities/gallery-item.entity.d.ts.map +1 -0
- package/dist/backend/entities/gallery-item.entity.js +58 -0
- package/dist/backend/entities/gallery-item.entity.js.map +1 -0
- package/dist/backend/entities/grouped-item.entity.d.ts +23 -0
- package/dist/backend/entities/grouped-item.entity.d.ts.map +1 -0
- package/dist/backend/entities/grouped-item.entity.js +68 -0
- package/dist/backend/entities/grouped-item.entity.js.map +1 -0
- package/dist/backend/entities/product-attachment.entity.d.ts +23 -0
- package/dist/backend/entities/product-attachment.entity.d.ts.map +1 -0
- package/dist/backend/entities/product-attachment.entity.js +77 -0
- package/dist/backend/entities/product-attachment.entity.js.map +1 -0
- package/dist/backend/entities/product-attribute.entity.d.ts +72 -0
- package/dist/backend/entities/product-attribute.entity.d.ts.map +1 -0
- package/dist/backend/entities/product-attribute.entity.js +161 -0
- package/dist/backend/entities/product-attribute.entity.js.map +1 -0
- package/dist/backend/entities/product-editor-preference.entity.d.ts +28 -0
- package/dist/backend/entities/product-editor-preference.entity.d.ts.map +1 -0
- package/dist/backend/entities/product-editor-preference.entity.js +63 -0
- package/dist/backend/entities/product-editor-preference.entity.js.map +1 -0
- package/dist/backend/entities/product-link.entity.d.ts +25 -0
- package/dist/backend/entities/product-link.entity.d.ts.map +1 -0
- package/dist/backend/entities/product-link.entity.js +70 -0
- package/dist/backend/entities/product-link.entity.js.map +1 -0
- package/dist/backend/entities/product-packaging-unit.entity.d.ts +26 -0
- package/dist/backend/entities/product-packaging-unit.entity.d.ts.map +1 -0
- package/dist/backend/entities/product-packaging-unit.entity.js +76 -0
- package/dist/backend/entities/product-packaging-unit.entity.js.map +1 -0
- package/dist/backend/entities/product-value-override.entity.d.ts +43 -0
- package/dist/backend/entities/product-value-override.entity.d.ts.map +1 -0
- package/dist/backend/entities/product-value-override.entity.js +90 -0
- package/dist/backend/entities/product-value-override.entity.js.map +1 -0
- package/dist/backend/entities/product-variant.entity.d.ts +18 -0
- package/dist/backend/entities/product-variant.entity.d.ts.map +1 -0
- package/dist/backend/entities/product-variant.entity.js +68 -0
- package/dist/backend/entities/product-variant.entity.js.map +1 -0
- package/dist/backend/entities/product.entity.d.ts +108 -0
- package/dist/backend/entities/product.entity.d.ts.map +1 -0
- package/dist/backend/entities/product.entity.js +230 -0
- package/dist/backend/entities/product.entity.js.map +1 -0
- package/dist/backend/index.d.ts +262 -0
- package/dist/backend/index.d.ts.map +1 -0
- package/dist/backend/index.js +642 -0
- package/dist/backend/index.js.map +1 -0
- package/dist/backend/plugin.d.ts +216 -0
- package/dist/backend/plugin.d.ts.map +1 -0
- package/dist/backend/plugin.js +223 -0
- package/dist/backend/plugin.js.map +1 -0
- package/dist/backend/prompt-tools.d.ts +47 -0
- package/dist/backend/prompt-tools.d.ts.map +1 -0
- package/dist/backend/prompt-tools.js +284 -0
- package/dist/backend/prompt-tools.js.map +1 -0
- package/dist/backend/routes.admin.d.ts +105 -0
- package/dist/backend/routes.admin.d.ts.map +1 -0
- package/dist/backend/routes.admin.js +1162 -0
- package/dist/backend/routes.admin.js.map +1 -0
- package/dist/backend/routes.api-key.d.ts +33 -0
- package/dist/backend/routes.api-key.d.ts.map +1 -0
- package/dist/backend/routes.api-key.js +43 -0
- package/dist/backend/routes.api-key.js.map +1 -0
- package/dist/backend/routes.external.d.ts +32 -0
- package/dist/backend/routes.external.d.ts.map +1 -0
- package/dist/backend/routes.external.js +115 -0
- package/dist/backend/routes.external.js.map +1 -0
- package/dist/backend/routes.public.d.ts +46 -0
- package/dist/backend/routes.public.d.ts.map +1 -0
- package/dist/backend/routes.public.js +318 -0
- package/dist/backend/routes.public.js.map +1 -0
- package/dist/backend/services/asset-references.d.ts +4 -0
- package/dist/backend/services/asset-references.d.ts.map +1 -0
- package/dist/backend/services/asset-references.js +104 -0
- package/dist/backend/services/asset-references.js.map +1 -0
- package/dist/backend/services/attachment.service.d.ts +45 -0
- package/dist/backend/services/attachment.service.d.ts.map +1 -0
- package/dist/backend/services/attachment.service.js +268 -0
- package/dist/backend/services/attachment.service.js.map +1 -0
- package/dist/backend/services/attribute-option-validator.d.ts +47 -0
- package/dist/backend/services/attribute-option-validator.d.ts.map +1 -0
- package/dist/backend/services/attribute-option-validator.js +69 -0
- package/dist/backend/services/attribute-option-validator.js.map +1 -0
- package/dist/backend/services/attribute-set-validations.d.ts +65 -0
- package/dist/backend/services/attribute-set-validations.d.ts.map +1 -0
- package/dist/backend/services/attribute-set-validations.js +89 -0
- package/dist/backend/services/attribute-set-validations.js.map +1 -0
- package/dist/backend/services/attribute-set.service.d.ts +50 -0
- package/dist/backend/services/attribute-set.service.d.ts.map +1 -0
- package/dist/backend/services/attribute-set.service.js +401 -0
- package/dist/backend/services/attribute-set.service.js.map +1 -0
- package/dist/backend/services/attribute-type-mapping.d.ts +66 -0
- package/dist/backend/services/attribute-type-mapping.d.ts.map +1 -0
- package/dist/backend/services/attribute-type-mapping.js +121 -0
- package/dist/backend/services/attribute-type-mapping.js.map +1 -0
- package/dist/backend/services/attribute-value-key.service.d.ts +48 -0
- package/dist/backend/services/attribute-value-key.service.d.ts.map +1 -0
- package/dist/backend/services/attribute-value-key.service.js +118 -0
- package/dist/backend/services/attribute-value-key.service.js.map +1 -0
- package/dist/backend/services/audit-references.d.ts +13 -0
- package/dist/backend/services/audit-references.d.ts.map +1 -0
- package/dist/backend/services/audit-references.js +51 -0
- package/dist/backend/services/audit-references.js.map +1 -0
- package/dist/backend/services/bulk-operation-queue.d.ts +26 -0
- package/dist/backend/services/bulk-operation-queue.d.ts.map +1 -0
- package/dist/backend/services/bulk-operation-queue.js +34 -0
- package/dist/backend/services/bulk-operation-queue.js.map +1 -0
- package/dist/backend/services/bulk-operation.service.d.ts +195 -0
- package/dist/backend/services/bulk-operation.service.d.ts.map +1 -0
- package/dist/backend/services/bulk-operation.service.js +510 -0
- package/dist/backend/services/bulk-operation.service.js.map +1 -0
- package/dist/backend/services/bundle.service.d.ts +87 -0
- package/dist/backend/services/bundle.service.d.ts.map +1 -0
- package/dist/backend/services/bundle.service.js +286 -0
- package/dist/backend/services/bundle.service.js.map +1 -0
- package/dist/backend/services/catalog-admin.service.d.ts +398 -0
- package/dist/backend/services/catalog-admin.service.d.ts.map +1 -0
- package/dist/backend/services/catalog-admin.service.js +1516 -0
- package/dist/backend/services/catalog-admin.service.js.map +1 -0
- package/dist/backend/services/catalog-attribute-read.service.d.ts +78 -0
- package/dist/backend/services/catalog-attribute-read.service.d.ts.map +1 -0
- package/dist/backend/services/catalog-attribute-read.service.js +216 -0
- package/dist/backend/services/catalog-attribute-read.service.js.map +1 -0
- package/dist/backend/services/catalog-bulk-import.service.d.ts +30 -0
- package/dist/backend/services/catalog-bulk-import.service.d.ts.map +1 -0
- package/dist/backend/services/catalog-bulk-import.service.js +136 -0
- package/dist/backend/services/catalog-bulk-import.service.js.map +1 -0
- package/dist/backend/services/catalog-bulk-update.service.d.ts +91 -0
- package/dist/backend/services/catalog-bulk-update.service.d.ts.map +1 -0
- package/dist/backend/services/catalog-bulk-update.service.js +330 -0
- package/dist/backend/services/catalog-bulk-update.service.js.map +1 -0
- package/dist/backend/services/catalog-category-read.service.d.ts +66 -0
- package/dist/backend/services/catalog-category-read.service.d.ts.map +1 -0
- package/dist/backend/services/catalog-category-read.service.js +248 -0
- package/dist/backend/services/catalog-category-read.service.js.map +1 -0
- package/dist/backend/services/catalog-org-price-decorator.d.ts +90 -0
- package/dist/backend/services/catalog-org-price-decorator.d.ts.map +1 -0
- package/dist/backend/services/catalog-org-price-decorator.js +184 -0
- package/dist/backend/services/catalog-org-price-decorator.js.map +1 -0
- package/dist/backend/services/catalog-product-filter.service.d.ts +82 -0
- package/dist/backend/services/catalog-product-filter.service.d.ts.map +1 -0
- package/dist/backend/services/catalog-product-filter.service.js +275 -0
- package/dist/backend/services/catalog-product-filter.service.js.map +1 -0
- package/dist/backend/services/catalog-product-read.service.d.ts +46 -0
- package/dist/backend/services/catalog-product-read.service.d.ts.map +1 -0
- package/dist/backend/services/catalog-product-read.service.js +197 -0
- package/dist/backend/services/catalog-product-read.service.js.map +1 -0
- package/dist/backend/services/catalog-query.service.d.ts +444 -0
- package/dist/backend/services/catalog-query.service.d.ts.map +1 -0
- package/dist/backend/services/catalog-query.service.js +1633 -0
- package/dist/backend/services/catalog-query.service.js.map +1 -0
- package/dist/backend/services/catalog-quick-search.service.d.ts +78 -0
- package/dist/backend/services/catalog-quick-search.service.d.ts.map +1 -0
- package/dist/backend/services/catalog-quick-search.service.js +159 -0
- package/dist/backend/services/catalog-quick-search.service.js.map +1 -0
- package/dist/backend/services/catalog-write-ports.d.ts +25 -0
- package/dist/backend/services/catalog-write-ports.d.ts.map +1 -0
- package/dist/backend/services/catalog-write-ports.js +63 -0
- package/dist/backend/services/catalog-write-ports.js.map +1 -0
- package/dist/backend/services/category-admin.service.d.ts +102 -0
- package/dist/backend/services/category-admin.service.d.ts.map +1 -0
- package/dist/backend/services/category-admin.service.js +271 -0
- package/dist/backend/services/category-admin.service.js.map +1 -0
- package/dist/backend/services/gallery.service.d.ts +85 -0
- package/dist/backend/services/gallery.service.d.ts.map +1 -0
- package/dist/backend/services/gallery.service.js +326 -0
- package/dist/backend/services/gallery.service.js.map +1 -0
- package/dist/backend/services/grouped.service.d.ts +39 -0
- package/dist/backend/services/grouped.service.d.ts.map +1 -0
- package/dist/backend/services/grouped.service.js +136 -0
- package/dist/backend/services/grouped.service.js.map +1 -0
- package/dist/backend/services/label-resolver.d.ts +16 -0
- package/dist/backend/services/label-resolver.d.ts.map +1 -0
- package/dist/backend/services/label-resolver.js +43 -0
- package/dist/backend/services/label-resolver.js.map +1 -0
- package/dist/backend/services/packaging-unit.service.d.ts +28 -0
- package/dist/backend/services/packaging-unit.service.d.ts.map +1 -0
- package/dist/backend/services/packaging-unit.service.js +197 -0
- package/dist/backend/services/packaging-unit.service.js.map +1 -0
- package/dist/backend/services/primary-asset-url.d.ts +4 -0
- package/dist/backend/services/primary-asset-url.d.ts.map +1 -0
- package/dist/backend/services/primary-asset-url.js +55 -0
- package/dist/backend/services/primary-asset-url.js.map +1 -0
- package/dist/backend/services/product-editor-preferences.service.d.ts +20 -0
- package/dist/backend/services/product-editor-preferences.service.d.ts.map +1 -0
- package/dist/backend/services/product-editor-preferences.service.js +44 -0
- package/dist/backend/services/product-editor-preferences.service.js.map +1 -0
- package/dist/backend/services/product-link.service.d.ts +169 -0
- package/dist/backend/services/product-link.service.d.ts.map +1 -0
- package/dist/backend/services/product-link.service.js +297 -0
- package/dist/backend/services/product-link.service.js.map +1 -0
- package/dist/backend/services/product-overrides.service.d.ts +77 -0
- package/dist/backend/services/product-overrides.service.d.ts.map +1 -0
- package/dist/backend/services/product-overrides.service.js +204 -0
- package/dist/backend/services/product-overrides.service.js.map +1 -0
- package/dist/backend/services/product-scope-context.service.d.ts +36 -0
- package/dist/backend/services/product-scope-context.service.d.ts.map +1 -0
- package/dist/backend/services/product-scope-context.service.js +106 -0
- package/dist/backend/services/product-scope-context.service.js.map +1 -0
- package/dist/backend/services/product-type-validations.d.ts +42 -0
- package/dist/backend/services/product-type-validations.d.ts.map +1 -0
- package/dist/backend/services/product-type-validations.js +55 -0
- package/dist/backend/services/product-type-validations.js.map +1 -0
- package/dist/backend/services/product-value-resolver.service.d.ts +59 -0
- package/dist/backend/services/product-value-resolver.service.d.ts.map +1 -0
- package/dist/backend/services/product-value-resolver.service.js +111 -0
- package/dist/backend/services/product-value-resolver.service.js.map +1 -0
- package/dist/backend/services/system-attribute-scopes.d.ts +18 -0
- package/dist/backend/services/system-attribute-scopes.d.ts.map +1 -0
- package/dist/backend/services/system-attribute-scopes.js +18 -0
- package/dist/backend/services/system-attribute-scopes.js.map +1 -0
- package/dist/backend/services/viewer-organization.d.ts +25 -0
- package/dist/backend/services/viewer-organization.d.ts.map +1 -0
- package/dist/backend/services/viewer-organization.js +31 -0
- package/dist/backend/services/viewer-organization.js.map +1 -0
- package/dist/manifest.d.ts +204 -0
- package/dist/manifest.d.ts.map +1 -0
- package/dist/manifest.js +686 -0
- package/dist/manifest.js.map +1 -0
- package/dist/migrations/20260429T064146_catalog_attribute_sets_init.d.ts +33 -0
- package/dist/migrations/20260429T064146_catalog_attribute_sets_init.d.ts.map +1 -0
- package/dist/migrations/20260429T064146_catalog_attribute_sets_init.js +118 -0
- package/dist/migrations/20260429T064146_catalog_attribute_sets_init.js.map +1 -0
- package/dist/migrations/20260429T070004_catalog_product_attribute_extensions.d.ts +24 -0
- package/dist/migrations/20260429T070004_catalog_product_attribute_extensions.d.ts.map +1 -0
- package/dist/migrations/20260429T070004_catalog_product_attribute_extensions.js +31 -0
- package/dist/migrations/20260429T070004_catalog_product_attribute_extensions.js.map +1 -0
- package/dist/migrations/20260429T102322_catalog_product_type_and_virtual_fields.d.ts +32 -0
- package/dist/migrations/20260429T102322_catalog_product_type_and_virtual_fields.d.ts.map +1 -0
- package/dist/migrations/20260429T102322_catalog_product_type_and_virtual_fields.js +58 -0
- package/dist/migrations/20260429T102322_catalog_product_type_and_virtual_fields.js.map +1 -0
- package/dist/migrations/20260429T111839_catalog_gallery_items_and_labels.d.ts +22 -0
- package/dist/migrations/20260429T111839_catalog_gallery_items_and_labels.d.ts.map +1 -0
- package/dist/migrations/20260429T111839_catalog_gallery_items_and_labels.js +66 -0
- package/dist/migrations/20260429T111839_catalog_gallery_items_and_labels.js.map +1 -0
- package/dist/migrations/20260429T112543_catalog_product_attachments.d.ts +18 -0
- package/dist/migrations/20260429T112543_catalog_product_attachments.d.ts.map +1 -0
- package/dist/migrations/20260429T112543_catalog_product_attachments.js +73 -0
- package/dist/migrations/20260429T112543_catalog_product_attachments.js.map +1 -0
- package/dist/migrations/20260429T123726_catalog_product_links.d.ts +21 -0
- package/dist/migrations/20260429T123726_catalog_product_links.d.ts.map +1 -0
- package/dist/migrations/20260429T123726_catalog_product_links.js +48 -0
- package/dist/migrations/20260429T123726_catalog_product_links.js.map +1 -0
- package/dist/migrations/20260429T130803_catalog_grouped_and_bundle.d.ts +23 -0
- package/dist/migrations/20260429T130803_catalog_grouped_and_bundle.d.ts.map +1 -0
- package/dist/migrations/20260429T130803_catalog_grouped_and_bundle.js +94 -0
- package/dist/migrations/20260429T130803_catalog_grouped_and_bundle.js.map +1 -0
- package/dist/migrations/20260501T185835_catalog_product_attribute_is_comparable.d.ts +24 -0
- package/dist/migrations/20260501T185835_catalog_product_attribute_is_comparable.d.ts.map +1 -0
- package/dist/migrations/20260501T185835_catalog_product_attribute_is_comparable.js +31 -0
- package/dist/migrations/20260501T185835_catalog_product_attribute_is_comparable.js.map +1 -0
- package/dist/migrations/20260505T060113_catalog_attribute_options_and_flags.d.ts +31 -0
- package/dist/migrations/20260505T060113_catalog_attribute_options_and_flags.d.ts.map +1 -0
- package/dist/migrations/20260505T060113_catalog_attribute_options_and_flags.js +133 -0
- package/dist/migrations/20260505T060113_catalog_attribute_options_and_flags.js.map +1 -0
- package/dist/migrations/20260515T082629_catalog_attribute_mass_editable.d.ts +16 -0
- package/dist/migrations/20260515T082629_catalog_attribute_mass_editable.d.ts.map +1 -0
- package/dist/migrations/20260515T082629_catalog_attribute_mass_editable.js +23 -0
- package/dist/migrations/20260515T082629_catalog_attribute_mass_editable.js.map +1 -0
- package/dist/migrations/20260526T124736_catalog_product_status_inactive.d.ts +10 -0
- package/dist/migrations/20260526T124736_catalog_product_status_inactive.d.ts.map +1 -0
- package/dist/migrations/20260526T124736_catalog_product_status_inactive.js +22 -0
- package/dist/migrations/20260526T124736_catalog_product_status_inactive.js.map +1 -0
- package/dist/migrations/20260611T140346_catalog_product_value_overrides_init.d.ts +38 -0
- package/dist/migrations/20260611T140346_catalog_product_value_overrides_init.d.ts.map +1 -0
- package/dist/migrations/20260611T140346_catalog_product_value_overrides_init.js +98 -0
- package/dist/migrations/20260611T140346_catalog_product_value_overrides_init.js.map +1 -0
- package/dist/migrations/20260611T140400_catalog_attribute_quick_searchable.d.ts +13 -0
- package/dist/migrations/20260611T140400_catalog_attribute_quick_searchable.d.ts.map +1 -0
- package/dist/migrations/20260611T140400_catalog_attribute_quick_searchable.js +17 -0
- package/dist/migrations/20260611T140400_catalog_attribute_quick_searchable.js.map +1 -0
- package/dist/migrations/20260611T140407_catalog_bulk_operations.d.ts +16 -0
- package/dist/migrations/20260611T140407_catalog_bulk_operations.d.ts.map +1 -0
- package/dist/migrations/20260611T140407_catalog_bulk_operations.js +42 -0
- package/dist/migrations/20260611T140407_catalog_bulk_operations.js.map +1 -0
- package/dist/migrations/20260611T140408_catalog_bulk_operation_logs.d.ts +14 -0
- package/dist/migrations/20260611T140408_catalog_bulk_operation_logs.d.ts.map +1 -0
- package/dist/migrations/20260611T140408_catalog_bulk_operation_logs.js +18 -0
- package/dist/migrations/20260611T140408_catalog_bulk_operation_logs.js.map +1 -0
- package/dist/migrations/20260611T140412_catalog_product_packaging_units.d.ts +11 -0
- package/dist/migrations/20260611T140412_catalog_product_packaging_units.d.ts.map +1 -0
- package/dist/migrations/20260611T140412_catalog_product_packaging_units.js +29 -0
- package/dist/migrations/20260611T140412_catalog_product_packaging_units.js.map +1 -0
- package/dist/migrations/20260718T060659_catalog_bulk_operation_revert_state.d.ts +23 -0
- package/dist/migrations/20260718T060659_catalog_bulk_operation_revert_state.d.ts.map +1 -0
- package/dist/migrations/20260718T060659_catalog_bulk_operation_revert_state.js +35 -0
- package/dist/migrations/20260718T060659_catalog_bulk_operation_revert_state.js.map +1 -0
- package/dist/migrations/20260718T200343_catalog_category_custom_field_values.d.ts +12 -0
- package/dist/migrations/20260718T200343_catalog_category_custom_field_values.d.ts.map +1 -0
- package/dist/migrations/20260718T200343_catalog_category_custom_field_values.js +16 -0
- package/dist/migrations/20260718T200343_catalog_category_custom_field_values.js.map +1 -0
- package/dist/migrations/20260723T230401_catalog_attributes_on_custom_fields.d.ts +32 -0
- package/dist/migrations/20260723T230401_catalog_attributes_on_custom_fields.d.ts.map +1 -0
- package/dist/migrations/20260723T230401_catalog_attributes_on_custom_fields.js +286 -0
- package/dist/migrations/20260723T230401_catalog_attributes_on_custom_fields.js.map +1 -0
- package/dist/migrations/20260804T152604_catalog_widen_product_sku.d.ts +36 -0
- package/dist/migrations/20260804T152604_catalog_widen_product_sku.d.ts.map +1 -0
- package/dist/migrations/20260804T152604_catalog_widen_product_sku.js +63 -0
- package/dist/migrations/20260804T152604_catalog_widen_product_sku.js.map +1 -0
- package/dist/migrations/20260804T160244_catalog_category_activation.d.ts +18 -0
- package/dist/migrations/20260804T160244_catalog_category_activation.d.ts.map +1 -0
- package/dist/migrations/20260804T160244_catalog_category_activation.js +22 -0
- package/dist/migrations/20260804T160244_catalog_category_activation.js.map +1 -0
- package/dist/migrations/20260912T094557_catalog_sales_channel_products.d.ts +27 -0
- package/dist/migrations/20260912T094557_catalog_sales_channel_products.d.ts.map +1 -0
- package/dist/migrations/20260912T094557_catalog_sales_channel_products.js +44 -0
- package/dist/migrations/20260912T094557_catalog_sales_channel_products.js.map +1 -0
- package/dist/migrations/20260912T094623_catalog_sales_channel_categories.d.ts +27 -0
- package/dist/migrations/20260912T094623_catalog_sales_channel_categories.d.ts.map +1 -0
- package/dist/migrations/20260912T094623_catalog_sales_channel_categories.js +44 -0
- package/dist/migrations/20260912T094623_catalog_sales_channel_categories.js.map +1 -0
- package/dist/migrations/20260925T125527_catalog_inventory_columns.d.ts +36 -0
- package/dist/migrations/20260925T125527_catalog_inventory_columns.d.ts.map +1 -0
- package/dist/migrations/20260925T125527_catalog_inventory_columns.js +87 -0
- package/dist/migrations/20260925T125527_catalog_inventory_columns.js.map +1 -0
- package/dist/migrations/index.d.ts +55 -0
- package/dist/migrations/index.d.ts.map +1 -0
- package/dist/migrations/index.js +80 -0
- package/dist/migrations/index.js.map +1 -0
- package/dist/ports/index.d.ts +96 -0
- package/dist/ports/index.d.ts.map +1 -0
- package/dist/ports/index.js +2 -0
- package/dist/ports/index.js.map +1 -0
- package/docs/catalog/attachments.md +69 -0
- package/docs/catalog/attribute-sets.md +63 -0
- package/docs/catalog/attributes.md +244 -0
- package/docs/catalog/composite-products.md +115 -0
- package/docs/catalog/gallery-and-labels.md +73 -0
- package/docs/catalog/packaging-units.md +67 -0
- package/docs/catalog/per-channel-per-language-overrides.md +234 -0
- package/docs/catalog/product-links.md +79 -0
- package/docs/catalog.md +207 -0
- package/i18n/en.json +649 -0
- package/i18n/pl.json +649 -0
- package/package.json +109 -0
- package/tailwind.css +14 -0
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
import { Entity, Index, OptionalProps, PrimaryKey, Property } from '@mikro-orm/core';
|
|
11
|
+
import { GlobalEntity } from '@endora-commerce/platform/tenancy';
|
|
12
|
+
import { randomUUID } from 'crypto';
|
|
13
|
+
/**
|
|
14
|
+
* ProductValueOverride — feature 022.
|
|
15
|
+
*
|
|
16
|
+
* Stores channel-aware overrides for product attribute values. The
|
|
17
|
+
* global baseline lives on `products.name` / `products.description`
|
|
18
|
+
* (per-language JSONB) and `products.attribute_values` (per-attribute
|
|
19
|
+
* JSONB) — this entity only holds the (channel, [language]) slots.
|
|
20
|
+
*
|
|
21
|
+
* The resolver in `services/product-value-resolver.ts` (and its
|
|
22
|
+
* pure-function twin in `@endora-commerce/contracts`) fuses baseline + overrides
|
|
23
|
+
* into an effective value per (channel, language) context using the
|
|
24
|
+
* fallback chain documented in
|
|
25
|
+
* specs/023-product-scope-editor/data-model.md §3.2.
|
|
26
|
+
*
|
|
27
|
+
* `attributeKey` is a string — for user-defined attributes it matches
|
|
28
|
+
* `product_attributes.key`; for system attributes it is one of the
|
|
29
|
+
* reserved values `'name'` or `'description'` (see
|
|
30
|
+
* services/system-attribute-scopes.ts). There is no FK from
|
|
31
|
+
* `attribute_key` to `product_attributes` because system attributes
|
|
32
|
+
* are not rows there.
|
|
33
|
+
*
|
|
34
|
+
* `languageCode` is NULLABLE — a NULL row models a channel-only
|
|
35
|
+
* override (attribute is channel-scoped but not language-scoped);
|
|
36
|
+
* a non-null row models a channel+language override. Two partial
|
|
37
|
+
* UNIQUE indexes (see migration 043) enforce uniqueness across both
|
|
38
|
+
* shapes.
|
|
39
|
+
*/
|
|
40
|
+
let ProductValueOverride = class ProductValueOverride {
|
|
41
|
+
[OptionalProps];
|
|
42
|
+
id = randomUUID();
|
|
43
|
+
productId;
|
|
44
|
+
attributeKey;
|
|
45
|
+
channelId;
|
|
46
|
+
languageCode;
|
|
47
|
+
/** Wrapped as `{ v: ... }` so the column is always a JSONB object. */
|
|
48
|
+
value;
|
|
49
|
+
createdAt = new Date();
|
|
50
|
+
updatedAt = new Date();
|
|
51
|
+
};
|
|
52
|
+
__decorate([
|
|
53
|
+
PrimaryKey({ type: 'uuid' }),
|
|
54
|
+
__metadata("design:type", String)
|
|
55
|
+
], ProductValueOverride.prototype, "id", void 0);
|
|
56
|
+
__decorate([
|
|
57
|
+
Property({ type: 'uuid' }),
|
|
58
|
+
Index(),
|
|
59
|
+
__metadata("design:type", String)
|
|
60
|
+
], ProductValueOverride.prototype, "productId", void 0);
|
|
61
|
+
__decorate([
|
|
62
|
+
Property({ type: 'string', length: 64 }),
|
|
63
|
+
__metadata("design:type", String)
|
|
64
|
+
], ProductValueOverride.prototype, "attributeKey", void 0);
|
|
65
|
+
__decorate([
|
|
66
|
+
Property({ type: 'uuid' }),
|
|
67
|
+
__metadata("design:type", String)
|
|
68
|
+
], ProductValueOverride.prototype, "channelId", void 0);
|
|
69
|
+
__decorate([
|
|
70
|
+
Property({ type: 'string', length: 16, nullable: true }),
|
|
71
|
+
__metadata("design:type", Object)
|
|
72
|
+
], ProductValueOverride.prototype, "languageCode", void 0);
|
|
73
|
+
__decorate([
|
|
74
|
+
Property({ type: 'json' }),
|
|
75
|
+
__metadata("design:type", Object)
|
|
76
|
+
], ProductValueOverride.prototype, "value", void 0);
|
|
77
|
+
__decorate([
|
|
78
|
+
Property({ type: 'datetime', onCreate: () => new Date() }),
|
|
79
|
+
__metadata("design:type", Date)
|
|
80
|
+
], ProductValueOverride.prototype, "createdAt", void 0);
|
|
81
|
+
__decorate([
|
|
82
|
+
Property({ type: 'datetime', onUpdate: () => new Date() }),
|
|
83
|
+
__metadata("design:type", Date)
|
|
84
|
+
], ProductValueOverride.prototype, "updatedAt", void 0);
|
|
85
|
+
ProductValueOverride = __decorate([
|
|
86
|
+
GlobalEntity(),
|
|
87
|
+
Entity({ tableName: 'product_value_overrides' })
|
|
88
|
+
], ProductValueOverride);
|
|
89
|
+
export { ProductValueOverride };
|
|
90
|
+
//# sourceMappingURL=product-value-override.entity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"product-value-override.entity.js","sourceRoot":"","sources":["../../../src/backend/entities/product-value-override.entity.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACrF,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpC;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAGI,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IAC/B,CAAC,aAAa,CAAC,CAAqD;IAGpE,EAAE,GAAW,UAAU,EAAE,CAAC;IAI1B,SAAS,CAAU;IAGnB,YAAY,CAAU;IAGtB,SAAS,CAAU;IAGnB,YAAY,CAAiB;IAE7B,sEAAsE;IAEtE,KAAK,CAAkB;IAGvB,SAAS,GAAS,IAAI,IAAI,EAAE,CAAC;IAG7B,SAAS,GAAS,IAAI,IAAI,EAAE,CAAC;CAC9B,CAAA;AAxBC;IADC,UAAU,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;gDACH;AAI1B;IAFC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC1B,KAAK,EAAE;;uDACW;AAGnB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;;0DACnB;AAGtB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;uDACR;AAGnB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0DAC5B;AAI7B;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;mDACJ;AAGvB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;8BAChD,IAAI;uDAAc;AAG7B;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;8BAChD,IAAI;uDAAc;AA3BlB,oBAAoB;IAFhC,YAAY,EAAE;IACd,MAAM,CAAC,EAAE,SAAS,EAAE,yBAAyB,EAAE,CAAC;GACpC,oBAAoB,CA4BhC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { OptionalProps } from '@mikro-orm/core';
|
|
2
|
+
/**
|
|
3
|
+
* Concrete variant of a `type=variant` Product.
|
|
4
|
+
* `variantAttributeValues` contains only keys where the parent's ProductAttribute
|
|
5
|
+
* has isVariantAxis=true.
|
|
6
|
+
*/
|
|
7
|
+
export declare class ProductVariant {
|
|
8
|
+
[OptionalProps]?: 'id' | 'createdAt' | 'updatedAt' | 'priceOverride' | 'stockLevel';
|
|
9
|
+
id: string;
|
|
10
|
+
parentProductId: string;
|
|
11
|
+
sku: string;
|
|
12
|
+
variantAttributeValues: Record<string, unknown>;
|
|
13
|
+
priceOverride?: string | null;
|
|
14
|
+
stockLevel?: number | null;
|
|
15
|
+
createdAt: Date;
|
|
16
|
+
updatedAt: Date;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=product-variant.entity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"product-variant.entity.d.ts","sourceRoot":"","sources":["../../../src/backend/entities/product-variant.entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,aAAa,EAAgC,MAAM,iBAAiB,CAAC;AAI7F;;;;GAIG;AACH,qBAEa,cAAc;IACzB,CAAC,aAAa,CAAC,CAAC,EAAE,IAAI,GAAG,WAAW,GAAG,WAAW,GAAG,eAAe,GAAG,YAAY,CAAC;IAGpF,EAAE,EAAE,MAAM,CAAgB;IAI1B,eAAe,EAAG,MAAM,CAAC;IAIzB,GAAG,EAAG,MAAM,CAAC;IAGb,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAM;IAGrD,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAG9B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAG3B,SAAS,EAAE,IAAI,CAAc;IAG7B,SAAS,EAAE,IAAI,CAAc;CAC9B"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
import { Entity, Index, OptionalProps, PrimaryKey, Property, Unique } from '@mikro-orm/core';
|
|
11
|
+
import { GlobalEntity } from '@endora-commerce/platform/tenancy';
|
|
12
|
+
import { randomUUID } from 'crypto';
|
|
13
|
+
/**
|
|
14
|
+
* Concrete variant of a `type=variant` Product.
|
|
15
|
+
* `variantAttributeValues` contains only keys where the parent's ProductAttribute
|
|
16
|
+
* has isVariantAxis=true.
|
|
17
|
+
*/
|
|
18
|
+
let ProductVariant = class ProductVariant {
|
|
19
|
+
[OptionalProps];
|
|
20
|
+
id = randomUUID();
|
|
21
|
+
parentProductId;
|
|
22
|
+
sku;
|
|
23
|
+
variantAttributeValues = {};
|
|
24
|
+
priceOverride;
|
|
25
|
+
stockLevel;
|
|
26
|
+
createdAt = new Date();
|
|
27
|
+
updatedAt = new Date();
|
|
28
|
+
};
|
|
29
|
+
__decorate([
|
|
30
|
+
PrimaryKey({ type: 'uuid' }),
|
|
31
|
+
__metadata("design:type", String)
|
|
32
|
+
], ProductVariant.prototype, "id", void 0);
|
|
33
|
+
__decorate([
|
|
34
|
+
Property({ type: 'uuid' }),
|
|
35
|
+
Index(),
|
|
36
|
+
__metadata("design:type", String)
|
|
37
|
+
], ProductVariant.prototype, "parentProductId", void 0);
|
|
38
|
+
__decorate([
|
|
39
|
+
Property({ type: 'string', length: 255 }),
|
|
40
|
+
Unique(),
|
|
41
|
+
__metadata("design:type", String)
|
|
42
|
+
], ProductVariant.prototype, "sku", void 0);
|
|
43
|
+
__decorate([
|
|
44
|
+
Property({ type: 'json' }),
|
|
45
|
+
__metadata("design:type", Object)
|
|
46
|
+
], ProductVariant.prototype, "variantAttributeValues", void 0);
|
|
47
|
+
__decorate([
|
|
48
|
+
Property({ type: 'decimal', precision: 12, scale: 2, nullable: true }),
|
|
49
|
+
__metadata("design:type", Object)
|
|
50
|
+
], ProductVariant.prototype, "priceOverride", void 0);
|
|
51
|
+
__decorate([
|
|
52
|
+
Property({ type: 'integer', nullable: true }),
|
|
53
|
+
__metadata("design:type", Object)
|
|
54
|
+
], ProductVariant.prototype, "stockLevel", void 0);
|
|
55
|
+
__decorate([
|
|
56
|
+
Property({ type: 'datetime', onCreate: () => new Date() }),
|
|
57
|
+
__metadata("design:type", Date)
|
|
58
|
+
], ProductVariant.prototype, "createdAt", void 0);
|
|
59
|
+
__decorate([
|
|
60
|
+
Property({ type: 'datetime', onUpdate: () => new Date() }),
|
|
61
|
+
__metadata("design:type", Date)
|
|
62
|
+
], ProductVariant.prototype, "updatedAt", void 0);
|
|
63
|
+
ProductVariant = __decorate([
|
|
64
|
+
GlobalEntity(),
|
|
65
|
+
Entity({ tableName: 'product_variants' })
|
|
66
|
+
], ProductVariant);
|
|
67
|
+
export { ProductVariant };
|
|
68
|
+
//# sourceMappingURL=product-variant.entity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"product-variant.entity.js","sourceRoot":"","sources":["../../../src/backend/entities/product-variant.entity.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC7F,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpC;;;;GAIG;AAGI,IAAM,cAAc,GAApB,MAAM,cAAc;IACzB,CAAC,aAAa,CAAC,CAAqE;IAGpF,EAAE,GAAW,UAAU,EAAE,CAAC;IAI1B,eAAe,CAAU;IAIzB,GAAG,CAAU;IAGb,sBAAsB,GAA4B,EAAE,CAAC;IAGrD,aAAa,CAAiB;IAG9B,UAAU,CAAiB;IAG3B,SAAS,GAAS,IAAI,IAAI,EAAE,CAAC;IAG7B,SAAS,GAAS,IAAI,IAAI,EAAE,CAAC;CAC9B,CAAA;AAxBC;IADC,UAAU,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;0CACH;AAI1B;IAFC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC1B,KAAK,EAAE;;uDACiB;AAIzB;IAFC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;IACzC,MAAM,EAAE;;2CACI;AAGb;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;8DAC0B;AAGrD;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;qDACzC;AAG9B;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;kDACnB;AAG3B;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;8BAChD,IAAI;iDAAc;AAG7B;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;8BAChD,IAAI;iDAAc;AA3BlB,cAAc;IAF1B,YAAY,EAAE;IACd,MAAM,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC;GAC7B,cAAc,CA4B1B"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { OptionalProps } from '@mikro-orm/core';
|
|
2
|
+
/**
|
|
3
|
+
* Product — the central catalog object. Supports four `type`s (FR-002).
|
|
4
|
+
* Soft-deleted via `deletedAt` (data-model.md cross-cutting section); inactive
|
|
5
|
+
* products still resolve from historical Orders, Invoices, RFQs, Shopping Lists
|
|
6
|
+
* but are excluded from search/filters.
|
|
7
|
+
*
|
|
8
|
+
* Multilingual fields (`name`, `description`) are stored as JSONB per
|
|
9
|
+
* data-model.md; `attributeValues` is a JSONB keyed by ProductAttribute.key.
|
|
10
|
+
*/
|
|
11
|
+
export declare class Product {
|
|
12
|
+
[OptionalProps]?: 'id' | 'createdAt' | 'updatedAt' | 'status' | 'stockMode' | 'deletedAt' | 'archivedAt' | 'allowedOrganizationIds' | 'attributeSetId' | 'downloadAssetId' | 'downloadUrl' | 'manageStock' | 'backorderEnabled' | 'lowStockThreshold' | 'lowStockThresholdMode' | 'fulfilmentStrategy' | 'fulfilmentStrategyWarehouseOrder';
|
|
13
|
+
id: string;
|
|
14
|
+
sku: string;
|
|
15
|
+
slug: string;
|
|
16
|
+
type: 'simple' | 'configurable' | 'grouped' | 'bundle' | 'virtual';
|
|
17
|
+
status: 'draft' | 'active' | 'inactive';
|
|
18
|
+
name: Record<string, string>;
|
|
19
|
+
description: Record<string, string>;
|
|
20
|
+
/** Per-product override of global stock mode (categorical/numeric/null=inherit). */
|
|
21
|
+
stockMode?: 'categorical' | 'numeric' | null;
|
|
22
|
+
visibility: 'public' | 'logged_in_only' | 'organization_restricted';
|
|
23
|
+
/** JSONB `{ attributeKey: value }` validated against ProductAttribute definitions. */
|
|
24
|
+
attributeValues: Record<string, unknown>;
|
|
25
|
+
/**
|
|
26
|
+
* The organisations allowed to see this product — **this column is the
|
|
27
|
+
* storage**, not a cache of one. There is no bridge table: the comment that
|
|
28
|
+
* stood here until issue #227 named a `product_allowed_organizations` M:N
|
|
29
|
+
* source of truth that no migration has ever created and no query has ever
|
|
30
|
+
* read, which is worse than stale — it invites a writer to treat this column
|
|
31
|
+
* as rebuildable from a table that is not there.
|
|
32
|
+
*
|
|
33
|
+
* `products.allowed_organization_ids` is `jsonb not null default '[]'::jsonb`
|
|
34
|
+
* (`db/migrations/20260424T165847_core_foundation_init.ts`), and a read path
|
|
35
|
+
* that enforces it asks with `@>` containment over the array — the buyer's
|
|
36
|
+
* organisation id has to be *in* it, rather than the array being compared to
|
|
37
|
+
* anything.
|
|
38
|
+
*
|
|
39
|
+
* Two states an enforcing read must not conflate:
|
|
40
|
+
*
|
|
41
|
+
* - **empty array** — no organisation restriction. Disclosure is then
|
|
42
|
+
* `visibility`'s alone.
|
|
43
|
+
* - **empty array with `visibility = 'organization_restricted'`** — visible
|
|
44
|
+
* to nobody. The restriction was asked for and names no organisation; the
|
|
45
|
+
* permissive reading of it would disclose the row to everybody, which is
|
|
46
|
+
* the opposite of what the operator saved.
|
|
47
|
+
*
|
|
48
|
+
* A non-empty array restricts whatever `visibility` says, `public` included.
|
|
49
|
+
* Enforcement is per read path and not every path applies it today; the
|
|
50
|
+
* `CatalogQuickSearchPort` doc block in `@endora-commerce/contracts` states the predicate
|
|
51
|
+
* for the path that does.
|
|
52
|
+
*
|
|
53
|
+
* No foreign key holds these ids, so a deleted organisation leaves its id in
|
|
54
|
+
* every product that named it. That question — whether the relationship the
|
|
55
|
+
* old comment imagined should exist — is issue #227's second half and is not
|
|
56
|
+
* settled here.
|
|
57
|
+
*/
|
|
58
|
+
allowedOrganizationIds: string[];
|
|
59
|
+
/**
|
|
60
|
+
* Attribute Set the Product is wired to (feature 002, data-model.md §1.1).
|
|
61
|
+
* Backfilled by the attribute-sets init migration to the system Default
|
|
62
|
+
* set; never null.
|
|
63
|
+
* Validation of `attributeValues` is performed against this set's
|
|
64
|
+
* attributes by `catalog-admin.service.ts` (T023).
|
|
65
|
+
*
|
|
66
|
+
* Default value matches
|
|
67
|
+
* `Migration20260429T064146CatalogAttributeSetsInit.DEFAULT_ATTRIBUTE_SET_ID`
|
|
68
|
+
* — the deterministic UUID of the system Default set. Inlined here as a
|
|
69
|
+
* literal so the entity has zero migration-package dependencies.
|
|
70
|
+
*/
|
|
71
|
+
attributeSetId: string;
|
|
72
|
+
/**
|
|
73
|
+
* Feature 002 — virtual product download fields (data-model.md §1.1).
|
|
74
|
+
* Exactly one MUST be set when type='virtual'; both MUST be null
|
|
75
|
+
* otherwise. Cross-field rule enforced at the service layer (T047).
|
|
76
|
+
*/
|
|
77
|
+
downloadAssetId?: string | null;
|
|
78
|
+
downloadUrl?: string | null;
|
|
79
|
+
createdAt: Date;
|
|
80
|
+
updatedAt: Date;
|
|
81
|
+
archivedAt?: Date | null;
|
|
82
|
+
deletedAt?: Date | null;
|
|
83
|
+
/** When false, the storefront always shows the product as available
|
|
84
|
+
* and the cart accepts any quantity (FR-022). */
|
|
85
|
+
manageStock: boolean;
|
|
86
|
+
/** When true, the storefront accepts zero-stock checkout and the
|
|
87
|
+
* resulting allocation is flagged `is_backorder` (FR-023). */
|
|
88
|
+
backorderEnabled: boolean;
|
|
89
|
+
/** Optional integer; when null the product is exempt from
|
|
90
|
+
* low-stock alerts (FR-013). Used in `cumulative` mode against the
|
|
91
|
+
* product's total on-hand across all warehouses. */
|
|
92
|
+
lowStockThreshold?: number | null;
|
|
93
|
+
/**
|
|
94
|
+
* Determines how `lowStockThreshold` is interpreted:
|
|
95
|
+
* - `cumulative` (default): one threshold applied to the cumulative
|
|
96
|
+
* on-hand across every warehouse holding stock for the product.
|
|
97
|
+
* - `per_warehouse`: the per-(product, warehouse) rows in
|
|
98
|
+
* `product_warehouse_low_stock_thresholds` are consulted instead,
|
|
99
|
+
* each warehouse evaluated independently against its own threshold.
|
|
100
|
+
*/
|
|
101
|
+
lowStockThresholdMode: 'cumulative' | 'per_warehouse';
|
|
102
|
+
/** Per-product override of the global fulfilment strategy (FR-030). */
|
|
103
|
+
fulfilmentStrategy?: 'any' | 'default_first' | 'lowest_stock_first' | 'highest_stock_first' | 'defined_order' | null;
|
|
104
|
+
/** When `fulfilment_strategy = 'defined_order'`, the ordered list
|
|
105
|
+
* of warehouse UUIDs to walk. */
|
|
106
|
+
fulfilmentStrategyWarehouseOrder?: string[] | null;
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=product.entity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"product.entity.d.ts","sourceRoot":"","sources":["../../../src/backend/entities/product.entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,aAAa,EAAgC,MAAM,iBAAiB,CAAC;AAI7F;;;;;;;;GAQG;AACH,qBAEa,OAAO;IAClB,CAAC,aAAa,CAAC,CAAC,EACZ,IAAI,GACJ,WAAW,GACX,WAAW,GACX,QAAQ,GACR,WAAW,GACX,WAAW,GACX,YAAY,GACZ,wBAAwB,GACxB,gBAAgB,GAChB,iBAAiB,GACjB,aAAa,GACb,aAAa,GACb,kBAAkB,GAClB,mBAAmB,GACnB,uBAAuB,GACvB,oBAAoB,GACpB,kCAAkC,CAAC;IAGvC,EAAE,EAAE,MAAM,CAAgB;IAI1B,GAAG,EAAG,MAAM,CAAC;IAKb,IAAI,EAAG,MAAM,CAAC;IAGd,IAAI,EAAG,QAAQ,GAAG,cAAc,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;IAIpE,MAAM,EAAE,OAAO,GAAG,QAAQ,GAAG,UAAU,CAAW;IAGlD,IAAI,EAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAG9B,WAAW,EAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAErC,oFAAoF;IAEpF,SAAS,CAAC,EAAE,aAAa,GAAG,SAAS,GAAG,IAAI,CAAC;IAG7C,UAAU,EAAE,QAAQ,GAAG,gBAAgB,GAAG,yBAAyB,CAAY;IAE/E,sFAAsF;IAEtF,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAM;IAE9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;IAEH,sBAAsB,EAAE,MAAM,EAAE,CAAM;IAEtC;;;;;;;;;;;OAWG;IAEH,cAAc,EAAE,MAAM,CAA0C;IAEhE;;;;OAIG;IAEH,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAGhC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAI5B,SAAS,EAAE,IAAI,CAAc;IAI7B,SAAS,EAAE,IAAI,CAAc;IAI7B,UAAU,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IAGzB,SAAS,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IAMxB;sDACkD;IAElD,WAAW,EAAE,OAAO,CAAQ;IAE5B;mEAC+D;IAE/D,gBAAgB,EAAE,OAAO,CAAS;IAElC;;yDAEqD;IAErD,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAElC;;;;;;;OAOG;IAEH,qBAAqB,EAAE,YAAY,GAAG,eAAe,CAAgB;IAErE,uEAAuE;IAEvE,kBAAkB,CAAC,EACf,KAAK,GACL,eAAe,GACf,oBAAoB,GACpB,qBAAqB,GACrB,eAAe,GACf,IAAI,CAAC;IAET;sCACkC;IAElC,gCAAgC,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;CACpD"}
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
import { Entity, Index, OptionalProps, PrimaryKey, Property, Unique } from '@mikro-orm/core';
|
|
11
|
+
import { GlobalEntity } from '@endora-commerce/platform/tenancy';
|
|
12
|
+
import { randomUUID } from 'crypto';
|
|
13
|
+
/**
|
|
14
|
+
* Product — the central catalog object. Supports four `type`s (FR-002).
|
|
15
|
+
* Soft-deleted via `deletedAt` (data-model.md cross-cutting section); inactive
|
|
16
|
+
* products still resolve from historical Orders, Invoices, RFQs, Shopping Lists
|
|
17
|
+
* but are excluded from search/filters.
|
|
18
|
+
*
|
|
19
|
+
* Multilingual fields (`name`, `description`) are stored as JSONB per
|
|
20
|
+
* data-model.md; `attributeValues` is a JSONB keyed by ProductAttribute.key.
|
|
21
|
+
*/
|
|
22
|
+
let Product = class Product {
|
|
23
|
+
[OptionalProps];
|
|
24
|
+
id = randomUUID();
|
|
25
|
+
sku;
|
|
26
|
+
slug;
|
|
27
|
+
type;
|
|
28
|
+
status = 'draft';
|
|
29
|
+
name;
|
|
30
|
+
description;
|
|
31
|
+
/** Per-product override of global stock mode (categorical/numeric/null=inherit). */
|
|
32
|
+
stockMode;
|
|
33
|
+
visibility = 'public';
|
|
34
|
+
/** JSONB `{ attributeKey: value }` validated against ProductAttribute definitions. */
|
|
35
|
+
attributeValues = {};
|
|
36
|
+
/**
|
|
37
|
+
* The organisations allowed to see this product — **this column is the
|
|
38
|
+
* storage**, not a cache of one. There is no bridge table: the comment that
|
|
39
|
+
* stood here until issue #227 named a `product_allowed_organizations` M:N
|
|
40
|
+
* source of truth that no migration has ever created and no query has ever
|
|
41
|
+
* read, which is worse than stale — it invites a writer to treat this column
|
|
42
|
+
* as rebuildable from a table that is not there.
|
|
43
|
+
*
|
|
44
|
+
* `products.allowed_organization_ids` is `jsonb not null default '[]'::jsonb`
|
|
45
|
+
* (`db/migrations/20260424T165847_core_foundation_init.ts`), and a read path
|
|
46
|
+
* that enforces it asks with `@>` containment over the array — the buyer's
|
|
47
|
+
* organisation id has to be *in* it, rather than the array being compared to
|
|
48
|
+
* anything.
|
|
49
|
+
*
|
|
50
|
+
* Two states an enforcing read must not conflate:
|
|
51
|
+
*
|
|
52
|
+
* - **empty array** — no organisation restriction. Disclosure is then
|
|
53
|
+
* `visibility`'s alone.
|
|
54
|
+
* - **empty array with `visibility = 'organization_restricted'`** — visible
|
|
55
|
+
* to nobody. The restriction was asked for and names no organisation; the
|
|
56
|
+
* permissive reading of it would disclose the row to everybody, which is
|
|
57
|
+
* the opposite of what the operator saved.
|
|
58
|
+
*
|
|
59
|
+
* A non-empty array restricts whatever `visibility` says, `public` included.
|
|
60
|
+
* Enforcement is per read path and not every path applies it today; the
|
|
61
|
+
* `CatalogQuickSearchPort` doc block in `@endora-commerce/contracts` states the predicate
|
|
62
|
+
* for the path that does.
|
|
63
|
+
*
|
|
64
|
+
* No foreign key holds these ids, so a deleted organisation leaves its id in
|
|
65
|
+
* every product that named it. That question — whether the relationship the
|
|
66
|
+
* old comment imagined should exist — is issue #227's second half and is not
|
|
67
|
+
* settled here.
|
|
68
|
+
*/
|
|
69
|
+
allowedOrganizationIds = [];
|
|
70
|
+
/**
|
|
71
|
+
* Attribute Set the Product is wired to (feature 002, data-model.md §1.1).
|
|
72
|
+
* Backfilled by the attribute-sets init migration to the system Default
|
|
73
|
+
* set; never null.
|
|
74
|
+
* Validation of `attributeValues` is performed against this set's
|
|
75
|
+
* attributes by `catalog-admin.service.ts` (T023).
|
|
76
|
+
*
|
|
77
|
+
* Default value matches
|
|
78
|
+
* `Migration20260429T064146CatalogAttributeSetsInit.DEFAULT_ATTRIBUTE_SET_ID`
|
|
79
|
+
* — the deterministic UUID of the system Default set. Inlined here as a
|
|
80
|
+
* literal so the entity has zero migration-package dependencies.
|
|
81
|
+
*/
|
|
82
|
+
attributeSetId = 'defa0017-0000-4000-8000-000000000000';
|
|
83
|
+
/**
|
|
84
|
+
* Feature 002 — virtual product download fields (data-model.md §1.1).
|
|
85
|
+
* Exactly one MUST be set when type='virtual'; both MUST be null
|
|
86
|
+
* otherwise. Cross-field rule enforced at the service layer (T047).
|
|
87
|
+
*/
|
|
88
|
+
downloadAssetId;
|
|
89
|
+
downloadUrl;
|
|
90
|
+
createdAt = new Date();
|
|
91
|
+
updatedAt = new Date();
|
|
92
|
+
archivedAt;
|
|
93
|
+
deletedAt;
|
|
94
|
+
// ----------------------------------------------------------------
|
|
95
|
+
// Inventory module (feature 010) — per-product stock-management flags
|
|
96
|
+
// ----------------------------------------------------------------
|
|
97
|
+
/** When false, the storefront always shows the product as available
|
|
98
|
+
* and the cart accepts any quantity (FR-022). */
|
|
99
|
+
manageStock = true;
|
|
100
|
+
/** When true, the storefront accepts zero-stock checkout and the
|
|
101
|
+
* resulting allocation is flagged `is_backorder` (FR-023). */
|
|
102
|
+
backorderEnabled = false;
|
|
103
|
+
/** Optional integer; when null the product is exempt from
|
|
104
|
+
* low-stock alerts (FR-013). Used in `cumulative` mode against the
|
|
105
|
+
* product's total on-hand across all warehouses. */
|
|
106
|
+
lowStockThreshold;
|
|
107
|
+
/**
|
|
108
|
+
* Determines how `lowStockThreshold` is interpreted:
|
|
109
|
+
* - `cumulative` (default): one threshold applied to the cumulative
|
|
110
|
+
* on-hand across every warehouse holding stock for the product.
|
|
111
|
+
* - `per_warehouse`: the per-(product, warehouse) rows in
|
|
112
|
+
* `product_warehouse_low_stock_thresholds` are consulted instead,
|
|
113
|
+
* each warehouse evaluated independently against its own threshold.
|
|
114
|
+
*/
|
|
115
|
+
lowStockThresholdMode = 'cumulative';
|
|
116
|
+
/** Per-product override of the global fulfilment strategy (FR-030). */
|
|
117
|
+
fulfilmentStrategy;
|
|
118
|
+
/** When `fulfilment_strategy = 'defined_order'`, the ordered list
|
|
119
|
+
* of warehouse UUIDs to walk. */
|
|
120
|
+
fulfilmentStrategyWarehouseOrder;
|
|
121
|
+
};
|
|
122
|
+
__decorate([
|
|
123
|
+
PrimaryKey({ type: 'uuid' }),
|
|
124
|
+
__metadata("design:type", String)
|
|
125
|
+
], Product.prototype, "id", void 0);
|
|
126
|
+
__decorate([
|
|
127
|
+
Property({ type: 'string', length: 255 }),
|
|
128
|
+
Unique(),
|
|
129
|
+
__metadata("design:type", String)
|
|
130
|
+
], Product.prototype, "sku", void 0);
|
|
131
|
+
__decorate([
|
|
132
|
+
Property({ type: 'string', length: 160 }),
|
|
133
|
+
Index(),
|
|
134
|
+
Unique(),
|
|
135
|
+
__metadata("design:type", String)
|
|
136
|
+
], Product.prototype, "slug", void 0);
|
|
137
|
+
__decorate([
|
|
138
|
+
Property({ type: 'string', length: 16 }),
|
|
139
|
+
__metadata("design:type", String)
|
|
140
|
+
], Product.prototype, "type", void 0);
|
|
141
|
+
__decorate([
|
|
142
|
+
Property({ type: 'string', length: 16 }),
|
|
143
|
+
Index(),
|
|
144
|
+
__metadata("design:type", String)
|
|
145
|
+
], Product.prototype, "status", void 0);
|
|
146
|
+
__decorate([
|
|
147
|
+
Property({ type: 'json' }),
|
|
148
|
+
__metadata("design:type", Object)
|
|
149
|
+
], Product.prototype, "name", void 0);
|
|
150
|
+
__decorate([
|
|
151
|
+
Property({ type: 'json' }),
|
|
152
|
+
__metadata("design:type", Object)
|
|
153
|
+
], Product.prototype, "description", void 0);
|
|
154
|
+
__decorate([
|
|
155
|
+
Property({ type: 'string', length: 16, nullable: true }),
|
|
156
|
+
__metadata("design:type", Object)
|
|
157
|
+
], Product.prototype, "stockMode", void 0);
|
|
158
|
+
__decorate([
|
|
159
|
+
Property({ type: 'string', length: 32 }),
|
|
160
|
+
__metadata("design:type", String)
|
|
161
|
+
], Product.prototype, "visibility", void 0);
|
|
162
|
+
__decorate([
|
|
163
|
+
Property({ type: 'json' }),
|
|
164
|
+
__metadata("design:type", Object)
|
|
165
|
+
], Product.prototype, "attributeValues", void 0);
|
|
166
|
+
__decorate([
|
|
167
|
+
Property({ type: 'json' }),
|
|
168
|
+
__metadata("design:type", Array)
|
|
169
|
+
], Product.prototype, "allowedOrganizationIds", void 0);
|
|
170
|
+
__decorate([
|
|
171
|
+
Property({ type: 'uuid' }),
|
|
172
|
+
__metadata("design:type", String)
|
|
173
|
+
], Product.prototype, "attributeSetId", void 0);
|
|
174
|
+
__decorate([
|
|
175
|
+
Property({ type: 'uuid', nullable: true }),
|
|
176
|
+
__metadata("design:type", Object)
|
|
177
|
+
], Product.prototype, "downloadAssetId", void 0);
|
|
178
|
+
__decorate([
|
|
179
|
+
Property({ type: 'string', length: 2048, nullable: true }),
|
|
180
|
+
__metadata("design:type", Object)
|
|
181
|
+
], Product.prototype, "downloadUrl", void 0);
|
|
182
|
+
__decorate([
|
|
183
|
+
Property({ type: 'datetime', onCreate: () => new Date() }),
|
|
184
|
+
Index(),
|
|
185
|
+
__metadata("design:type", Date)
|
|
186
|
+
], Product.prototype, "createdAt", void 0);
|
|
187
|
+
__decorate([
|
|
188
|
+
Property({ type: 'datetime', onUpdate: () => new Date() }),
|
|
189
|
+
Index(),
|
|
190
|
+
__metadata("design:type", Date)
|
|
191
|
+
], Product.prototype, "updatedAt", void 0);
|
|
192
|
+
__decorate([
|
|
193
|
+
Property({ type: 'datetime', nullable: true }),
|
|
194
|
+
Index(),
|
|
195
|
+
__metadata("design:type", Object)
|
|
196
|
+
], Product.prototype, "archivedAt", void 0);
|
|
197
|
+
__decorate([
|
|
198
|
+
Property({ type: 'datetime', nullable: true }),
|
|
199
|
+
__metadata("design:type", Object)
|
|
200
|
+
], Product.prototype, "deletedAt", void 0);
|
|
201
|
+
__decorate([
|
|
202
|
+
Property({ type: 'boolean' }),
|
|
203
|
+
__metadata("design:type", Boolean)
|
|
204
|
+
], Product.prototype, "manageStock", void 0);
|
|
205
|
+
__decorate([
|
|
206
|
+
Property({ type: 'boolean' }),
|
|
207
|
+
__metadata("design:type", Boolean)
|
|
208
|
+
], Product.prototype, "backorderEnabled", void 0);
|
|
209
|
+
__decorate([
|
|
210
|
+
Property({ type: 'integer', nullable: true }),
|
|
211
|
+
__metadata("design:type", Object)
|
|
212
|
+
], Product.prototype, "lowStockThreshold", void 0);
|
|
213
|
+
__decorate([
|
|
214
|
+
Property({ type: 'string', length: 16 }),
|
|
215
|
+
__metadata("design:type", String)
|
|
216
|
+
], Product.prototype, "lowStockThresholdMode", void 0);
|
|
217
|
+
__decorate([
|
|
218
|
+
Property({ type: 'string', length: 32, nullable: true }),
|
|
219
|
+
__metadata("design:type", Object)
|
|
220
|
+
], Product.prototype, "fulfilmentStrategy", void 0);
|
|
221
|
+
__decorate([
|
|
222
|
+
Property({ type: 'json', nullable: true }),
|
|
223
|
+
__metadata("design:type", Object)
|
|
224
|
+
], Product.prototype, "fulfilmentStrategyWarehouseOrder", void 0);
|
|
225
|
+
Product = __decorate([
|
|
226
|
+
GlobalEntity(),
|
|
227
|
+
Entity({ tableName: 'products' })
|
|
228
|
+
], Product);
|
|
229
|
+
export { Product };
|
|
230
|
+
//# sourceMappingURL=product.entity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"product.entity.js","sourceRoot":"","sources":["../../../src/backend/entities/product.entity.ts"],"names":[],"mappings":"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"}
|