@classytic/commerce-sdk 0.1.1 → 0.2.1
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/README.md +187 -74
- package/dist/accounting/api/account.d.ts +49 -0
- package/dist/accounting/api/account.js +45 -0
- package/dist/accounting/api/budget.d.ts +76 -0
- package/dist/accounting/api/budget.js +82 -0
- package/dist/accounting/api/constants.d.ts +58 -0
- package/dist/accounting/api/constants.js +79 -0
- package/dist/accounting/api/fiscal-period.d.ts +31 -0
- package/dist/accounting/api/fiscal-period.js +30 -0
- package/dist/accounting/api/index.d.ts +7 -0
- package/dist/accounting/api/journal-entry.d.ts +66 -0
- package/dist/accounting/api/journal-entry.js +72 -0
- package/dist/accounting/api/posting.d.ts +55 -0
- package/dist/accounting/api/posting.js +70 -0
- package/dist/accounting/api/reports.d.ts +63 -0
- package/dist/accounting/api/reports.js +81 -0
- package/dist/accounting/hooks/account.d.ts +29 -0
- package/dist/accounting/hooks/account.js +102 -0
- package/dist/accounting/hooks/budget.d.ts +39 -0
- package/dist/accounting/hooks/budget.js +106 -0
- package/dist/accounting/hooks/fiscal-period.d.ts +22 -0
- package/dist/accounting/hooks/fiscal-period.js +52 -0
- package/dist/accounting/hooks/index.d.ts +6 -0
- package/dist/accounting/hooks/journal-entry.d.ts +37 -0
- package/dist/accounting/hooks/journal-entry.js +89 -0
- package/dist/accounting/hooks/posting.d.ts +128 -0
- package/dist/accounting/hooks/posting.js +119 -0
- package/dist/accounting/hooks/reports.d.ts +32 -0
- package/dist/accounting/hooks/reports.js +131 -0
- package/dist/accounting/index.d.ts +15 -0
- package/dist/accounting/index.js +15 -0
- package/dist/accounting/types/index.d.ts +375 -0
- package/dist/analytics/api/analytics.d.ts +16 -0
- package/dist/analytics/api/analytics.js +27 -0
- package/dist/analytics/api/index.d.ts +1 -0
- package/dist/analytics/hooks/analytics.d.ts +12 -0
- package/dist/analytics/hooks/analytics.js +33 -0
- package/dist/analytics/hooks/index.d.ts +1 -0
- package/dist/analytics/index.d.ts +4 -27
- package/dist/analytics/index.js +4 -6
- package/dist/analytics/types.d.ts +46 -0
- package/dist/audit/api/audit.d.ts +17 -0
- package/dist/audit/api/audit.js +21 -0
- package/dist/audit/hooks/audit.d.ts +17 -0
- package/dist/audit/hooks/audit.js +38 -0
- package/dist/audit/index.d.ts +4 -0
- package/dist/audit/index.js +4 -0
- package/dist/audit/types/index.d.ts +32 -0
- package/dist/auth/api/user-data.d.ts +30 -0
- package/dist/auth/api/user-data.js +70 -0
- package/dist/auth/hooks/user-search.d.ts +32 -0
- package/dist/auth/hooks/user-search.js +51 -0
- package/dist/auth/index.d.ts +4 -39
- package/dist/auth/index.js +5 -5
- package/dist/auth/types.d.ts +46 -0
- package/dist/auth/types.js +27 -0
- package/dist/catalog/api/category.d.ts +97 -0
- package/dist/catalog/api/category.js +109 -0
- package/dist/catalog/api/index.d.ts +4 -0
- package/dist/catalog/api/product.d.ts +136 -0
- package/dist/catalog/api/product.js +142 -0
- package/dist/catalog/api/review.d.ts +32 -0
- package/dist/catalog/api/review.js +41 -0
- package/dist/catalog/api/size-guide.d.ts +46 -0
- package/dist/catalog/api/size-guide.js +58 -0
- package/dist/catalog/hooks/category.d.ts +201 -0
- package/dist/catalog/hooks/category.js +295 -0
- package/dist/catalog/hooks/index.d.ts +4 -0
- package/dist/catalog/hooks/product.d.ts +165 -0
- package/dist/catalog/hooks/product.js +267 -0
- package/dist/catalog/hooks/review.d.ts +18 -0
- package/dist/catalog/hooks/review.js +38 -0
- package/dist/catalog/hooks/size-guide.d.ts +136 -0
- package/dist/catalog/hooks/size-guide.js +173 -0
- package/dist/catalog/index.d.ts +13 -571
- package/dist/catalog/index.js +10 -9
- package/dist/catalog/prefetch.d.ts +29 -0
- package/dist/catalog/prefetch.js +32 -0
- package/dist/catalog/types/category.d.ts +168 -0
- package/dist/catalog/types/index.d.ts +4 -0
- package/dist/catalog/types/product.d.ts +261 -0
- package/dist/catalog/types/review.d.ts +48 -0
- package/dist/catalog/types/size-guide.d.ts +118 -0
- package/dist/client.d.ts +138 -0
- package/dist/client.js +129 -0
- package/dist/content/api/cms.d.ts +27 -0
- package/dist/content/api/cms.js +43 -0
- package/dist/content/api/index.d.ts +2 -0
- package/dist/content/api/media.d.ts +74 -0
- package/dist/content/api/media.js +77 -0
- package/dist/content/hooks/cms.d.ts +31 -0
- package/dist/content/hooks/cms.js +62 -0
- package/dist/content/hooks/index.d.ts +2 -0
- package/dist/content/hooks/media.d.ts +74 -0
- package/dist/content/hooks/media.js +153 -0
- package/dist/content/index.d.ts +7 -309
- package/dist/content/index.js +6 -6
- package/dist/content/types/cms.d.ts +390 -0
- package/dist/content/types/media.d.ts +110 -0
- package/dist/core/api-factory.d.ts +17 -0
- package/dist/core/api-factory.js +39 -0
- package/dist/core/api-handler.d.ts +53 -0
- package/dist/core/api-handler.js +89 -0
- package/dist/core/index.d.ts +4 -166
- package/dist/core/index.js +4 -5
- package/dist/core/prefetch.d.ts +2 -0
- package/dist/core/prefetch.js +3 -0
- package/dist/core/react/crud.factory.d.ts +3 -0
- package/dist/core/react/crud.factory.js +5 -0
- package/dist/core/react/index.d.ts +4 -0
- package/dist/core/react/index.js +7 -0
- package/dist/core/react/mutation.factory.d.ts +9 -0
- package/dist/core/react/mutation.factory.js +21 -0
- package/dist/core/react/query.factory.d.ts +12 -0
- package/dist/core/react/query.factory.js +5 -0
- package/dist/core/server-context.d.ts +6 -0
- package/dist/core/server-context.js +12 -0
- package/dist/core/types/shared.d.ts +29 -0
- package/dist/finance/api/finance.d.ts +22 -0
- package/dist/finance/api/finance.js +29 -0
- package/dist/finance/api/index.d.ts +1 -0
- package/dist/finance/hooks/finance.d.ts +32 -0
- package/dist/finance/hooks/finance.js +66 -0
- package/dist/finance/hooks/index.d.ts +1 -0
- package/dist/finance/index.d.ts +4 -81
- package/dist/finance/index.js +4 -5
- package/dist/finance/types/finance.d.ts +82 -0
- package/dist/index.d.ts +139 -32
- package/dist/index.js +113 -29
- package/dist/inventory/api/adjustment.d.ts +123 -0
- package/dist/inventory/api/adjustment.js +120 -0
- package/dist/inventory/api/availability.d.ts +70 -0
- package/dist/inventory/api/availability.js +47 -0
- package/dist/inventory/api/cost.d.ts +58 -0
- package/dist/inventory/api/cost.js +34 -0
- package/dist/inventory/api/index.d.ts +18 -0
- package/dist/inventory/api/lot.d.ts +82 -0
- package/dist/inventory/api/lot.js +46 -0
- package/dist/inventory/api/movement.d.ts +71 -0
- package/dist/inventory/api/movement.js +75 -0
- package/dist/inventory/api/package.d.ts +97 -0
- package/dist/inventory/api/package.js +56 -0
- package/dist/inventory/api/procurement.d.ts +110 -0
- package/dist/inventory/api/procurement.js +59 -0
- package/dist/inventory/api/purchase.d.ts +106 -0
- package/dist/inventory/api/purchase.js +115 -0
- package/dist/inventory/api/replenishment.d.ts +145 -0
- package/dist/inventory/api/replenishment.js +63 -0
- package/dist/inventory/api/report.d.ts +102 -0
- package/dist/inventory/api/report.js +54 -0
- package/dist/inventory/api/request.d.ts +157 -0
- package/dist/inventory/api/request.js +140 -0
- package/dist/inventory/api/reservation.d.ts +77 -0
- package/dist/inventory/api/reservation.js +51 -0
- package/dist/inventory/api/scan.d.ts +29 -0
- package/dist/inventory/api/scan.js +30 -0
- package/dist/inventory/api/supplier.d.ts +9 -0
- package/dist/inventory/api/supplier.js +24 -0
- package/dist/inventory/api/trace.d.ts +71 -0
- package/dist/inventory/api/trace.js +39 -0
- package/dist/inventory/api/transfer.d.ts +162 -0
- package/dist/inventory/api/transfer.js +155 -0
- package/dist/inventory/api/warehouse.d.ts +199 -0
- package/dist/inventory/api/warehouse.js +155 -0
- package/dist/inventory/hooks/adjustment.d.ts +24 -0
- package/dist/inventory/hooks/adjustment.js +30 -0
- package/dist/inventory/hooks/availability.d.ts +16 -0
- package/dist/inventory/hooks/availability.js +35 -0
- package/dist/inventory/hooks/cost.d.ts +21 -0
- package/dist/inventory/hooks/cost.js +50 -0
- package/dist/inventory/hooks/index.d.ts +18 -0
- package/dist/inventory/hooks/inventory.d.ts +130 -0
- package/dist/inventory/hooks/inventory.js +267 -0
- package/dist/inventory/hooks/lot.d.ts +26 -0
- package/dist/inventory/hooks/lot.js +67 -0
- package/dist/inventory/hooks/movement.d.ts +68 -0
- package/dist/inventory/hooks/movement.js +106 -0
- package/dist/inventory/hooks/package.d.ts +32 -0
- package/dist/inventory/hooks/package.js +80 -0
- package/dist/inventory/hooks/procurement.d.ts +28 -0
- package/dist/inventory/hooks/procurement.js +87 -0
- package/dist/inventory/hooks/purchase.d.ts +63 -0
- package/dist/inventory/hooks/purchase.js +119 -0
- package/dist/inventory/hooks/replenishment.d.ts +34 -0
- package/dist/inventory/hooks/replenishment.js +87 -0
- package/dist/inventory/hooks/report.d.ts +37 -0
- package/dist/inventory/hooks/report.js +79 -0
- package/dist/inventory/hooks/request.d.ts +113 -0
- package/dist/inventory/hooks/request.js +218 -0
- package/dist/inventory/hooks/reservation.d.ts +25 -0
- package/dist/inventory/hooks/reservation.js +56 -0
- package/dist/inventory/hooks/scan.d.ts +14 -0
- package/dist/inventory/hooks/scan.js +22 -0
- package/dist/inventory/hooks/supplier.d.ts +24 -0
- package/dist/inventory/hooks/supplier.js +30 -0
- package/dist/inventory/hooks/trace.d.ts +19 -0
- package/dist/inventory/hooks/trace.js +55 -0
- package/dist/inventory/hooks/transfer.d.ts +90 -0
- package/dist/inventory/hooks/transfer.js +197 -0
- package/dist/inventory/hooks/warehouse.d.ts +87 -0
- package/dist/inventory/hooks/warehouse.js +240 -0
- package/dist/inventory/index.d.ts +39 -512
- package/dist/inventory/index.js +37 -16
- package/dist/inventory/types/index.d.ts +3 -0
- package/dist/inventory/types/inventory.d.ts +485 -0
- package/dist/inventory/types/supplier.d.ts +90 -0
- package/dist/inventory/types/warehouse.d.ts +182 -0
- package/dist/logistics/api/index.d.ts +1 -0
- package/dist/logistics/api/logistics.d.ts +260 -0
- package/dist/logistics/api/logistics.js +249 -0
- package/dist/logistics/hooks/index.d.ts +1 -0
- package/dist/logistics/hooks/logistics.d.ts +252 -0
- package/dist/logistics/hooks/logistics.js +370 -0
- package/dist/logistics/index.d.ts +4 -248
- package/dist/logistics/index.js +4 -7
- package/dist/logistics/types/logistics.d.ts +188 -0
- package/dist/node_modules/@tanstack/query-core/build/modern/hydration-C-jfQLut.d.ts +270 -0
- package/dist/notifications/api/notification.d.ts +15 -0
- package/dist/notifications/api/notification.js +43 -0
- package/dist/notifications/hooks/notification.d.ts +34 -0
- package/dist/notifications/hooks/notification.js +86 -0
- package/dist/notifications/hooks/stream.d.ts +22 -0
- package/dist/notifications/hooks/stream.js +80 -0
- package/dist/notifications/index.d.ts +5 -0
- package/dist/notifications/index.js +5 -0
- package/dist/notifications/types/index.d.ts +57 -0
- package/dist/payments/api/index.d.ts +1 -0
- package/dist/payments/api/payment.d.ts +89 -0
- package/dist/payments/api/payment.js +93 -0
- package/dist/payments/hooks/payment.d.ts +53 -0
- package/dist/payments/hooks/payment.js +93 -0
- package/dist/payments/index.d.ts +4 -55
- package/dist/payments/index.js +4 -6
- package/dist/payments/types/payment.d.ts +50 -0
- package/dist/permissions/checker.d.ts +125 -0
- package/dist/permissions/checker.js +150 -0
- package/dist/permissions/index.d.ts +3 -0
- package/dist/permissions/index.js +4 -0
- package/dist/permissions/roles.d.ts +39 -0
- package/dist/permissions/roles.js +66 -0
- package/dist/platform/api/branch.d.ts +57 -0
- package/dist/platform/api/branch.js +73 -0
- package/dist/platform/api/config.d.ts +67 -0
- package/dist/platform/api/config.js +83 -0
- package/dist/platform/api/features.d.ts +15 -0
- package/dist/platform/api/features.js +20 -0
- package/dist/platform/api/index.d.ts +6 -0
- package/dist/platform/api/promo.d.ts +286 -0
- package/dist/platform/api/promo.js +276 -0
- package/dist/platform/api/user.d.ts +10 -0
- package/dist/platform/api/user.js +29 -0
- package/dist/platform/api/webhook.d.ts +102 -0
- package/dist/platform/api/webhook.js +124 -0
- package/dist/platform/hooks/branch.d.ts +24 -0
- package/dist/platform/hooks/branch.js +31 -0
- package/dist/platform/hooks/config.d.ts +61 -0
- package/dist/platform/hooks/config.js +100 -0
- package/dist/platform/hooks/features.d.ts +22 -0
- package/dist/platform/hooks/features.js +75 -0
- package/dist/platform/hooks/index.d.ts +6 -0
- package/dist/platform/hooks/promo.d.ts +218 -0
- package/dist/platform/hooks/promo.js +451 -0
- package/dist/platform/hooks/user.d.ts +24 -0
- package/dist/platform/hooks/user.js +30 -0
- package/dist/platform/index.d.ts +18 -645
- package/dist/platform/index.js +14 -8
- package/dist/platform/prefetch.d.ts +9 -0
- package/dist/platform/prefetch.js +11 -0
- package/dist/platform/types/branch.d.ts +110 -0
- package/dist/platform/types/branch.js +16 -0
- package/dist/platform/types/config.d.ts +137 -0
- package/dist/platform/types/features.d.ts +46 -0
- package/dist/platform/types/promo.d.ts +260 -0
- package/dist/platform/types/user.d.ts +72 -0
- package/dist/platform/types/webhook.d.ts +165 -0
- package/dist/sales/api/cart.d.ts +34 -0
- package/dist/sales/api/cart.js +38 -0
- package/dist/sales/api/customer.d.ts +40 -0
- package/dist/sales/api/customer.js +52 -0
- package/dist/sales/api/earning-rules.d.ts +54 -0
- package/dist/sales/api/earning-rules.js +56 -0
- package/dist/sales/api/index.d.ts +9 -0
- package/dist/sales/api/loyalty.d.ts +54 -0
- package/dist/sales/api/loyalty.js +57 -0
- package/dist/sales/api/order.d.ts +147 -0
- package/dist/sales/api/order.js +69 -0
- package/dist/sales/api/pos.d.ts +81 -0
- package/dist/sales/api/pos.js +95 -0
- package/dist/sales/api/referrals.d.ts +63 -0
- package/dist/sales/api/referrals.js +62 -0
- package/dist/sales/api/tiers.d.ts +66 -0
- package/dist/sales/api/tiers.js +59 -0
- package/dist/sales/hooks/cart.d.ts +50 -0
- package/dist/sales/hooks/cart.js +161 -0
- package/dist/sales/hooks/customer.d.ts +100 -0
- package/dist/sales/hooks/customer.js +130 -0
- package/dist/sales/hooks/earning-rules.d.ts +31 -0
- package/dist/sales/hooks/earning-rules.js +112 -0
- package/dist/sales/hooks/index.d.ts +8 -0
- package/dist/sales/hooks/loyalty.d.ts +51 -0
- package/dist/sales/hooks/loyalty.js +122 -0
- package/dist/sales/hooks/order.d.ts +219 -0
- package/dist/sales/hooks/order.js +401 -0
- package/dist/sales/hooks/pos.d.ts +87 -0
- package/dist/sales/hooks/pos.js +222 -0
- package/dist/sales/hooks/referrals.d.ts +34 -0
- package/dist/sales/hooks/referrals.js +132 -0
- package/dist/sales/hooks/tiers.d.ts +32 -0
- package/dist/sales/hooks/tiers.js +144 -0
- package/dist/sales/index.d.ts +25 -587
- package/dist/sales/index.js +19 -9
- package/dist/sales/prefetch.d.ts +10 -0
- package/dist/sales/prefetch.js +13 -0
- package/dist/sales/types/cart.d.ts +123 -0
- package/dist/sales/types/customer.d.ts +119 -0
- package/dist/sales/types/earning-rules.d.ts +75 -0
- package/dist/sales/types/index.d.ts +8 -0
- package/dist/sales/types/loyalty.d.ts +120 -0
- package/dist/sales/types/order.d.ts +487 -0
- package/dist/sales/types/order.js +22 -0
- package/dist/sales/types/pos.d.ts +227 -0
- package/dist/sales/types/referrals.d.ts +51 -0
- package/dist/sales/types/tiers.d.ts +56 -0
- package/dist/server.d.ts +41 -23
- package/dist/server.js +41 -36
- package/dist/transaction/api/index.d.ts +1 -0
- package/dist/transaction/api/transaction.d.ts +63 -0
- package/dist/transaction/api/transaction.js +84 -0
- package/dist/transaction/hooks/index.d.ts +1 -0
- package/dist/transaction/hooks/transaction.d.ts +106 -0
- package/dist/transaction/hooks/transaction.js +156 -0
- package/dist/transaction/index.d.ts +4 -104
- package/dist/transaction/index.js +5 -8
- package/dist/transaction/types/transaction.d.ts +440 -0
- package/dist/transaction/types/transaction.js +86 -0
- package/package.json +36 -25
- package/dist/adjustment-MNH3AT6S.js +0 -5
- package/dist/adjustment-MNH3AT6S.js.map +0 -1
- package/dist/analytics/index.js.map +0 -1
- package/dist/analytics-DMcD-o8w.d.ts +0 -76
- package/dist/api-factory-B_h4RKBm.d.ts +0 -280
- package/dist/auth/index.js.map +0 -1
- package/dist/catalog/index.js.map +0 -1
- package/dist/chunk-24FDD6UR.js +0 -75
- package/dist/chunk-24FDD6UR.js.map +0 -1
- package/dist/chunk-2TF7QNYV.js +0 -159
- package/dist/chunk-2TF7QNYV.js.map +0 -1
- package/dist/chunk-2YAZ5WG6.js +0 -479
- package/dist/chunk-2YAZ5WG6.js.map +0 -1
- package/dist/chunk-36NLLAVH.js +0 -177
- package/dist/chunk-36NLLAVH.js.map +0 -1
- package/dist/chunk-3OYSJB3P.js +0 -126
- package/dist/chunk-3OYSJB3P.js.map +0 -1
- package/dist/chunk-5E57JODA.js +0 -135
- package/dist/chunk-5E57JODA.js.map +0 -1
- package/dist/chunk-7LZCW4VF.js +0 -13
- package/dist/chunk-7LZCW4VF.js.map +0 -1
- package/dist/chunk-ANYGZ6O5.js +0 -830
- package/dist/chunk-ANYGZ6O5.js.map +0 -1
- package/dist/chunk-AQAISI4F.js +0 -183
- package/dist/chunk-AQAISI4F.js.map +0 -1
- package/dist/chunk-B6MPVOV7.js +0 -328
- package/dist/chunk-B6MPVOV7.js.map +0 -1
- package/dist/chunk-CILP56G2.js +0 -94
- package/dist/chunk-CILP56G2.js.map +0 -1
- package/dist/chunk-ERQ52WHY.js +0 -534
- package/dist/chunk-ERQ52WHY.js.map +0 -1
- package/dist/chunk-FOTUJPM4.js +0 -640
- package/dist/chunk-FOTUJPM4.js.map +0 -1
- package/dist/chunk-IHCBBLLW.js +0 -198
- package/dist/chunk-IHCBBLLW.js.map +0 -1
- package/dist/chunk-J4JBQET2.js +0 -76
- package/dist/chunk-J4JBQET2.js.map +0 -1
- package/dist/chunk-L4OEI4VZ.js +0 -123
- package/dist/chunk-L4OEI4VZ.js.map +0 -1
- package/dist/chunk-LRV7MWWX.js +0 -616
- package/dist/chunk-LRV7MWWX.js.map +0 -1
- package/dist/chunk-N43VE355.js +0 -126
- package/dist/chunk-N43VE355.js.map +0 -1
- package/dist/chunk-PYYLHUV6.js +0 -3
- package/dist/chunk-PYYLHUV6.js.map +0 -1
- package/dist/chunk-QCTXAMLA.js +0 -261
- package/dist/chunk-QCTXAMLA.js.map +0 -1
- package/dist/chunk-RIKAPJNG.js +0 -40
- package/dist/chunk-RIKAPJNG.js.map +0 -1
- package/dist/chunk-U3XT35GZ.js +0 -202
- package/dist/chunk-U3XT35GZ.js.map +0 -1
- package/dist/chunk-W22WB3WZ.js +0 -148
- package/dist/chunk-W22WB3WZ.js.map +0 -1
- package/dist/chunk-WTIJMKML.js +0 -27
- package/dist/chunk-WTIJMKML.js.map +0 -1
- package/dist/chunk-X2CQFJPR.js +0 -75
- package/dist/chunk-X2CQFJPR.js.map +0 -1
- package/dist/chunk-YYFKLOKO.js +0 -769
- package/dist/chunk-YYFKLOKO.js.map +0 -1
- package/dist/client-Cs7E_usr.d.ts +0 -113
- package/dist/content/index.js.map +0 -1
- package/dist/core/index.js.map +0 -1
- package/dist/core/react.d.ts +0 -107
- package/dist/core/react.js +0 -5
- package/dist/core/react.js.map +0 -1
- package/dist/coupon-BZSZ0y3n.d.ts +0 -129
- package/dist/coupon-CDzL4bJG.d.ts +0 -655
- package/dist/crud.factory-DyKaPHcU.d.ts +0 -181
- package/dist/finance/index.js.map +0 -1
- package/dist/finance-BJdfKRw0.d.ts +0 -135
- package/dist/index.js.map +0 -1
- package/dist/inventory/index.js.map +0 -1
- package/dist/inventory-B5pssqRx.d.ts +0 -748
- package/dist/logistics/index.js.map +0 -1
- package/dist/logistics-CrpKadKE.d.ts +0 -410
- package/dist/media-CNLJK93J.d.ts +0 -721
- package/dist/movement-R3CERFAM.js +0 -5
- package/dist/movement-R3CERFAM.js.map +0 -1
- package/dist/order-B3dCvHgK.d.ts +0 -360
- package/dist/payment-BRboLqvU.d.ts +0 -127
- package/dist/payments/index.js.map +0 -1
- package/dist/platform/index.js.map +0 -1
- package/dist/pos-BCqkx2-K.d.ts +0 -527
- package/dist/product-p09zXkXB.d.ts +0 -260
- package/dist/purchase-54PER2PY.js +0 -5
- package/dist/purchase-54PER2PY.js.map +0 -1
- package/dist/request-MP6NV5ZE.js +0 -5
- package/dist/request-MP6NV5ZE.js.map +0 -1
- package/dist/sales/index.js.map +0 -1
- package/dist/server.js.map +0 -1
- package/dist/size-guide-DgjzjM5P.d.ts +0 -554
- package/dist/stock-2LP4HJSB.js +0 -5
- package/dist/stock-2LP4HJSB.js.map +0 -1
- package/dist/stock-CfrU5_Wr.d.ts +0 -632
- package/dist/supplier-BWJTRZ5Z.js +0 -5
- package/dist/supplier-BWJTRZ5Z.js.map +0 -1
- package/dist/transaction/index.js.map +0 -1
- package/dist/transaction-Bf6WjYCh.d.ts +0 -84
- package/dist/transaction-dL3WW-er.d.ts +0 -442
- package/dist/transfer-4XSS6HWT.js +0 -5
- package/dist/transfer-4XSS6HWT.js.map +0 -1
- package/dist/user-data-DdLjAGwO.d.ts +0 -132
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
//#region src/catalog/types/category.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Category Types
|
|
4
|
+
*
|
|
5
|
+
* Source of truth: modules/commerce/category/category.model.js
|
|
6
|
+
*
|
|
7
|
+
* **Slug-Based Design:**
|
|
8
|
+
* - Products store `category` as slug string (not ObjectId)
|
|
9
|
+
* - Enables fast queries without $lookup/aggregation
|
|
10
|
+
* - Example: `db.products.find({ category: "electronics" })`
|
|
11
|
+
*
|
|
12
|
+
* **Product Count:**
|
|
13
|
+
* - Automatically maintained via product repository events
|
|
14
|
+
* - Increments on product create
|
|
15
|
+
* - Decrements on product delete
|
|
16
|
+
* - Updates when product changes category
|
|
17
|
+
*/
|
|
18
|
+
interface CategoryImage {
|
|
19
|
+
url?: string;
|
|
20
|
+
alt?: string;
|
|
21
|
+
}
|
|
22
|
+
interface CategorySeo {
|
|
23
|
+
title?: string;
|
|
24
|
+
description?: string;
|
|
25
|
+
keywords?: string[];
|
|
26
|
+
}
|
|
27
|
+
interface Category {
|
|
28
|
+
_id: string;
|
|
29
|
+
/** Display name (can be changed without breaking product references) */
|
|
30
|
+
name: string;
|
|
31
|
+
/**
|
|
32
|
+
* URL-safe identifier (auto-generated from name, globally unique).
|
|
33
|
+
* Products store this value in their `category` field.
|
|
34
|
+
* IMMUTABLE after creation.
|
|
35
|
+
*/
|
|
36
|
+
slug: string;
|
|
37
|
+
/**
|
|
38
|
+
* Parent category slug (not ObjectId).
|
|
39
|
+
* null for root categories.
|
|
40
|
+
*/
|
|
41
|
+
parent: string | null;
|
|
42
|
+
/** Short description for category listing */
|
|
43
|
+
description?: string;
|
|
44
|
+
/** Category image for display */
|
|
45
|
+
image?: CategoryImage;
|
|
46
|
+
/** Display order for sorting (lower = first) */
|
|
47
|
+
displayOrder: number;
|
|
48
|
+
/**
|
|
49
|
+
* Category-specific VAT rate override.
|
|
50
|
+
* null = use platform default rate.
|
|
51
|
+
*/
|
|
52
|
+
vatRate?: number | null;
|
|
53
|
+
/** Whether category is visible to customers */
|
|
54
|
+
isActive: boolean;
|
|
55
|
+
/**
|
|
56
|
+
* Cached product count (maintained by product repository events).
|
|
57
|
+
* Updated automatically on product create/delete/category-change.
|
|
58
|
+
*/
|
|
59
|
+
productCount: number;
|
|
60
|
+
/** SEO metadata */
|
|
61
|
+
seo?: CategorySeo;
|
|
62
|
+
createdAt: string;
|
|
63
|
+
updatedAt: string;
|
|
64
|
+
/** Full path e.g. "clothing/t-shirts" */
|
|
65
|
+
fullPath?: string;
|
|
66
|
+
/** Whether this is a root category (no parent) */
|
|
67
|
+
isRoot?: boolean;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Category with nested children for tree display
|
|
71
|
+
* Used for navigation menus and admin selects
|
|
72
|
+
*
|
|
73
|
+
* **To flatten for dropdowns:**
|
|
74
|
+
* ```typescript
|
|
75
|
+
* function flattenTree(nodes, depth = 0, result = []) {
|
|
76
|
+
* for (const n of nodes) {
|
|
77
|
+
* result.push({ ...n, depth, displayName: ' '.repeat(depth) + n.name });
|
|
78
|
+
* if (n.children) flattenTree(n.children, depth + 1, result);
|
|
79
|
+
* }
|
|
80
|
+
* return result;
|
|
81
|
+
* }
|
|
82
|
+
* ```
|
|
83
|
+
*/
|
|
84
|
+
interface CategoryTreeNode extends Category {
|
|
85
|
+
/** Child categories (empty array for leaf nodes) */
|
|
86
|
+
children?: CategoryTreeNode[];
|
|
87
|
+
}
|
|
88
|
+
interface CreateCategoryPayload {
|
|
89
|
+
/** Required: Display name (slug auto-generated from this) */
|
|
90
|
+
name: string;
|
|
91
|
+
/** Parent category slug (not ObjectId) */
|
|
92
|
+
parent?: string;
|
|
93
|
+
/** Short description */
|
|
94
|
+
description?: string;
|
|
95
|
+
/** Category image */
|
|
96
|
+
image?: CategoryImage;
|
|
97
|
+
/** Display order (lower = first, default: 0) */
|
|
98
|
+
displayOrder?: number;
|
|
99
|
+
/** VAT rate override (null = use platform default) */
|
|
100
|
+
vatRate?: number | null;
|
|
101
|
+
/** Whether visible to customers (default: true) */
|
|
102
|
+
isActive?: boolean;
|
|
103
|
+
/** SEO metadata */
|
|
104
|
+
seo?: CategorySeo;
|
|
105
|
+
}
|
|
106
|
+
interface UpdateCategoryPayload {
|
|
107
|
+
/** Display name (slug is immutable, cannot be changed) */
|
|
108
|
+
name?: string;
|
|
109
|
+
/** Short description */
|
|
110
|
+
description?: string;
|
|
111
|
+
/** Category image */
|
|
112
|
+
image?: CategoryImage;
|
|
113
|
+
/** Display order */
|
|
114
|
+
displayOrder?: number;
|
|
115
|
+
/** VAT rate override */
|
|
116
|
+
vatRate?: number | null;
|
|
117
|
+
/** Visibility */
|
|
118
|
+
isActive?: boolean;
|
|
119
|
+
/** SEO metadata */
|
|
120
|
+
seo?: CategorySeo;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Response from GET /categories (paginated list)
|
|
124
|
+
*/
|
|
125
|
+
interface CategoryListResponse {
|
|
126
|
+
success: boolean;
|
|
127
|
+
method: "offset";
|
|
128
|
+
docs: Category[];
|
|
129
|
+
page: number;
|
|
130
|
+
limit: number;
|
|
131
|
+
total: number;
|
|
132
|
+
pages: number;
|
|
133
|
+
hasNext: boolean;
|
|
134
|
+
hasPrev: boolean;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Response from GET /categories/tree
|
|
138
|
+
*/
|
|
139
|
+
interface CategoryTreeResponse {
|
|
140
|
+
success: boolean;
|
|
141
|
+
data: CategoryTreeNode[];
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Response from GET /categories/:id or /categories/slug/:slug
|
|
145
|
+
*/
|
|
146
|
+
interface CategoryResponse {
|
|
147
|
+
success: boolean;
|
|
148
|
+
data: Category;
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Response from DELETE /categories/:id
|
|
152
|
+
*/
|
|
153
|
+
interface CategoryDeleteResponse {
|
|
154
|
+
success: boolean;
|
|
155
|
+
deleted: boolean;
|
|
156
|
+
message?: string;
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Response from POST /categories/sync-product-count
|
|
160
|
+
*/
|
|
161
|
+
interface CategorySyncResponse {
|
|
162
|
+
success: boolean;
|
|
163
|
+
data: {
|
|
164
|
+
updated: number;
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
//#endregion
|
|
168
|
+
export { Category, CategoryDeleteResponse, CategoryImage, CategoryListResponse, CategoryResponse, CategorySeo, CategorySyncResponse, CategoryTreeNode, CategoryTreeResponse, CreateCategoryPayload, UpdateCategoryPayload };
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { CreateProductPayload, Dimensions, Product, ProductDeleteResponse, ProductDiscount, ProductImage, ProductListResponse, ProductResponse, ProductShipping, ProductStats, ProductSyncStockResponse, ProductVariant, StockProjection, UpdateProductPayload, VariationAttribute } from "./product.js";
|
|
2
|
+
import { Category, CategoryDeleteResponse, CategoryImage, CategoryListResponse, CategoryResponse, CategorySeo, CategorySyncResponse, CategoryTreeNode, CategoryTreeResponse, CreateCategoryPayload, UpdateCategoryPayload } from "./category.js";
|
|
3
|
+
import { CreateSizeGuidePayload, SizeDefinition, SizeGuide, SizeGuideDeleteResponse, SizeGuideListResponse, SizeGuideResponse, UpdateSizeGuidePayload } from "./size-guide.js";
|
|
4
|
+
import { CreateReviewPayload, Review, ReviewListResponse, ReviewReply, ReviewResponse, ReviewStatus, UpdateReviewPayload } from "./review.js";
|
|
@@ -0,0 +1,261 @@
|
|
|
1
|
+
//#region src/catalog/types/product.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Product Types
|
|
4
|
+
*
|
|
5
|
+
* Source of truth: modules/commerce/product/product.model.js
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Image Schema
|
|
9
|
+
*/
|
|
10
|
+
interface ProductImage {
|
|
11
|
+
url: string;
|
|
12
|
+
variants?: {
|
|
13
|
+
thumbnail?: string;
|
|
14
|
+
medium?: string;
|
|
15
|
+
};
|
|
16
|
+
order?: number;
|
|
17
|
+
isFeatured?: boolean;
|
|
18
|
+
alt?: string;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Dimensions Schema
|
|
22
|
+
*/
|
|
23
|
+
interface Dimensions {
|
|
24
|
+
length?: number;
|
|
25
|
+
width?: number;
|
|
26
|
+
height?: number;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Shipping Schema
|
|
30
|
+
*/
|
|
31
|
+
interface ProductShipping {
|
|
32
|
+
weightGrams?: number;
|
|
33
|
+
dimensionsCm?: Dimensions;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Variation Attribute (Defines options)
|
|
37
|
+
* e.g. { name: "Size", values: ["S", "M", "L"] }
|
|
38
|
+
*/
|
|
39
|
+
interface VariationAttribute {
|
|
40
|
+
name: string;
|
|
41
|
+
values: string[];
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Variant (Sellable SKU)
|
|
45
|
+
*/
|
|
46
|
+
interface ProductVariant {
|
|
47
|
+
sku: string;
|
|
48
|
+
barcode?: string;
|
|
49
|
+
attributes: Record<string, string>;
|
|
50
|
+
priceModifier: number;
|
|
51
|
+
/**
|
|
52
|
+
* System calculated field (Read-only for frontend)
|
|
53
|
+
* COGS for this specific variant
|
|
54
|
+
*/
|
|
55
|
+
costPrice?: number;
|
|
56
|
+
/**
|
|
57
|
+
* VAT rate override for this specific variant
|
|
58
|
+
* null = inherit from product/category/platform
|
|
59
|
+
*/
|
|
60
|
+
vatRate?: number | null;
|
|
61
|
+
images?: ProductImage[];
|
|
62
|
+
shipping?: ProductShipping;
|
|
63
|
+
isActive?: boolean;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Discount Schema
|
|
67
|
+
*/
|
|
68
|
+
interface ProductDiscount {
|
|
69
|
+
type: 'percentage' | 'fixed';
|
|
70
|
+
value: number;
|
|
71
|
+
startDate?: string;
|
|
72
|
+
endDate?: string;
|
|
73
|
+
description?: string;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Product Stats (System Generated)
|
|
77
|
+
*/
|
|
78
|
+
interface ProductStats {
|
|
79
|
+
totalSales: number;
|
|
80
|
+
totalQuantitySold: number;
|
|
81
|
+
viewCount: number;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Stock Projection for Variant Products (Read-Only)
|
|
85
|
+
* Provides fast storefront availability checks
|
|
86
|
+
*/
|
|
87
|
+
interface StockProjection {
|
|
88
|
+
variants: Array<{
|
|
89
|
+
sku: string;
|
|
90
|
+
quantity: number;
|
|
91
|
+
}>;
|
|
92
|
+
syncedAt: string;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Main Product Interface (Read Model)
|
|
96
|
+
*/
|
|
97
|
+
interface Product {
|
|
98
|
+
_id: string;
|
|
99
|
+
name: string;
|
|
100
|
+
slug: string;
|
|
101
|
+
shortDescription?: string;
|
|
102
|
+
description?: string;
|
|
103
|
+
basePrice: number;
|
|
104
|
+
/**
|
|
105
|
+
* System field: Cost of Goods Sold
|
|
106
|
+
* Not editable by customer. Admin only.
|
|
107
|
+
* Role-restricted field - only visible to authorized roles
|
|
108
|
+
*/
|
|
109
|
+
costPrice?: number;
|
|
110
|
+
/**
|
|
111
|
+
* VAT rate override for this product
|
|
112
|
+
* null = inherit from category/platform default
|
|
113
|
+
*/
|
|
114
|
+
vatRate?: number | null;
|
|
115
|
+
/**
|
|
116
|
+
* System field: Total stock quantity across all branches.
|
|
117
|
+
* Read-only cache. Source of truth is Inventory Service.
|
|
118
|
+
*/
|
|
119
|
+
quantity: number;
|
|
120
|
+
/**
|
|
121
|
+
* Product type: 'simple' for regular products, 'variant' for products with variations
|
|
122
|
+
* Auto-determined by backend based on presence of variationAttributes
|
|
123
|
+
*/
|
|
124
|
+
productType: 'simple' | 'variant';
|
|
125
|
+
sku?: string;
|
|
126
|
+
barcode?: string;
|
|
127
|
+
images: ProductImage[];
|
|
128
|
+
/**
|
|
129
|
+
* Category slug (references Category.slug, not ObjectId).
|
|
130
|
+
* Enables direct string queries without $lookup.
|
|
131
|
+
* @see Category model for metadata (name, image, description)
|
|
132
|
+
*/
|
|
133
|
+
category: string;
|
|
134
|
+
/**
|
|
135
|
+
* Parent category slug (optional, for hierarchical filtering)
|
|
136
|
+
*/
|
|
137
|
+
parentCategory?: string | null;
|
|
138
|
+
style?: string[];
|
|
139
|
+
variationAttributes?: VariationAttribute[];
|
|
140
|
+
variants?: ProductVariant[];
|
|
141
|
+
shipping?: ProductShipping;
|
|
142
|
+
properties?: Record<string, any>;
|
|
143
|
+
tags?: string[];
|
|
144
|
+
stats?: ProductStats;
|
|
145
|
+
averageRating?: number;
|
|
146
|
+
numReviews?: number;
|
|
147
|
+
/**
|
|
148
|
+
* Stock projection for variant products (Read-Only)
|
|
149
|
+
* Contains aggregated stock quantities per variant across all branches
|
|
150
|
+
*/
|
|
151
|
+
stockProjection?: StockProjection;
|
|
152
|
+
discount?: ProductDiscount;
|
|
153
|
+
/**
|
|
154
|
+
* Size guide reference (ObjectId of SizeGuide document)
|
|
155
|
+
* Optional - only for products with sizing information
|
|
156
|
+
*/
|
|
157
|
+
sizeGuide?: string | null;
|
|
158
|
+
isActive: boolean;
|
|
159
|
+
deletedAt?: string | null;
|
|
160
|
+
createdAt: string;
|
|
161
|
+
updatedAt: string;
|
|
162
|
+
isDiscountActive?: boolean;
|
|
163
|
+
currentPrice?: number;
|
|
164
|
+
featuredImage?: ProductImage | null;
|
|
165
|
+
profitMargin?: number | null;
|
|
166
|
+
profitMarginPercent?: number | null;
|
|
167
|
+
isDeleted?: boolean;
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Payload for Creating a Product
|
|
171
|
+
*/
|
|
172
|
+
interface CreateProductPayload {
|
|
173
|
+
name: string;
|
|
174
|
+
shortDescription?: string;
|
|
175
|
+
description?: string;
|
|
176
|
+
basePrice: number;
|
|
177
|
+
costPrice?: number;
|
|
178
|
+
vatRate?: number | null;
|
|
179
|
+
productType?: 'simple' | 'variant';
|
|
180
|
+
sku?: string;
|
|
181
|
+
barcode?: string;
|
|
182
|
+
images?: ProductImage[];
|
|
183
|
+
category: string;
|
|
184
|
+
parentCategory?: string;
|
|
185
|
+
style?: string[];
|
|
186
|
+
variationAttributes?: VariationAttribute[];
|
|
187
|
+
variants?: ProductVariant[];
|
|
188
|
+
shipping?: ProductShipping;
|
|
189
|
+
properties?: Record<string, any>;
|
|
190
|
+
tags?: string[];
|
|
191
|
+
discount?: ProductDiscount;
|
|
192
|
+
sizeGuide?: string | null;
|
|
193
|
+
isActive?: boolean;
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Payload for Updating a Product
|
|
197
|
+
*/
|
|
198
|
+
interface UpdateProductPayload {
|
|
199
|
+
name?: string;
|
|
200
|
+
shortDescription?: string;
|
|
201
|
+
description?: string;
|
|
202
|
+
basePrice?: number;
|
|
203
|
+
costPrice?: number;
|
|
204
|
+
vatRate?: number | null;
|
|
205
|
+
productType?: 'simple' | 'variant';
|
|
206
|
+
sku?: string;
|
|
207
|
+
barcode?: string;
|
|
208
|
+
images?: ProductImage[];
|
|
209
|
+
category?: string;
|
|
210
|
+
parentCategory?: string;
|
|
211
|
+
style?: string[];
|
|
212
|
+
variationAttributes?: VariationAttribute[];
|
|
213
|
+
variants?: ProductVariant[];
|
|
214
|
+
shipping?: ProductShipping;
|
|
215
|
+
properties?: Record<string, any>;
|
|
216
|
+
tags?: string[];
|
|
217
|
+
discount?: ProductDiscount;
|
|
218
|
+
sizeGuide?: string | null;
|
|
219
|
+
isActive?: boolean;
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Response from GET /products (paginated list)
|
|
223
|
+
*/
|
|
224
|
+
interface ProductListResponse {
|
|
225
|
+
success: boolean;
|
|
226
|
+
method: "offset";
|
|
227
|
+
docs: Product[];
|
|
228
|
+
page: number;
|
|
229
|
+
limit: number;
|
|
230
|
+
total: number;
|
|
231
|
+
pages: number;
|
|
232
|
+
hasNext: boolean;
|
|
233
|
+
hasPrev: boolean;
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Response from GET /products/:id or /products/slug/:slug
|
|
237
|
+
*/
|
|
238
|
+
interface ProductResponse {
|
|
239
|
+
success: boolean;
|
|
240
|
+
data: Product;
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* Response from DELETE /products/:id
|
|
244
|
+
*/
|
|
245
|
+
interface ProductDeleteResponse {
|
|
246
|
+
success: boolean;
|
|
247
|
+
deleted: boolean;
|
|
248
|
+
message?: string;
|
|
249
|
+
}
|
|
250
|
+
/**
|
|
251
|
+
* Response from POST /products/:id/sync-stock
|
|
252
|
+
*/
|
|
253
|
+
interface ProductSyncStockResponse {
|
|
254
|
+
success: boolean;
|
|
255
|
+
productId: string;
|
|
256
|
+
totalQuantity: number;
|
|
257
|
+
synced: boolean;
|
|
258
|
+
errors: any[];
|
|
259
|
+
}
|
|
260
|
+
//#endregion
|
|
261
|
+
export { CreateProductPayload, Dimensions, Product, ProductDeleteResponse, ProductDiscount, ProductImage, ProductListResponse, ProductResponse, ProductShipping, ProductStats, ProductSyncStockResponse, ProductVariant, StockProjection, UpdateProductPayload, VariationAttribute };
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { ApiResponse, PaginatedResponse } from "../../core/api-factory.js";
|
|
2
|
+
import { Product } from "./product.js";
|
|
3
|
+
|
|
4
|
+
//#region src/catalog/types/review.d.ts
|
|
5
|
+
type ReviewStatus = "pending" | "approved" | "rejected";
|
|
6
|
+
interface ReviewReply {
|
|
7
|
+
content?: string;
|
|
8
|
+
repliedBy?: string | {
|
|
9
|
+
_id: string;
|
|
10
|
+
name?: string;
|
|
11
|
+
email?: string;
|
|
12
|
+
};
|
|
13
|
+
repliedAt?: string;
|
|
14
|
+
}
|
|
15
|
+
interface Review {
|
|
16
|
+
_id: string;
|
|
17
|
+
user: string | {
|
|
18
|
+
_id: string;
|
|
19
|
+
name?: string;
|
|
20
|
+
email?: string;
|
|
21
|
+
};
|
|
22
|
+
product: string | Product;
|
|
23
|
+
order?: string;
|
|
24
|
+
title?: string;
|
|
25
|
+
rating: number;
|
|
26
|
+
comment?: string;
|
|
27
|
+
helpfulCount: number;
|
|
28
|
+
isVerifiedPurchase: boolean;
|
|
29
|
+
status: ReviewStatus;
|
|
30
|
+
reply?: ReviewReply;
|
|
31
|
+
createdAt: string;
|
|
32
|
+
updatedAt: string;
|
|
33
|
+
}
|
|
34
|
+
interface CreateReviewPayload {
|
|
35
|
+
product: string;
|
|
36
|
+
rating: number;
|
|
37
|
+
title?: string;
|
|
38
|
+
comment?: string;
|
|
39
|
+
}
|
|
40
|
+
interface UpdateReviewPayload {
|
|
41
|
+
rating?: number;
|
|
42
|
+
title?: string;
|
|
43
|
+
comment?: string;
|
|
44
|
+
}
|
|
45
|
+
type ReviewResponse = ApiResponse<Review | null>;
|
|
46
|
+
type ReviewListResponse = PaginatedResponse<Review>;
|
|
47
|
+
//#endregion
|
|
48
|
+
export { CreateReviewPayload, Review, ReviewListResponse, ReviewReply, ReviewResponse, ReviewStatus, UpdateReviewPayload };
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
//#region src/catalog/types/size-guide.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Size Guide Types
|
|
4
|
+
*
|
|
5
|
+
* Size guides are templates that can be referenced by products to display size information.
|
|
6
|
+
* Products store `sizeGuideSlug` to reference a size guide.
|
|
7
|
+
*
|
|
8
|
+
* **Dynamic Measurements:**
|
|
9
|
+
* - `measurementLabels` define the columns (e.g., ["Chest", "Length", "Shoulder"])
|
|
10
|
+
* - Each size has a `measurements` object with key-value pairs
|
|
11
|
+
* - Keys are lowercase/underscored versions of labels (e.g., "chest", "length")
|
|
12
|
+
*/
|
|
13
|
+
interface SizeDefinition {
|
|
14
|
+
/** Size name (e.g., "XS", "S", "M", "L", "XL") */
|
|
15
|
+
name: string;
|
|
16
|
+
/**
|
|
17
|
+
* Key-value pairs of measurements.
|
|
18
|
+
* Keys should match measurementLabels (lowercase, underscored).
|
|
19
|
+
* Values are strings to support ranges (e.g., "34-36").
|
|
20
|
+
*/
|
|
21
|
+
measurements: Record<string, string>;
|
|
22
|
+
}
|
|
23
|
+
interface SizeGuide {
|
|
24
|
+
_id: string;
|
|
25
|
+
/** Size guide name (e.g., "T-Shirts & Tops") */
|
|
26
|
+
name: string;
|
|
27
|
+
/**
|
|
28
|
+
* URL-safe identifier (auto-generated from name, globally unique).
|
|
29
|
+
* Products store this value in their `sizeGuideSlug` field.
|
|
30
|
+
*/
|
|
31
|
+
slug: string;
|
|
32
|
+
/** Size guide description (max 500 chars) */
|
|
33
|
+
description?: string;
|
|
34
|
+
/** Measurement unit: 'inches' or 'cm' */
|
|
35
|
+
measurementUnit: 'inches' | 'cm';
|
|
36
|
+
/**
|
|
37
|
+
* Array of measurement labels (e.g., ["Chest", "Length", "Shoulder", "Sleeve"]).
|
|
38
|
+
* Used as table column headers. Max 10 labels.
|
|
39
|
+
*/
|
|
40
|
+
measurementLabels: string[];
|
|
41
|
+
/** Array of size definitions with measurements */
|
|
42
|
+
sizes: SizeDefinition[];
|
|
43
|
+
/** Additional notes for customers (max 1000 chars) */
|
|
44
|
+
note?: string;
|
|
45
|
+
/** Whether size guide is visible to customers */
|
|
46
|
+
isActive: boolean;
|
|
47
|
+
/** Display order for sorting (lower = first) */
|
|
48
|
+
displayOrder: number;
|
|
49
|
+
createdAt: string;
|
|
50
|
+
updatedAt: string;
|
|
51
|
+
}
|
|
52
|
+
interface CreateSizeGuidePayload {
|
|
53
|
+
/** Required: Size guide name (slug auto-generated from this) */
|
|
54
|
+
name: string;
|
|
55
|
+
/** Custom slug (optional, auto-generated if not provided) */
|
|
56
|
+
slug?: string;
|
|
57
|
+
/** Size guide description */
|
|
58
|
+
description?: string;
|
|
59
|
+
/** Measurement unit (default: 'inches') */
|
|
60
|
+
measurementUnit?: 'inches' | 'cm';
|
|
61
|
+
/** Measurement labels (max 10) */
|
|
62
|
+
measurementLabels?: string[];
|
|
63
|
+
/** Size definitions */
|
|
64
|
+
sizes?: SizeDefinition[];
|
|
65
|
+
/** Additional notes */
|
|
66
|
+
note?: string;
|
|
67
|
+
/** Whether visible to customers (default: true) */
|
|
68
|
+
isActive?: boolean;
|
|
69
|
+
/** Display order (default: 0) */
|
|
70
|
+
displayOrder?: number;
|
|
71
|
+
}
|
|
72
|
+
interface UpdateSizeGuidePayload {
|
|
73
|
+
/** Size guide name */
|
|
74
|
+
name?: string;
|
|
75
|
+
/** Size guide description */
|
|
76
|
+
description?: string;
|
|
77
|
+
/** Measurement unit */
|
|
78
|
+
measurementUnit?: 'inches' | 'cm';
|
|
79
|
+
/** Measurement labels (replaces existing) */
|
|
80
|
+
measurementLabels?: string[];
|
|
81
|
+
/** Size definitions (replaces existing) */
|
|
82
|
+
sizes?: SizeDefinition[];
|
|
83
|
+
/** Additional notes */
|
|
84
|
+
note?: string;
|
|
85
|
+
/** Visibility */
|
|
86
|
+
isActive?: boolean;
|
|
87
|
+
/** Display order */
|
|
88
|
+
displayOrder?: number;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Response from GET /size-guides (paginated list)
|
|
92
|
+
*/
|
|
93
|
+
interface SizeGuideListResponse {
|
|
94
|
+
success: boolean;
|
|
95
|
+
docs: SizeGuide[];
|
|
96
|
+
page: number;
|
|
97
|
+
limit: number;
|
|
98
|
+
total: number;
|
|
99
|
+
pages: number;
|
|
100
|
+
hasNext: boolean;
|
|
101
|
+
hasPrev: boolean;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Response from GET /size-guides/:id or /size-guides/slug/:slug
|
|
105
|
+
*/
|
|
106
|
+
interface SizeGuideResponse {
|
|
107
|
+
success: boolean;
|
|
108
|
+
data: SizeGuide;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Response from DELETE /size-guides/:id
|
|
112
|
+
*/
|
|
113
|
+
interface SizeGuideDeleteResponse {
|
|
114
|
+
success: boolean;
|
|
115
|
+
message?: string;
|
|
116
|
+
}
|
|
117
|
+
//#endregion
|
|
118
|
+
export { CreateSizeGuidePayload, SizeDefinition, SizeGuide, SizeGuideDeleteResponse, SizeGuideListResponse, SizeGuideResponse, UpdateSizeGuidePayload };
|