@classytic/commerce-sdk 0.1.2 → 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 +277 -146
- 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 -620
- 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-4IYW6RF3.js +0 -862
- package/dist/chunk-4IYW6RF3.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-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-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-M3B4DFTT.js +0 -76
- package/dist/chunk-M3B4DFTT.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-BPG8fbae.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-REVDorcc.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-BfdPxZiA.d.ts +0 -412
- 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-C-sBzevg.d.ts +0 -538
- 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,252 @@
|
|
|
1
|
+
import { OrderShipping, ShippingStatus } from "../../sales/types/order.js";
|
|
2
|
+
import { CancelShipmentResult, CreateShipmentPayload, PickupStore, ProviderCharges, ProviderName, TrackingResult } from "../types/logistics.js";
|
|
3
|
+
import * as _tanstack_react_query0 from "@tanstack/react-query";
|
|
4
|
+
|
|
5
|
+
//#region src/logistics/hooks/logistics.d.ts
|
|
6
|
+
declare const LOGISTICS_KEYS: {
|
|
7
|
+
all: readonly ["logistics"];
|
|
8
|
+
pickupStores: (provider?: string) => readonly ["logistics", "pickup-stores", string | undefined];
|
|
9
|
+
shipment: (id: string) => readonly ["logistics", "shipment", string];
|
|
10
|
+
tracking: (id: string) => readonly ["logistics", "tracking", string];
|
|
11
|
+
charge: (params: {
|
|
12
|
+
deliveryAreaId: number;
|
|
13
|
+
amount: number;
|
|
14
|
+
weight?: number;
|
|
15
|
+
}) => readonly ["logistics", "charge", {
|
|
16
|
+
deliveryAreaId: number;
|
|
17
|
+
amount: number;
|
|
18
|
+
weight?: number;
|
|
19
|
+
}];
|
|
20
|
+
config: () => readonly ["logistics", "config"];
|
|
21
|
+
};
|
|
22
|
+
interface QueryOptions {
|
|
23
|
+
enabled?: boolean;
|
|
24
|
+
staleTime?: number;
|
|
25
|
+
refetchInterval?: number | false;
|
|
26
|
+
}
|
|
27
|
+
interface ChargeParams {
|
|
28
|
+
deliveryAreaId: number;
|
|
29
|
+
pickupAreaId?: number;
|
|
30
|
+
amount: number;
|
|
31
|
+
weight?: number;
|
|
32
|
+
provider?: ProviderName;
|
|
33
|
+
}
|
|
34
|
+
interface UseDeliveryChargeParams {
|
|
35
|
+
deliveryAreaId: number | null | undefined;
|
|
36
|
+
amount: number;
|
|
37
|
+
weight?: number;
|
|
38
|
+
enabled?: boolean;
|
|
39
|
+
}
|
|
40
|
+
interface UseDeliveryChargeReturn {
|
|
41
|
+
charges: ProviderCharges | null;
|
|
42
|
+
deliveryCharge: number;
|
|
43
|
+
codCharge: number;
|
|
44
|
+
totalCharge: number;
|
|
45
|
+
isLoading: boolean;
|
|
46
|
+
isFetching: boolean;
|
|
47
|
+
error: Error | null;
|
|
48
|
+
refetch: () => void;
|
|
49
|
+
}
|
|
50
|
+
interface UseLogisticsActionsReturn {
|
|
51
|
+
createShipment: (params: {
|
|
52
|
+
orderId: string;
|
|
53
|
+
data: CreateShipmentPayload;
|
|
54
|
+
}) => Promise<OrderShipping | undefined>;
|
|
55
|
+
isCreatingShipment: boolean;
|
|
56
|
+
cancelShipment: (params: {
|
|
57
|
+
shipmentId: string;
|
|
58
|
+
reason?: string;
|
|
59
|
+
}) => Promise<CancelShipmentResult | undefined>;
|
|
60
|
+
isCancellingShipment: boolean;
|
|
61
|
+
updateShipmentStatus: (params: {
|
|
62
|
+
shipmentId: string;
|
|
63
|
+
data: UpdateShipmentStatusParams;
|
|
64
|
+
}) => Promise<OrderShipping | undefined>;
|
|
65
|
+
isUpdatingStatus: boolean;
|
|
66
|
+
isLoading: boolean;
|
|
67
|
+
}
|
|
68
|
+
interface UpdateShipmentStatusParams {
|
|
69
|
+
status: ShippingStatus | string;
|
|
70
|
+
note?: string;
|
|
71
|
+
metadata?: Record<string, unknown>;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Fetch pickup stores from logistics provider
|
|
75
|
+
*
|
|
76
|
+
* @param token - Auth token (admin required)
|
|
77
|
+
* @param provider - Optional provider filter
|
|
78
|
+
* @param options - Query options
|
|
79
|
+
*
|
|
80
|
+
* @example
|
|
81
|
+
* ```tsx
|
|
82
|
+
* function PickupStoreSelect() {
|
|
83
|
+
* const { data: stores, isLoading } = usePickupStores(token);
|
|
84
|
+
*
|
|
85
|
+
* return (
|
|
86
|
+
* <Select>
|
|
87
|
+
* {stores?.map(store => (
|
|
88
|
+
* <SelectItem key={store.id} value={store.id.toString()}>
|
|
89
|
+
* {store.name} - {store.areaName}
|
|
90
|
+
* </SelectItem>
|
|
91
|
+
* ))}
|
|
92
|
+
* </Select>
|
|
93
|
+
* );
|
|
94
|
+
* }
|
|
95
|
+
* ```
|
|
96
|
+
*/
|
|
97
|
+
declare function usePickupStores(token: string, provider?: string, options?: QueryOptions): _tanstack_react_query0.UseQueryResult<PickupStore[], Error>;
|
|
98
|
+
/**
|
|
99
|
+
* Calculate delivery charge via provider API
|
|
100
|
+
*
|
|
101
|
+
* @param token - Auth token (optional for public)
|
|
102
|
+
* @param params - Charge calculation parameters
|
|
103
|
+
* @param options - Query options
|
|
104
|
+
*
|
|
105
|
+
* @example
|
|
106
|
+
* ```tsx
|
|
107
|
+
* const { data: charges } = useDeliveryChargeCalculation(token, {
|
|
108
|
+
* deliveryAreaId: 1206,
|
|
109
|
+
* amount: isCOD ? cartTotal : 0,
|
|
110
|
+
* });
|
|
111
|
+
* ```
|
|
112
|
+
*/
|
|
113
|
+
declare function useDeliveryChargeCalculation(token: string | null, params: ChargeParams | null, options?: QueryOptions): _tanstack_react_query0.UseQueryResult<ProviderCharges, Error>;
|
|
114
|
+
/**
|
|
115
|
+
* Convenience hook for delivery charge with extracted values
|
|
116
|
+
*
|
|
117
|
+
* @param params - Delivery charge parameters
|
|
118
|
+
*
|
|
119
|
+
* @example
|
|
120
|
+
* ```tsx
|
|
121
|
+
* function CheckoutDelivery({ areaId, subtotal, isCOD }) {
|
|
122
|
+
* const { deliveryCharge, isLoading } = useDeliveryCharge({
|
|
123
|
+
* deliveryAreaId: areaId,
|
|
124
|
+
* amount: isCOD ? subtotal : 0,
|
|
125
|
+
* });
|
|
126
|
+
*
|
|
127
|
+
* return (
|
|
128
|
+
* <p>Delivery: {isLoading ? "..." : `৳${deliveryCharge}`}</p>
|
|
129
|
+
* );
|
|
130
|
+
* }
|
|
131
|
+
* ```
|
|
132
|
+
*/
|
|
133
|
+
declare function useDeliveryCharge({
|
|
134
|
+
deliveryAreaId,
|
|
135
|
+
amount,
|
|
136
|
+
weight,
|
|
137
|
+
enabled
|
|
138
|
+
}: UseDeliveryChargeParams): UseDeliveryChargeReturn;
|
|
139
|
+
/**
|
|
140
|
+
* Get shipping info by order ID
|
|
141
|
+
*
|
|
142
|
+
* @param token - Auth token
|
|
143
|
+
* @param orderId - Order ID
|
|
144
|
+
* @param options - Query options
|
|
145
|
+
*/
|
|
146
|
+
declare function useShipment(token: string, orderId: string | null, options?: QueryOptions): _tanstack_react_query0.UseQueryResult<OrderShipping, Error>;
|
|
147
|
+
/**
|
|
148
|
+
* Track shipment - fetches latest status from provider
|
|
149
|
+
*
|
|
150
|
+
* @param token - Auth token
|
|
151
|
+
* @param shipmentId - Order ID or tracking number
|
|
152
|
+
* @param options - Query options (supports refetchInterval for auto-refresh)
|
|
153
|
+
*
|
|
154
|
+
* @example
|
|
155
|
+
* ```tsx
|
|
156
|
+
* function ShipmentTracker({ shipmentId }) {
|
|
157
|
+
* const { data, isLoading } = useTrackShipment(token, shipmentId, {
|
|
158
|
+
* refetchInterval: 5 * 60 * 1000, // Auto-refresh every 5 minutes
|
|
159
|
+
* });
|
|
160
|
+
*
|
|
161
|
+
* return (
|
|
162
|
+
* <Timeline events={data?.tracking?.timeline || []} />
|
|
163
|
+
* );
|
|
164
|
+
* }
|
|
165
|
+
* ```
|
|
166
|
+
*/
|
|
167
|
+
declare function useTrackShipment(token: string, shipmentId: string | null, options?: QueryOptions): _tanstack_react_query0.UseQueryResult<TrackingResult, Error>;
|
|
168
|
+
/**
|
|
169
|
+
* Create shipment mutation
|
|
170
|
+
*
|
|
171
|
+
* @param token - Auth token
|
|
172
|
+
*
|
|
173
|
+
* @example
|
|
174
|
+
* ```tsx
|
|
175
|
+
* function CreateShipmentButton({ order }) {
|
|
176
|
+
* const { mutate, isPending } = useCreateShipment(token);
|
|
177
|
+
*
|
|
178
|
+
* return (
|
|
179
|
+
* <Button
|
|
180
|
+
* onClick={() =>
|
|
181
|
+
* mutate({
|
|
182
|
+
* orderId: order._id,
|
|
183
|
+
* data: { provider: "redx", useProviderApi: true },
|
|
184
|
+
* })
|
|
185
|
+
* }
|
|
186
|
+
* disabled={isPending}
|
|
187
|
+
* >
|
|
188
|
+
* Create Shipment
|
|
189
|
+
* </Button>
|
|
190
|
+
* );
|
|
191
|
+
* }
|
|
192
|
+
* ```
|
|
193
|
+
*/
|
|
194
|
+
declare function useCreateShipment(token: string): _tanstack_react_query0.UseMutationResult<OrderShipping | undefined, Error, {
|
|
195
|
+
orderId: string;
|
|
196
|
+
data: CreateShipmentPayload;
|
|
197
|
+
}, unknown>;
|
|
198
|
+
/**
|
|
199
|
+
* Cancel shipment mutation
|
|
200
|
+
*
|
|
201
|
+
* @param token - Auth token
|
|
202
|
+
*/
|
|
203
|
+
declare function useCancelShipment(token: string): _tanstack_react_query0.UseMutationResult<CancelShipmentResult | undefined, Error, {
|
|
204
|
+
shipmentId: string;
|
|
205
|
+
reason?: string;
|
|
206
|
+
}, unknown>;
|
|
207
|
+
/**
|
|
208
|
+
* Update shipment status mutation
|
|
209
|
+
*
|
|
210
|
+
* @param token - Auth token
|
|
211
|
+
*/
|
|
212
|
+
declare function useUpdateShipmentStatus(token: string): _tanstack_react_query0.UseMutationResult<OrderShipping | undefined, Error, {
|
|
213
|
+
shipmentId: string;
|
|
214
|
+
data: UpdateShipmentStatusParams;
|
|
215
|
+
}, unknown>;
|
|
216
|
+
/**
|
|
217
|
+
* Combined hook for all logistics mutations
|
|
218
|
+
*
|
|
219
|
+
* @param token - Auth token
|
|
220
|
+
*
|
|
221
|
+
* @example
|
|
222
|
+
* ```tsx
|
|
223
|
+
* function ShipmentActions({ order }) {
|
|
224
|
+
* const {
|
|
225
|
+
* createShipment,
|
|
226
|
+
* cancelShipment,
|
|
227
|
+
* isLoading,
|
|
228
|
+
* } = useLogisticsActions(token);
|
|
229
|
+
*
|
|
230
|
+
* return (
|
|
231
|
+
* <>
|
|
232
|
+
* <Button
|
|
233
|
+
* onClick={() =>
|
|
234
|
+
* createShipment({
|
|
235
|
+
* orderId: order._id,
|
|
236
|
+
* data: { provider: "redx", useProviderApi: true },
|
|
237
|
+
* })
|
|
238
|
+
* }
|
|
239
|
+
* >
|
|
240
|
+
* Create Shipment
|
|
241
|
+
* </Button>
|
|
242
|
+
* <Button onClick={() => cancelShipment({ shipmentId: order._id })}>
|
|
243
|
+
* Cancel
|
|
244
|
+
* </Button>
|
|
245
|
+
* </>
|
|
246
|
+
* );
|
|
247
|
+
* }
|
|
248
|
+
* ```
|
|
249
|
+
*/
|
|
250
|
+
declare function useLogisticsActions(token: string): UseLogisticsActionsReturn;
|
|
251
|
+
//#endregion
|
|
252
|
+
export { LOGISTICS_KEYS, UseDeliveryChargeReturn, UseLogisticsActionsReturn, useCancelShipment, useCreateShipment, useDeliveryCharge, useDeliveryChargeCalculation, useLogisticsActions, usePickupStores, useShipment, useTrackShipment, useUpdateShipmentStatus };
|
|
@@ -0,0 +1,370 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { getToastHandler } from "../../core/react/mutation.factory.js";
|
|
4
|
+
import { logisticsApi } from "../api/logistics.js";
|
|
5
|
+
import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
|
|
6
|
+
|
|
7
|
+
//#region src/logistics/hooks/logistics.ts
|
|
8
|
+
const LOGISTICS_KEYS = {
|
|
9
|
+
all: ["logistics"],
|
|
10
|
+
pickupStores: (provider) => [
|
|
11
|
+
...LOGISTICS_KEYS.all,
|
|
12
|
+
"pickup-stores",
|
|
13
|
+
provider
|
|
14
|
+
],
|
|
15
|
+
shipment: (id) => [
|
|
16
|
+
...LOGISTICS_KEYS.all,
|
|
17
|
+
"shipment",
|
|
18
|
+
id
|
|
19
|
+
],
|
|
20
|
+
tracking: (id) => [
|
|
21
|
+
...LOGISTICS_KEYS.all,
|
|
22
|
+
"tracking",
|
|
23
|
+
id
|
|
24
|
+
],
|
|
25
|
+
charge: (params) => [
|
|
26
|
+
...LOGISTICS_KEYS.all,
|
|
27
|
+
"charge",
|
|
28
|
+
params
|
|
29
|
+
],
|
|
30
|
+
config: () => [...LOGISTICS_KEYS.all, "config"]
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* Fetch pickup stores from logistics provider
|
|
34
|
+
*
|
|
35
|
+
* @param token - Auth token (admin required)
|
|
36
|
+
* @param provider - Optional provider filter
|
|
37
|
+
* @param options - Query options
|
|
38
|
+
*
|
|
39
|
+
* @example
|
|
40
|
+
* ```tsx
|
|
41
|
+
* function PickupStoreSelect() {
|
|
42
|
+
* const { data: stores, isLoading } = usePickupStores(token);
|
|
43
|
+
*
|
|
44
|
+
* return (
|
|
45
|
+
* <Select>
|
|
46
|
+
* {stores?.map(store => (
|
|
47
|
+
* <SelectItem key={store.id} value={store.id.toString()}>
|
|
48
|
+
* {store.name} - {store.areaName}
|
|
49
|
+
* </SelectItem>
|
|
50
|
+
* ))}
|
|
51
|
+
* </Select>
|
|
52
|
+
* );
|
|
53
|
+
* }
|
|
54
|
+
* ```
|
|
55
|
+
*/
|
|
56
|
+
function usePickupStores(token, provider, options = {}) {
|
|
57
|
+
return useQuery({
|
|
58
|
+
queryKey: LOGISTICS_KEYS.pickupStores(provider),
|
|
59
|
+
queryFn: async () => {
|
|
60
|
+
return (await logisticsApi.getPickupStores({
|
|
61
|
+
token,
|
|
62
|
+
provider
|
|
63
|
+
})).data || [];
|
|
64
|
+
},
|
|
65
|
+
enabled: options.enabled !== false && !!token,
|
|
66
|
+
staleTime: options.staleTime ?? 300 * 1e3
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Calculate delivery charge via provider API
|
|
71
|
+
*
|
|
72
|
+
* @param token - Auth token (optional for public)
|
|
73
|
+
* @param params - Charge calculation parameters
|
|
74
|
+
* @param options - Query options
|
|
75
|
+
*
|
|
76
|
+
* @example
|
|
77
|
+
* ```tsx
|
|
78
|
+
* const { data: charges } = useDeliveryChargeCalculation(token, {
|
|
79
|
+
* deliveryAreaId: 1206,
|
|
80
|
+
* amount: isCOD ? cartTotal : 0,
|
|
81
|
+
* });
|
|
82
|
+
* ```
|
|
83
|
+
*/
|
|
84
|
+
function useDeliveryChargeCalculation(token, params, options = {}) {
|
|
85
|
+
const hasValidParams = !!params?.deliveryAreaId && params?.amount !== void 0;
|
|
86
|
+
return useQuery({
|
|
87
|
+
queryKey: LOGISTICS_KEYS.charge(params ? {
|
|
88
|
+
deliveryAreaId: params.deliveryAreaId,
|
|
89
|
+
amount: params.amount,
|
|
90
|
+
weight: params.weight
|
|
91
|
+
} : {
|
|
92
|
+
deliveryAreaId: 0,
|
|
93
|
+
amount: 0
|
|
94
|
+
}),
|
|
95
|
+
queryFn: async () => {
|
|
96
|
+
if (!params) throw new Error("Params required");
|
|
97
|
+
const response = await logisticsApi.calculateCharge({
|
|
98
|
+
deliveryAreaId: params.deliveryAreaId,
|
|
99
|
+
pickupAreaId: params.pickupAreaId,
|
|
100
|
+
amount: params.amount,
|
|
101
|
+
weight: params.weight,
|
|
102
|
+
provider: params.provider
|
|
103
|
+
});
|
|
104
|
+
if (!response.data) throw new Error("No charge data returned");
|
|
105
|
+
return response.data;
|
|
106
|
+
},
|
|
107
|
+
enabled: options.enabled !== false && hasValidParams,
|
|
108
|
+
staleTime: options.staleTime ?? 60 * 1e3
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Convenience hook for delivery charge with extracted values
|
|
113
|
+
*
|
|
114
|
+
* @param params - Delivery charge parameters
|
|
115
|
+
*
|
|
116
|
+
* @example
|
|
117
|
+
* ```tsx
|
|
118
|
+
* function CheckoutDelivery({ areaId, subtotal, isCOD }) {
|
|
119
|
+
* const { deliveryCharge, isLoading } = useDeliveryCharge({
|
|
120
|
+
* deliveryAreaId: areaId,
|
|
121
|
+
* amount: isCOD ? subtotal : 0,
|
|
122
|
+
* });
|
|
123
|
+
*
|
|
124
|
+
* return (
|
|
125
|
+
* <p>Delivery: {isLoading ? "..." : `৳${deliveryCharge}`}</p>
|
|
126
|
+
* );
|
|
127
|
+
* }
|
|
128
|
+
* ```
|
|
129
|
+
*/
|
|
130
|
+
function useDeliveryCharge({ deliveryAreaId, amount, weight = 500, enabled = true }) {
|
|
131
|
+
const { data, isLoading, isFetching, error, refetch } = useQuery({
|
|
132
|
+
queryKey: LOGISTICS_KEYS.charge({
|
|
133
|
+
deliveryAreaId: deliveryAreaId || 0,
|
|
134
|
+
amount,
|
|
135
|
+
weight
|
|
136
|
+
}),
|
|
137
|
+
queryFn: async () => {
|
|
138
|
+
if (!deliveryAreaId) return null;
|
|
139
|
+
return (await logisticsApi.calculateCharge({
|
|
140
|
+
deliveryAreaId,
|
|
141
|
+
amount,
|
|
142
|
+
weight
|
|
143
|
+
})).data || null;
|
|
144
|
+
},
|
|
145
|
+
enabled: enabled && !!deliveryAreaId,
|
|
146
|
+
staleTime: 300 * 1e3,
|
|
147
|
+
gcTime: 600 * 1e3,
|
|
148
|
+
retry: 1
|
|
149
|
+
});
|
|
150
|
+
return {
|
|
151
|
+
charges: data || null,
|
|
152
|
+
deliveryCharge: data?.deliveryCharge ?? 0,
|
|
153
|
+
codCharge: data?.codCharge ?? 0,
|
|
154
|
+
totalCharge: data?.totalCharge ?? 0,
|
|
155
|
+
isLoading,
|
|
156
|
+
isFetching,
|
|
157
|
+
error,
|
|
158
|
+
refetch
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Get shipping info by order ID
|
|
163
|
+
*
|
|
164
|
+
* @param token - Auth token
|
|
165
|
+
* @param orderId - Order ID
|
|
166
|
+
* @param options - Query options
|
|
167
|
+
*/
|
|
168
|
+
function useShipment(token, orderId, options = {}) {
|
|
169
|
+
return useQuery({
|
|
170
|
+
queryKey: LOGISTICS_KEYS.shipment(orderId || ""),
|
|
171
|
+
queryFn: async () => {
|
|
172
|
+
if (!orderId) throw new Error("Order ID required");
|
|
173
|
+
const response = await logisticsApi.getShipment({
|
|
174
|
+
token,
|
|
175
|
+
id: orderId
|
|
176
|
+
});
|
|
177
|
+
if (!response.data) throw new Error("Shipping info not found");
|
|
178
|
+
return response.data;
|
|
179
|
+
},
|
|
180
|
+
enabled: options.enabled !== false && !!token && !!orderId,
|
|
181
|
+
staleTime: options.staleTime ?? 30 * 1e3
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Track shipment - fetches latest status from provider
|
|
186
|
+
*
|
|
187
|
+
* @param token - Auth token
|
|
188
|
+
* @param shipmentId - Order ID or tracking number
|
|
189
|
+
* @param options - Query options (supports refetchInterval for auto-refresh)
|
|
190
|
+
*
|
|
191
|
+
* @example
|
|
192
|
+
* ```tsx
|
|
193
|
+
* function ShipmentTracker({ shipmentId }) {
|
|
194
|
+
* const { data, isLoading } = useTrackShipment(token, shipmentId, {
|
|
195
|
+
* refetchInterval: 5 * 60 * 1000, // Auto-refresh every 5 minutes
|
|
196
|
+
* });
|
|
197
|
+
*
|
|
198
|
+
* return (
|
|
199
|
+
* <Timeline events={data?.tracking?.timeline || []} />
|
|
200
|
+
* );
|
|
201
|
+
* }
|
|
202
|
+
* ```
|
|
203
|
+
*/
|
|
204
|
+
function useTrackShipment(token, shipmentId, options = {}) {
|
|
205
|
+
return useQuery({
|
|
206
|
+
queryKey: LOGISTICS_KEYS.tracking(shipmentId || ""),
|
|
207
|
+
queryFn: async () => {
|
|
208
|
+
if (!shipmentId) throw new Error("Order ID or tracking number required");
|
|
209
|
+
const response = await logisticsApi.trackShipment({
|
|
210
|
+
token,
|
|
211
|
+
id: shipmentId
|
|
212
|
+
});
|
|
213
|
+
if (!response.data) throw new Error("Tracking data not found");
|
|
214
|
+
return response.data;
|
|
215
|
+
},
|
|
216
|
+
enabled: options.enabled !== false && !!token && !!shipmentId,
|
|
217
|
+
staleTime: options.staleTime ?? 60 * 1e3,
|
|
218
|
+
refetchInterval: options.refetchInterval ?? 300 * 1e3
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Create shipment mutation
|
|
223
|
+
*
|
|
224
|
+
* @param token - Auth token
|
|
225
|
+
*
|
|
226
|
+
* @example
|
|
227
|
+
* ```tsx
|
|
228
|
+
* function CreateShipmentButton({ order }) {
|
|
229
|
+
* const { mutate, isPending } = useCreateShipment(token);
|
|
230
|
+
*
|
|
231
|
+
* return (
|
|
232
|
+
* <Button
|
|
233
|
+
* onClick={() =>
|
|
234
|
+
* mutate({
|
|
235
|
+
* orderId: order._id,
|
|
236
|
+
* data: { provider: "redx", useProviderApi: true },
|
|
237
|
+
* })
|
|
238
|
+
* }
|
|
239
|
+
* disabled={isPending}
|
|
240
|
+
* >
|
|
241
|
+
* Create Shipment
|
|
242
|
+
* </Button>
|
|
243
|
+
* );
|
|
244
|
+
* }
|
|
245
|
+
* ```
|
|
246
|
+
*/
|
|
247
|
+
function useCreateShipment(token) {
|
|
248
|
+
const queryClient = useQueryClient();
|
|
249
|
+
const toast = getToastHandler();
|
|
250
|
+
return useMutation({
|
|
251
|
+
mutationFn: async ({ orderId, data }) => {
|
|
252
|
+
return (await logisticsApi.createShipment({
|
|
253
|
+
token,
|
|
254
|
+
orderId,
|
|
255
|
+
data
|
|
256
|
+
})).data;
|
|
257
|
+
},
|
|
258
|
+
onSuccess: () => {
|
|
259
|
+
toast.success("Shipment created successfully");
|
|
260
|
+
queryClient.invalidateQueries({ queryKey: ["orders"] });
|
|
261
|
+
queryClient.invalidateQueries({ queryKey: LOGISTICS_KEYS.all });
|
|
262
|
+
},
|
|
263
|
+
onError: (error) => {
|
|
264
|
+
toast.error(error.message || "Failed to create shipment");
|
|
265
|
+
}
|
|
266
|
+
});
|
|
267
|
+
}
|
|
268
|
+
/**
|
|
269
|
+
* Cancel shipment mutation
|
|
270
|
+
*
|
|
271
|
+
* @param token - Auth token
|
|
272
|
+
*/
|
|
273
|
+
function useCancelShipment(token) {
|
|
274
|
+
const queryClient = useQueryClient();
|
|
275
|
+
const toast = getToastHandler();
|
|
276
|
+
return useMutation({
|
|
277
|
+
mutationFn: async ({ shipmentId, reason }) => {
|
|
278
|
+
return (await logisticsApi.cancelShipment({
|
|
279
|
+
token,
|
|
280
|
+
id: shipmentId,
|
|
281
|
+
data: { reason }
|
|
282
|
+
})).data;
|
|
283
|
+
},
|
|
284
|
+
onSuccess: () => {
|
|
285
|
+
toast.success("Shipment cancelled");
|
|
286
|
+
queryClient.invalidateQueries({ queryKey: ["orders"] });
|
|
287
|
+
queryClient.invalidateQueries({ queryKey: LOGISTICS_KEYS.all });
|
|
288
|
+
},
|
|
289
|
+
onError: (error) => {
|
|
290
|
+
toast.error(error.message || "Failed to cancel shipment");
|
|
291
|
+
}
|
|
292
|
+
});
|
|
293
|
+
}
|
|
294
|
+
/**
|
|
295
|
+
* Update shipment status mutation
|
|
296
|
+
*
|
|
297
|
+
* @param token - Auth token
|
|
298
|
+
*/
|
|
299
|
+
function useUpdateShipmentStatus(token) {
|
|
300
|
+
const queryClient = useQueryClient();
|
|
301
|
+
const toast = getToastHandler();
|
|
302
|
+
return useMutation({
|
|
303
|
+
mutationFn: async ({ shipmentId, data }) => {
|
|
304
|
+
return (await logisticsApi.updateShipmentStatus({
|
|
305
|
+
token,
|
|
306
|
+
id: shipmentId,
|
|
307
|
+
data
|
|
308
|
+
})).data;
|
|
309
|
+
},
|
|
310
|
+
onSuccess: () => {
|
|
311
|
+
toast.success("Shipment status updated");
|
|
312
|
+
queryClient.invalidateQueries({ queryKey: ["orders"] });
|
|
313
|
+
queryClient.invalidateQueries({ queryKey: LOGISTICS_KEYS.all });
|
|
314
|
+
},
|
|
315
|
+
onError: (error) => {
|
|
316
|
+
toast.error(error.message || "Failed to update status");
|
|
317
|
+
}
|
|
318
|
+
});
|
|
319
|
+
}
|
|
320
|
+
/**
|
|
321
|
+
* Combined hook for all logistics mutations
|
|
322
|
+
*
|
|
323
|
+
* @param token - Auth token
|
|
324
|
+
*
|
|
325
|
+
* @example
|
|
326
|
+
* ```tsx
|
|
327
|
+
* function ShipmentActions({ order }) {
|
|
328
|
+
* const {
|
|
329
|
+
* createShipment,
|
|
330
|
+
* cancelShipment,
|
|
331
|
+
* isLoading,
|
|
332
|
+
* } = useLogisticsActions(token);
|
|
333
|
+
*
|
|
334
|
+
* return (
|
|
335
|
+
* <>
|
|
336
|
+
* <Button
|
|
337
|
+
* onClick={() =>
|
|
338
|
+
* createShipment({
|
|
339
|
+
* orderId: order._id,
|
|
340
|
+
* data: { provider: "redx", useProviderApi: true },
|
|
341
|
+
* })
|
|
342
|
+
* }
|
|
343
|
+
* >
|
|
344
|
+
* Create Shipment
|
|
345
|
+
* </Button>
|
|
346
|
+
* <Button onClick={() => cancelShipment({ shipmentId: order._id })}>
|
|
347
|
+
* Cancel
|
|
348
|
+
* </Button>
|
|
349
|
+
* </>
|
|
350
|
+
* );
|
|
351
|
+
* }
|
|
352
|
+
* ```
|
|
353
|
+
*/
|
|
354
|
+
function useLogisticsActions(token) {
|
|
355
|
+
const createShipmentMutation = useCreateShipment(token);
|
|
356
|
+
const cancelShipmentMutation = useCancelShipment(token);
|
|
357
|
+
const updateStatusMutation = useUpdateShipmentStatus(token);
|
|
358
|
+
return {
|
|
359
|
+
createShipment: createShipmentMutation.mutateAsync,
|
|
360
|
+
isCreatingShipment: createShipmentMutation.isPending,
|
|
361
|
+
cancelShipment: cancelShipmentMutation.mutateAsync,
|
|
362
|
+
isCancellingShipment: cancelShipmentMutation.isPending,
|
|
363
|
+
updateShipmentStatus: updateStatusMutation.mutateAsync,
|
|
364
|
+
isUpdatingStatus: updateStatusMutation.isPending,
|
|
365
|
+
isLoading: createShipmentMutation.isPending || cancelShipmentMutation.isPending || updateStatusMutation.isPending
|
|
366
|
+
};
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
//#endregion
|
|
370
|
+
export { LOGISTICS_KEYS, useCancelShipment, useCreateShipment, useDeliveryCharge, useDeliveryChargeCalculation, useLogisticsActions, usePickupStores, useShipment, useTrackShipment, useUpdateShipmentStatus };
|