@pisell/pisellos 0.0.569 → 0.10.2
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/dist/core/index.js +10 -6
- package/dist/index.d.ts +0 -1
- package/dist/index.js +0 -3
- package/dist/model/strategy/adapter/promotion/index.js +9 -0
- package/dist/model/strategy/adapter/walletPass/evaluator.js +7 -5
- package/dist/model/strategy/adapter/walletPass/example.js +26 -3
- package/dist/model/strategy/adapter/walletPass/index.js +5 -5
- package/dist/model/strategy/adapter/walletPass/type.d.ts +0 -3
- package/dist/model/strategy/adapter/walletPass/utils.d.ts +0 -26
- package/dist/model/strategy/adapter/walletPass/utils.js +17 -92
- package/dist/model/strategy/strategy-example.js +19 -5
- package/dist/modules/BaseModule.d.ts +1 -1
- package/dist/modules/BaseModule.js +8 -10
- package/dist/modules/Cart/index.js +3 -0
- package/dist/modules/Cart/utils/cartProduct.js +1 -0
- package/dist/modules/Cart/utils/cartResource.js +0 -2
- package/dist/modules/Cart/utils/changePrice.js +9 -16
- package/dist/modules/Date/index.js +5 -1
- package/dist/modules/Discount/index.d.ts +0 -1
- package/dist/modules/Discount/index.js +7 -22
- package/dist/modules/Discount/types.d.ts +0 -1
- package/dist/modules/OpenData/index.js +2 -0
- package/dist/modules/Order/index.js +70 -40
- package/dist/modules/Payment/index.js +162 -97
- package/dist/modules/Payment/types.d.ts +4 -8
- package/dist/modules/Payment/walletpass.d.ts +0 -2
- package/dist/modules/Payment/walletpass.js +5 -4
- package/dist/modules/ProductList/index.d.ts +1 -1
- package/dist/modules/ProductList/index.js +3 -12
- package/dist/modules/ProductList/types.d.ts +0 -1
- package/dist/modules/Rules/index.js +126 -427
- package/dist/modules/SalesSummary/utils.js +1 -2
- package/dist/modules/Schedule/getDateIsInSchedule.js +0 -5
- package/dist/modules/Schedule/index.js +1 -0
- package/dist/modules/Schedule/utils.js +1 -0
- package/dist/modules/Step/index.js +1 -0
- package/dist/modules/Summary/utils.js +22 -43
- package/dist/plugins/request.js +4 -1
- package/dist/plugins/window.js +6 -2
- package/dist/server/index.js +129 -97
- package/dist/server/modules/menu/index.js +41 -32
- package/dist/server/modules/order/index.js +4 -2
- package/dist/server/modules/products/index.js +42 -24
- package/dist/server/modules/quotation/index.js +38 -29
- package/dist/server/modules/resource/index.js +4 -3
- package/dist/server/modules/schedule/index.js +35 -27
- package/dist/server/utils/product.js +1 -0
- package/dist/solution/BaseSales/index.js +41 -38
- package/dist/solution/BookingByStep/index.d.ts +1 -1
- package/dist/solution/BookingByStep/index.js +60 -11
- package/dist/solution/BookingByStep/utils/capacity.js +11 -1
- package/dist/solution/BookingByStep/utils/resources.js +3 -1
- package/dist/solution/BookingByStep/utils/timeslots.js +43 -2
- package/dist/solution/BookingTicket/index.d.ts +1 -1
- package/dist/solution/BookingTicket/index.js +2 -0
- package/dist/solution/BookingTicket/utils/scan/cloudSearch.js +7 -6
- package/dist/solution/BookingTicket/utils/scan/handleScan.js +31 -25
- package/dist/solution/BookingTicket/utils/scan/index.js +10 -6
- package/dist/solution/BuyTickets/index.js +12 -9
- package/dist/solution/Checkout/index.js +252 -177
- package/dist/solution/Checkout/utils/index.js +16 -4
- package/dist/solution/RegisterAndLogin/index.js +76 -30
- package/dist/solution/ScanOrder/index.js +60 -50
- package/dist/solution/ShopDiscount/index.js +14 -15
- package/dist/solution/ShopDiscount/types.d.ts +4 -5
- package/dist/solution/ShopDiscount/utils.d.ts +0 -9
- package/dist/solution/ShopDiscount/utils.js +0 -9
- package/dist/solution/VenueBooking/index.d.ts +3 -31
- package/dist/solution/VenueBooking/index.js +496 -651
- package/dist/solution/VenueBooking/types.d.ts +1 -3
- package/dist/solution/VenueBooking/types.js +0 -1
- package/dist/solution/VenueBooking/utils/dateSummary.d.ts +2 -2
- package/dist/solution/VenueBooking/utils/dateSummary.js +25 -12
- package/dist/solution/VenueBooking/utils/timeSlot.d.ts +0 -2
- package/dist/solution/VenueBooking/utils/timeSlot.js +4 -9
- package/dist/types/index.d.ts +1 -1
- package/dist/utils/task.js +18 -15
- package/dist/utils/watch.js +1 -0
- package/lib/apis/picoding.js +0 -2
- package/lib/core/index.js +132 -130
- package/lib/effects/index.js +57 -46
- package/lib/index.d.ts +0 -1
- package/lib/index.js +50 -92
- package/lib/model/index.js +21 -14
- package/lib/model/strategy/adapter/dataVariant/adapter.js +50 -38
- package/lib/model/strategy/adapter/dataVariant/evaluator.js +236 -162
- package/lib/model/strategy/adapter/dataVariant/examples.js +237 -229
- package/lib/model/strategy/adapter/dataVariant/index.js +34 -39
- package/lib/model/strategy/adapter/dataVariant/type.js +28 -57
- package/lib/model/strategy/adapter/index.js +64 -100
- package/lib/model/strategy/adapter/itemRule/adapter.js +144 -156
- package/lib/model/strategy/adapter/itemRule/evaluator.js +48 -36
- package/lib/model/strategy/adapter/itemRule/examples.js +225 -295
- package/lib/model/strategy/adapter/itemRule/index.js +57 -83
- package/lib/model/strategy/adapter/itemRule/type.js +36 -97
- package/lib/model/strategy/adapter/promotion/adapter.js +63 -84
- package/lib/model/strategy/adapter/promotion/evaluator.js +231 -381
- package/lib/model/strategy/adapter/promotion/examples.js +159 -139
- package/lib/model/strategy/adapter/promotion/index.js +49 -1
- package/lib/model/strategy/adapter/promotion/type.js +35 -199
- package/lib/model/strategy/adapter/type.js +16 -4
- package/lib/model/strategy/adapter/walletPass/evaluator.js +152 -180
- package/lib/model/strategy/adapter/walletPass/example.js +190 -217
- package/lib/model/strategy/adapter/walletPass/index.js +51 -75
- package/lib/model/strategy/adapter/walletPass/locales.js +58 -36
- package/lib/model/strategy/adapter/walletPass/type.d.ts +0 -3
- package/lib/model/strategy/adapter/walletPass/type.js +16 -4
- package/lib/model/strategy/adapter/walletPass/utils.d.ts +0 -26
- package/lib/model/strategy/adapter/walletPass/utils.js +383 -678
- package/lib/model/strategy/engine.js +168 -270
- package/lib/model/strategy/index.js +34 -49
- package/lib/model/strategy/strategy-example.js +239 -243
- package/lib/model/strategy/type.js +40 -100
- package/lib/modules/Account/index.js +53 -39
- package/lib/modules/Account/types.js +33 -20
- package/lib/modules/AccountList/index.js +154 -116
- package/lib/modules/AccountList/types.js +31 -30
- package/lib/modules/AccountList/utils.js +30 -18
- package/lib/modules/BaseModule.d.ts +1 -1
- package/lib/modules/BaseModule.js +46 -25
- package/lib/modules/BookingContext/index.js +136 -158
- package/lib/modules/BookingContext/types.js +32 -46
- package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +143 -131
- package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +82 -75
- package/lib/modules/BookingContext/utils/cacheItemToBookingInput.js +150 -170
- package/lib/modules/BookingContext/utils/flexible.js +55 -38
- package/lib/modules/BookingContext/utils/formatResourceList.js +34 -19
- package/lib/modules/BookingContext/utils/index.js +41 -124
- package/lib/modules/BookingContext/utils/noResource.js +70 -58
- package/lib/modules/BookingContext/utils/orderLineDisplay.js +41 -14
- package/lib/modules/BookingContext/utils/productExtend.js +155 -202
- package/lib/modules/BookingContext/utils/resourceErrors.js +53 -53
- package/lib/modules/BookingContext/utils/resourceSelection.js +41 -19
- package/lib/modules/BookingContext/utils/resources.js +167 -209
- package/lib/modules/BookingContext/utils/serviceTimes.js +116 -115
- package/lib/modules/BookingContext/utils/timeSlices.js +80 -70
- package/lib/modules/Cart/index.js +124 -170
- package/lib/modules/Cart/types.js +51 -46
- package/lib/modules/Cart/utils/cartAccount.js +39 -40
- package/lib/modules/Cart/utils/cartDate.js +61 -56
- package/lib/modules/Cart/utils/cartDiscount.js +33 -28
- package/lib/modules/Cart/utils/cartNote.js +32 -27
- package/lib/modules/Cart/utils/cartProduct.js +251 -321
- package/lib/modules/Cart/utils/cartRelationForms.js +35 -29
- package/lib/modules/Cart/utils/cartResource.js +78 -72
- package/lib/modules/Cart/utils/changePrice.js +50 -28
- package/lib/modules/Cart/utils/index.js +48 -106
- package/lib/modules/Customer/constants.js +34 -13
- package/lib/modules/Customer/index.js +169 -232
- package/lib/modules/Customer/types.js +35 -38
- package/lib/modules/Date/index.js +115 -116
- package/lib/modules/Date/types.js +28 -16
- package/lib/modules/Date/utils.js +123 -174
- package/lib/modules/Discount/index.d.ts +0 -1
- package/lib/modules/Discount/index.js +128 -130
- package/lib/modules/Discount/types.d.ts +0 -1
- package/lib/modules/Discount/types.js +31 -9
- package/lib/modules/Guests/index.js +56 -30
- package/lib/modules/Guests/types.js +33 -23
- package/lib/modules/Holder/index.js +189 -209
- package/lib/modules/Holder/types.js +16 -4
- package/lib/modules/Holder/utils.js +49 -20
- package/lib/modules/OpenData/index.js +76 -69
- package/lib/modules/OpenData/types.js +16 -4
- package/lib/modules/OpenData/utils.js +78 -44
- package/lib/modules/Order/index.js +1909 -1572
- package/lib/modules/Order/types.js +35 -78
- package/lib/modules/Order/utils/bundleDiscountHydration.js +74 -41
- package/lib/modules/Order/utils/manualProductDiscount.js +123 -124
- package/lib/modules/Order/utils/orderCollectionIdentity.js +210 -148
- package/lib/modules/Order/utils.js +634 -799
- package/lib/modules/Payment/cash.js +33 -20
- package/lib/modules/Payment/cashRecommendationAlgorithm.js +76 -145
- package/lib/modules/Payment/eftpos.js +30 -16
- package/lib/modules/Payment/index.js +378 -518
- package/lib/modules/Payment/mx51.js +0 -1
- package/lib/modules/Payment/types.d.ts +4 -8
- package/lib/modules/Payment/types.js +107 -216
- package/lib/modules/Payment/utils.js +48 -51
- package/lib/modules/Payment/walletpass.d.ts +0 -2
- package/lib/modules/Payment/walletpass.js +211 -226
- package/lib/modules/Product/index.js +46 -51
- package/lib/modules/Product/types.js +16 -4
- package/lib/modules/Product/utils.js +33 -32
- package/lib/modules/ProductList/index.d.ts +1 -1
- package/lib/modules/ProductList/index.js +117 -117
- package/lib/modules/ProductList/types.d.ts +0 -1
- package/lib/modules/ProductList/types.js +31 -9
- package/lib/modules/Quotation/index.js +100 -66
- package/lib/modules/Quotation/types.js +16 -4
- package/lib/modules/Resource/index.js +59 -27
- package/lib/modules/Resource/types.js +32 -22
- package/lib/modules/Resource/utils.js +38 -30
- package/lib/modules/ResourcePlanner/index.js +61 -60
- package/lib/modules/ResourcePlanner/planner.js +384 -346
- package/lib/modules/ResourcePlanner/types.js +16 -4
- package/lib/modules/Rules/index.js +903 -1475
- package/lib/modules/Rules/types.js +40 -17
- package/lib/modules/SalesSummary/index.js +90 -85
- package/lib/modules/SalesSummary/types.js +16 -4
- package/lib/modules/SalesSummary/utils.js +427 -351
- package/lib/modules/ScanOrderLogger/index.js +79 -59
- package/lib/modules/ScanOrderLogger/providers/feishu.js +78 -54
- package/lib/modules/ScanOrderLogger/providers/grafana.js +36 -13
- package/lib/modules/ScanOrderLogger/types.js +16 -4
- package/lib/modules/Schedule/getDateIsInSchedule.js +163 -339
- package/lib/modules/Schedule/index.js +114 -100
- package/lib/modules/Schedule/type.js +16 -4
- package/lib/modules/Schedule/types.js +16 -4
- package/lib/modules/Schedule/utils.js +291 -433
- package/lib/modules/Step/index.js +52 -40
- package/lib/modules/Step/tyeps.js +16 -4
- package/lib/modules/Summary/index.js +71 -66
- package/lib/modules/Summary/types.js +16 -4
- package/lib/modules/Summary/utils.js +418 -791
- package/lib/modules/SurchargeList/index.js +60 -46
- package/lib/modules/SurchargeList/types.js +16 -4
- package/lib/modules/index.js +63 -245
- package/lib/plugins/app.js +16 -4
- package/lib/plugins/index.js +25 -36
- package/lib/plugins/request.js +126 -137
- package/lib/plugins/shopStore.js +16 -4
- package/lib/plugins/user.js +16 -4
- package/lib/plugins/window.js +179 -171
- package/lib/server/index.js +2337 -2675
- package/lib/server/modules/floor-plan/index.js +123 -102
- package/lib/server/modules/floor-plan/types.js +30 -15
- package/lib/server/modules/index.js +68 -106
- package/lib/server/modules/menu/index.js +122 -146
- package/lib/server/modules/menu/types.js +31 -18
- package/lib/server/modules/order/index.js +642 -567
- package/lib/server/modules/order/types.js +32 -117
- package/lib/server/modules/order/utils/filterBookings.js +194 -219
- package/lib/server/modules/order/utils/filterOrders.js +92 -118
- package/lib/server/modules/payment/index.js +83 -59
- package/lib/server/modules/payment/types.js +16 -4
- package/lib/server/modules/products/index.js +459 -575
- package/lib/server/modules/products/types.js +34 -44
- package/lib/server/modules/quotation/index.js +172 -137
- package/lib/server/modules/quotation/types.js +31 -21
- package/lib/server/modules/resource/index.js +184 -213
- package/lib/server/modules/resource/types.js +33 -42
- package/lib/server/modules/schedule/index.js +123 -135
- package/lib/server/modules/schedule/types.js +21 -14
- package/lib/server/modules/schedule/utils.js +163 -334
- package/lib/server/types.js +16 -4
- package/lib/server/utils/index.js +23 -25
- package/lib/server/utils/product.js +139 -196
- package/lib/server/utils/schedule.js +41 -34
- package/lib/server/utils/small-ticket.js +456 -478
- package/lib/server/utils/time.js +49 -40
- package/lib/solution/BaseSales/index.js +1016 -850
- package/lib/solution/BaseSales/types.js +37 -41
- package/lib/solution/BaseSales/utils/cartPromotion.js +460 -611
- package/lib/solution/BaseSales/utils/parseSalesResponse.js +105 -85
- package/lib/solution/BaseSales/utils/quotationPrice.js +114 -56
- package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +143 -102
- package/lib/solution/BaseSales/utils.js +140 -155
- package/lib/solution/BookingByStep/index.d.ts +1 -1
- package/lib/solution/BookingByStep/index.js +1340 -1530
- package/lib/solution/BookingByStep/types.js +99 -40
- package/lib/solution/BookingByStep/utils/capacity.js +160 -192
- package/lib/solution/BookingByStep/utils/products.js +52 -42
- package/lib/solution/BookingByStep/utils/resources.js +330 -527
- package/lib/solution/BookingByStep/utils/stock.js +44 -65
- package/lib/solution/BookingByStep/utils/timeslots.js +131 -129
- package/lib/solution/BookingTicket/index.d.ts +1 -1
- package/lib/solution/BookingTicket/index.js +459 -543
- package/lib/solution/BookingTicket/types.js +77 -99
- package/lib/solution/BookingTicket/utils/addProductDecision.js +184 -219
- package/lib/solution/BookingTicket/utils/addTimeAvailability.js +89 -58
- package/lib/solution/BookingTicket/utils/bookingStatus.js +78 -107
- package/lib/solution/BookingTicket/utils/cartView.js +94 -110
- package/lib/solution/BookingTicket/utils/exampleData.js +0 -185
- package/lib/solution/BookingTicket/utils/orderCustomer.js +41 -18
- package/lib/solution/BookingTicket/utils/resolveBestAddTimePlan.js +86 -219
- package/lib/solution/BookingTicket/utils/scan/applyGlobalScan.js +93 -144
- package/lib/solution/BookingTicket/utils/scan/cloudSearch.js +91 -79
- package/lib/solution/BookingTicket/utils/scan/formatGlobalScan.js +41 -54
- package/lib/solution/BookingTicket/utils/scan/handleScan.js +81 -84
- package/lib/solution/BookingTicket/utils/scan/index.js +104 -98
- package/lib/solution/BookingTicket/utils/scan/scanCache.js +43 -90
- package/lib/solution/BookingTicket/utils/scan/scanProductValues.js +64 -52
- package/lib/solution/BookingTicket/utils/sessionCatalogStale.js +58 -56
- package/lib/solution/BuyTickets/index.js +70 -67
- package/lib/solution/BuyTickets/types.js +38 -22
- package/lib/solution/Checkout/index.js +1158 -1451
- package/lib/solution/Checkout/types.js +61 -91
- package/lib/solution/Checkout/utils/index.js +156 -228
- package/lib/solution/PlaceOrder/index.js +0 -55
- package/lib/solution/RegisterAndLogin/config.js +460 -493
- package/lib/solution/RegisterAndLogin/index.js +630 -633
- package/lib/solution/RegisterAndLogin/types.js +76 -189
- package/lib/solution/RegisterAndLogin/utils.js +125 -183
- package/lib/solution/Sales/index.js +320 -317
- package/lib/solution/Sales/types.js +33 -27
- package/lib/solution/ScanOrder/index.js +862 -831
- package/lib/solution/ScanOrder/types.js +34 -33
- package/lib/solution/ScanOrder/utils.js +371 -406
- package/lib/solution/ShopDiscount/index.js +233 -235
- package/lib/solution/ShopDiscount/types.d.ts +4 -5
- package/lib/solution/ShopDiscount/types.js +37 -15
- package/lib/solution/ShopDiscount/utils.d.ts +0 -9
- package/lib/solution/ShopDiscount/utils.js +172 -309
- package/lib/solution/UnifiedBookingSales/index.js +405 -379
- package/lib/solution/UnifiedBookingSales/types.js +31 -12
- package/lib/solution/VenueBooking/index.d.ts +3 -31
- package/lib/solution/VenueBooking/index.js +916 -967
- package/lib/solution/VenueBooking/types.d.ts +1 -3
- package/lib/solution/VenueBooking/types.js +39 -20
- package/lib/solution/VenueBooking/utils/dateSummary.d.ts +2 -2
- package/lib/solution/VenueBooking/utils/dateSummary.js +62 -25
- package/lib/solution/VenueBooking/utils/resource.js +54 -31
- package/lib/solution/VenueBooking/utils/slotMerge.js +107 -94
- package/lib/solution/VenueBooking/utils/timeSlot.d.ts +0 -2
- package/lib/solution/VenueBooking/utils/timeSlot.js +133 -138
- package/lib/solution/VenueBooking/utils.js +67 -130
- package/lib/solution/index.js +41 -124
- package/lib/store/createStore.js +29 -32
- package/lib/types/index.d.ts +1 -1
- package/lib/types/index.js +16 -4
- package/lib/utils/task.js +36 -36
- package/lib/utils/watch.js +47 -81
- package/package.json +2 -4
- package/dist/solution/VenueBooking/utils/smartPricing.d.ts +0 -70
- package/dist/solution/VenueBooking/utils/smartPricing.js +0 -233
- package/lib/solution/VenueBooking/utils/smartPricing.d.ts +0 -70
- package/lib/solution/VenueBooking/utils/smartPricing.js +0 -192
|
@@ -1,153 +1,151 @@
|
|
|
1
|
-
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
20
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
21
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
22
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
23
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
24
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
25
|
+
mod
|
|
26
|
+
));
|
|
27
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
2
28
|
|
|
3
|
-
|
|
4
|
-
|
|
29
|
+
// src/solution/BookingTicket/utils/addProductDecision.ts
|
|
30
|
+
var addProductDecision_exports = {};
|
|
31
|
+
__export(addProductDecision_exports, {
|
|
32
|
+
buildCacheItemFromCartDetail: () => buildCacheItemFromCartDetail,
|
|
33
|
+
buildCacheItemFromDetail: () => buildCacheItemFromDetail,
|
|
34
|
+
buildRequiresDetailPayload: () => buildRequiresDetailPayload,
|
|
35
|
+
decideAddProduct: () => decideAddProduct,
|
|
36
|
+
decideAfterDetail: () => decideAfterDetail,
|
|
37
|
+
decideAutoClose: () => decideAutoClose,
|
|
38
|
+
getIsEject: () => getIsEject,
|
|
39
|
+
getIsOnlySession: () => getIsOnlySession,
|
|
40
|
+
prepareBookingCacheItem: () => prepareBookingCacheItem,
|
|
41
|
+
transformDetailToProductAndBooking: () => transformDetailToProductAndBooking
|
|
5
42
|
});
|
|
6
|
-
exports
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
exports.decideAfterDetail = decideAfterDetail;
|
|
11
|
-
exports.decideAutoClose = decideAutoClose;
|
|
12
|
-
exports.getIsEject = getIsEject;
|
|
13
|
-
exports.getIsOnlySession = getIsOnlySession;
|
|
14
|
-
exports.prepareBookingCacheItem = prepareBookingCacheItem;
|
|
15
|
-
exports.transformDetailToProductAndBooking = transformDetailToProductAndBooking;
|
|
16
|
-
var _dayjs = _interopRequireDefault(require("dayjs"));
|
|
17
|
-
var _BookingContext = require("../../../modules/BookingContext");
|
|
18
|
-
var _transformBaseProductToOrderProduct = require("../../BaseSales/utils/transformBaseProductToOrderProduct");
|
|
19
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
20
|
-
/**
|
|
21
|
-
* cart.addProduct 两阶段决策(与 ticketBooking `handleSelectProduct` 对齐):
|
|
22
|
-
*
|
|
23
|
-
* 1. `requiresDetail`:规格 / SKU / 套餐 / Session / 称重弹窗(门禁:`isOpenDetailModal` / `cartDetailValue` / `open_sold_weight`)
|
|
24
|
-
* 2. `requiresBookingEdit`:资源 / 时间编辑抽屉(门禁:`getIsAutoClose` on prepared cacheItem)
|
|
25
|
-
* 3. `add`:两关均通过,直接 transform + 加车
|
|
26
|
-
*/
|
|
27
|
-
|
|
28
|
-
/** 资源 / 时间编辑抽屉所需的最小 payload。 */
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* 第一段:是否需要打开规格 / SKU 详情弹窗(与 addService `handleSelectProduct` 一致,不用 `getIsEject` 做门禁)。
|
|
32
|
-
*/
|
|
43
|
+
module.exports = __toCommonJS(addProductDecision_exports);
|
|
44
|
+
var import_dayjs = __toESM(require("dayjs"));
|
|
45
|
+
var import_BookingContext = require("../../../modules/BookingContext");
|
|
46
|
+
var import_transformBaseProductToOrderProduct = require("../../BaseSales/utils/transformBaseProductToOrderProduct");
|
|
33
47
|
function needsSpecDetailModal(item) {
|
|
34
|
-
if (item
|
|
35
|
-
|
|
36
|
-
if (
|
|
48
|
+
if (item == null ? void 0 : item.open_sold_weight)
|
|
49
|
+
return true;
|
|
50
|
+
if (item == null ? void 0 : item.isOpenDetailModal)
|
|
51
|
+
return true;
|
|
52
|
+
if (!(item == null ? void 0 : item.cartDetailValue))
|
|
53
|
+
return true;
|
|
37
54
|
return false;
|
|
38
55
|
}
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* 第二段:预约商品是否仍需打开资源 / 时间编辑(与 info2 `cacheItem.autoClose` 等价)。
|
|
42
|
-
*/
|
|
43
56
|
function needsBookingEdit(cacheItem, ctx) {
|
|
44
|
-
if (isNormalBookingProduct(cacheItem))
|
|
45
|
-
|
|
46
|
-
|
|
57
|
+
if (isNormalBookingProduct(cacheItem))
|
|
58
|
+
return false;
|
|
59
|
+
const isAutoAllocationOn = (ctx == null ? void 0 : ctx.isAutoAllocationOn) || (() => true);
|
|
60
|
+
return !(0, import_BookingContext.getIsAutoClose)(cacheItem, isAutoAllocationOn);
|
|
47
61
|
}
|
|
48
62
|
function buildRequiresBookingEditPayload(cacheItem, ctx) {
|
|
49
63
|
return {
|
|
50
64
|
cacheItem,
|
|
51
|
-
customerId: ctx
|
|
52
|
-
date: typeof ctx
|
|
65
|
+
customerId: ctx == null ? void 0 : ctx.customerId,
|
|
66
|
+
date: typeof (ctx == null ? void 0 : ctx.date) === "string" ? ctx.date : null
|
|
53
67
|
};
|
|
54
68
|
}
|
|
55
|
-
|
|
56
|
-
/**
|
|
57
|
-
* 加车主决策:对齐 `handleSelectProduct` 两段分支。
|
|
58
|
-
*/
|
|
59
69
|
function decideAddProduct(item, ctx) {
|
|
60
70
|
const derivedCtx = withDerivedBookingCtx(ctx);
|
|
61
71
|
if (needsSpecDetailModal(item)) {
|
|
62
72
|
return {
|
|
63
|
-
action:
|
|
73
|
+
action: "requiresDetail",
|
|
64
74
|
payload: buildRequiresDetailPayload(item, derivedCtx)
|
|
65
75
|
};
|
|
66
76
|
}
|
|
67
|
-
const cacheItem = prepareBookingCacheItem(
|
|
77
|
+
const cacheItem = prepareBookingCacheItem(
|
|
78
|
+
buildCacheItemFromCartDetail(item, derivedCtx),
|
|
79
|
+
derivedCtx
|
|
80
|
+
);
|
|
68
81
|
if (needsBookingEdit(cacheItem, derivedCtx)) {
|
|
69
82
|
return {
|
|
70
|
-
action:
|
|
83
|
+
action: "requiresBookingEdit",
|
|
71
84
|
cacheItem,
|
|
72
85
|
payload: buildRequiresBookingEditPayload(cacheItem, derivedCtx)
|
|
73
86
|
};
|
|
74
87
|
}
|
|
75
|
-
return {
|
|
76
|
-
action: 'add',
|
|
77
|
-
cacheItem
|
|
78
|
-
};
|
|
88
|
+
return { action: "add", cacheItem };
|
|
79
89
|
}
|
|
80
|
-
|
|
81
|
-
/**
|
|
82
|
-
* 规格弹窗 callback 后的第二段决策(对齐 `handleBooking4Service` 内 `cacheItem.autoClose` 分支)。
|
|
83
|
-
*/
|
|
84
90
|
function decideAfterDetail(cacheItem, ctx) {
|
|
85
91
|
const derivedCtx = withDerivedBookingCtx(ctx);
|
|
86
92
|
const extended = prepareBookingCacheItem(cacheItem, derivedCtx);
|
|
87
93
|
if (needsBookingEdit(extended, derivedCtx)) {
|
|
88
94
|
return {
|
|
89
|
-
action:
|
|
95
|
+
action: "requiresBookingEdit",
|
|
90
96
|
cacheItem: extended,
|
|
91
97
|
payload: buildRequiresBookingEditPayload(extended, derivedCtx)
|
|
92
98
|
};
|
|
93
99
|
}
|
|
94
|
-
return {
|
|
95
|
-
action: 'add',
|
|
96
|
-
cacheItem: extended
|
|
97
|
-
};
|
|
100
|
+
return { action: "add", cacheItem: extended };
|
|
98
101
|
}
|
|
99
|
-
|
|
100
|
-
/**
|
|
101
|
-
* @deprecated 请用 `decideAddProduct`;保留兼容:autoClose=true 仅表示可直接加车(action=add)。
|
|
102
|
-
*/
|
|
103
|
-
|
|
104
102
|
function isNormalBookingProduct(item) {
|
|
105
|
-
return !(0,
|
|
103
|
+
return !(0, import_BookingContext.isBookingProduct)(item);
|
|
106
104
|
}
|
|
107
105
|
function hasPreparedBookingExtend(cacheItem) {
|
|
108
|
-
|
|
109
|
-
if ((0,
|
|
106
|
+
var _a;
|
|
107
|
+
if ((0, import_BookingContext.productNeedsResourceExtend)(cacheItem) && !(0, import_BookingContext.hasActualResourceSelection)(cacheItem)) {
|
|
110
108
|
return false;
|
|
111
109
|
}
|
|
112
|
-
const ext = cacheItem
|
|
113
|
-
const hasResourceState = Boolean(
|
|
114
|
-
|
|
110
|
+
const ext = (cacheItem == null ? void 0 : cacheItem._extend) || {};
|
|
111
|
+
const hasResourceState = Boolean(
|
|
112
|
+
(0, import_BookingContext.hasActualResourceSelection)(cacheItem) && ext.capacity && (ext.endDate || ext.end_date)
|
|
113
|
+
);
|
|
114
|
+
const hasSessionState = Boolean(
|
|
115
|
+
(0, import_BookingContext.isSessionProduct)(cacheItem) && ((_a = ext.other) == null ? void 0 : _a.session) && ext.start_time && (ext.end_time || ext.endDate)
|
|
116
|
+
);
|
|
115
117
|
const hasMultiDayState = Boolean(isNormalBookingProduct(cacheItem) === false && isMultiDayLike(cacheItem));
|
|
116
|
-
const hasExplicitTimeState = Boolean(
|
|
118
|
+
const hasExplicitTimeState = Boolean(
|
|
119
|
+
ext.duration && (ext.start_date || ext.startDate) && ext.start_time && (ext.end_date && ext.end_time || ext.endDate)
|
|
120
|
+
);
|
|
117
121
|
return hasResourceState || hasSessionState || hasMultiDayState || hasExplicitTimeState;
|
|
118
122
|
}
|
|
119
|
-
|
|
120
|
-
/** 弹窗 / Host 使用的日历日,与 ticketBooking `state.date.format('YYYY-MM-DD')` 对齐。 */
|
|
121
123
|
function formatBookingDateForUI(date) {
|
|
122
|
-
if (date == null || date ===
|
|
123
|
-
|
|
124
|
-
|
|
124
|
+
if (date == null || date === "")
|
|
125
|
+
return null;
|
|
126
|
+
const parsed = (0, import_dayjs.default)(date);
|
|
127
|
+
return parsed.isValid() ? parsed.format("YYYY-MM-DD") : null;
|
|
125
128
|
}
|
|
126
|
-
|
|
127
|
-
/** 补齐 presetStartTime(decideAutoClose / transform 与 BookingTicket.buildAddProductCtx 共用)。 */
|
|
128
129
|
function withDerivedBookingCtx(ctx) {
|
|
129
|
-
if (!ctx)
|
|
130
|
+
if (!ctx)
|
|
131
|
+
return {};
|
|
130
132
|
return {
|
|
131
133
|
...ctx,
|
|
132
|
-
presetStartTime: ctx.presetStartTime ?? (0,
|
|
134
|
+
presetStartTime: ctx.presetStartTime ?? (0, import_BookingContext.derivePresetStartTimeFromDate)(ctx.date)
|
|
133
135
|
};
|
|
134
136
|
}
|
|
135
137
|
function isMultiDayLike(cacheItem) {
|
|
136
|
-
|
|
137
|
-
|
|
138
|
+
var _a;
|
|
139
|
+
const ext = (cacheItem == null ? void 0 : cacheItem._extend) || {};
|
|
140
|
+
return Boolean(
|
|
141
|
+
((_a = cacheItem == null ? void 0 : cacheItem.duration) == null ? void 0 : _a.type) === "days" && ext.duration && ext.start_date && ext.end_date
|
|
142
|
+
);
|
|
138
143
|
}
|
|
139
|
-
|
|
140
|
-
/**
|
|
141
|
-
* 统一补齐预约商品的运行态字段。
|
|
142
|
-
*
|
|
143
|
-
* 新链路不再让决策和提交各自重建 cacheItem;这里作为唯一入口补齐
|
|
144
|
-
* `_extend.resource / capacity / startDate / endDate` 等后续 booking mapper 需要的字段。
|
|
145
|
-
*/
|
|
146
144
|
function prepareBookingCacheItem(cacheItem, ctx) {
|
|
147
145
|
if (isNormalBookingProduct(cacheItem) || hasPreparedBookingExtend(cacheItem)) {
|
|
148
146
|
return cacheItem;
|
|
149
147
|
}
|
|
150
|
-
return (0,
|
|
148
|
+
return (0, import_BookingContext.getProductExtend)({
|
|
151
149
|
cacheItem,
|
|
152
150
|
ctx: withDerivedBookingCtx(ctx),
|
|
153
151
|
isDisabledTime: true
|
|
@@ -155,83 +153,62 @@ function prepareBookingCacheItem(cacheItem, ctx) {
|
|
|
155
153
|
}
|
|
156
154
|
function decideAutoClose(item, ctx) {
|
|
157
155
|
const decision = decideAddProduct(item, ctx);
|
|
158
|
-
if (decision.action ===
|
|
159
|
-
return {
|
|
160
|
-
autoClose: true,
|
|
161
|
-
cacheItem: decision.cacheItem
|
|
162
|
-
};
|
|
156
|
+
if (decision.action === "add") {
|
|
157
|
+
return { autoClose: true, cacheItem: decision.cacheItem };
|
|
163
158
|
}
|
|
164
|
-
if (decision.action ===
|
|
165
|
-
return {
|
|
166
|
-
autoClose: false,
|
|
167
|
-
cacheItem: decision.cacheItem
|
|
168
|
-
};
|
|
159
|
+
if (decision.action === "requiresBookingEdit") {
|
|
160
|
+
return { autoClose: false, cacheItem: decision.cacheItem };
|
|
169
161
|
}
|
|
170
|
-
return {
|
|
171
|
-
autoClose: false
|
|
172
|
-
};
|
|
162
|
+
return { autoClose: false };
|
|
173
163
|
}
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
function getIsEject(item, type = 'select') {
|
|
179
|
-
const isSession = (0, _BookingContext.isSessionProduct)(item);
|
|
180
|
-
const isSoldByWeight = Boolean(item?.open_sold_weight);
|
|
181
|
-
const need = type === 'detail' || (item?.bundle_group_count || 0) > 0 || (item?.option_group_count || 0) > 0 || (item?.is_variant || 0) > 0 || isSession || isSoldByWeight;
|
|
164
|
+
function getIsEject(item, type = "select") {
|
|
165
|
+
const isSession = (0, import_BookingContext.isSessionProduct)(item);
|
|
166
|
+
const isSoldByWeight = Boolean(item == null ? void 0 : item.open_sold_weight);
|
|
167
|
+
const need = type === "detail" || ((item == null ? void 0 : item.bundle_group_count) || 0) > 0 || ((item == null ? void 0 : item.option_group_count) || 0) > 0 || ((item == null ? void 0 : item.is_variant) || 0) > 0 || isSession || isSoldByWeight;
|
|
182
168
|
return need ? 1 : 0;
|
|
183
169
|
}
|
|
184
|
-
|
|
185
|
-
/** 仅 session 商品(且没有 variant/option/package)。 */
|
|
186
170
|
function getIsOnlySession(item) {
|
|
187
|
-
const isSession = (0,
|
|
188
|
-
return !((item
|
|
171
|
+
const isSession = (0, import_BookingContext.isSessionProduct)(item);
|
|
172
|
+
return !(((item == null ? void 0 : item.bundle_group_count) || 0) > 0 || ((item == null ? void 0 : item.option_group_count) || 0) > 0 || ((item == null ? void 0 : item.is_variant) || 0) > 0) && isSession;
|
|
189
173
|
}
|
|
190
|
-
|
|
191
|
-
/**
|
|
192
|
-
* 拼装 requiresDetail payload;showConfig 与 info2 弹窗内部判断一致。
|
|
193
|
-
*/
|
|
194
174
|
function buildRequiresDetailPayload(item, ctx) {
|
|
195
175
|
const isOnlySession = getIsOnlySession(item);
|
|
196
|
-
const isEject = getIsEject(item, ctx
|
|
176
|
+
const isEject = getIsEject(item, (ctx == null ? void 0 : ctx.type) || "select");
|
|
197
177
|
return {
|
|
198
178
|
item,
|
|
199
179
|
showConfig: {
|
|
200
|
-
option: (item
|
|
201
|
-
session: (0,
|
|
202
|
-
variant: (item
|
|
203
|
-
package: (item
|
|
204
|
-
number: Boolean(item
|
|
180
|
+
option: ((item == null ? void 0 : item.option_group_count) || 0) > 0,
|
|
181
|
+
session: (0, import_BookingContext.isSessionProduct)(item),
|
|
182
|
+
variant: ((item == null ? void 0 : item.is_variant) || 0) > 0,
|
|
183
|
+
package: ((item == null ? void 0 : item.bundle_group_count) || 0) > 0,
|
|
184
|
+
number: Boolean(item == null ? void 0 : item.open_sold_weight)
|
|
205
185
|
},
|
|
206
186
|
isOnlySession,
|
|
207
187
|
isEject: isEject ? 1 : 0,
|
|
208
|
-
customerId: ctx
|
|
209
|
-
date: formatBookingDateForUI(ctx
|
|
188
|
+
customerId: ctx == null ? void 0 : ctx.customerId,
|
|
189
|
+
date: formatBookingDateForUI(ctx == null ? void 0 : ctx.date),
|
|
210
190
|
productData: item
|
|
211
191
|
};
|
|
212
192
|
}
|
|
213
|
-
|
|
214
|
-
/**
|
|
215
|
-
* 用 item.cartDetailValue 拼装一个 cacheItem 雏形(与 info2 `handleDirectAddService` 等价路径)。
|
|
216
|
-
* 这里只补 `_extend.start_date / quantity / other` 等运行态字段;后续走 getProductExtend 才会补齐资源 / 时间。
|
|
217
|
-
*/
|
|
218
193
|
function buildCacheItemFromCartDetail(item, ctx) {
|
|
194
|
+
var _a;
|
|
219
195
|
const cartDetailValue = item.cartDetailValue || {};
|
|
220
196
|
const other = JSON.parse(JSON.stringify(cartDetailValue || {}));
|
|
221
197
|
other.session = cartDetailValue.session;
|
|
222
|
-
/** 列表/接口可能只带 product_id 不带 id,勿用 item.id 覆盖掉已有 product_id */
|
|
223
198
|
const resolvedId = item.id ?? item.product_id;
|
|
224
|
-
let extend = (0,
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
199
|
+
let extend = (0, import_BookingContext.applySessionTimesToExtend)(
|
|
200
|
+
item,
|
|
201
|
+
{
|
|
202
|
+
start_date: (ctx == null ? void 0 : ctx.date) || void 0,
|
|
203
|
+
/** 列表连点 / 防抖合并时以 ctx.quantity 为准,避免 cartDetailValue 默认 1 盖掉合并数量 */
|
|
204
|
+
quantity: (ctx == null ? void 0 : ctx.quantity) ?? (cartDetailValue == null ? void 0 : cartDetailValue.quantity) ?? 1,
|
|
205
|
+
product_name: item.title,
|
|
206
|
+
other,
|
|
207
|
+
isNormalProduct: !(0, import_BookingContext.isBookingProduct)(item),
|
|
208
|
+
price: ((_a = item == null ? void 0 : item._extend) == null ? void 0 : _a.price) ?? (item == null ? void 0 : item.price)
|
|
209
|
+
},
|
|
210
|
+
{ date: ctx == null ? void 0 : ctx.date }
|
|
211
|
+
);
|
|
235
212
|
return {
|
|
236
213
|
...item,
|
|
237
214
|
id: resolvedId,
|
|
@@ -241,113 +218,101 @@ function buildCacheItemFromCartDetail(item, ctx) {
|
|
|
241
218
|
new: 1
|
|
242
219
|
};
|
|
243
220
|
}
|
|
244
|
-
|
|
245
|
-
/**
|
|
246
|
-
* 用 Info2 callback 的 (e, extension_type, detail) 拼装 cacheItem。
|
|
247
|
-
*
|
|
248
|
-
* 保留 detail._extend 中的 pricing / note(规格弹窗改价、备注等),
|
|
249
|
-
* 再叠加 session 时间、ctx.quantity 等运行态字段;other 以 callback `e` 为准。
|
|
250
|
-
*/
|
|
251
221
|
function buildCacheItemFromDetail(item, detailResult, ctx) {
|
|
222
|
+
var _a, _b, _c;
|
|
252
223
|
const _currentItem = detailResult.detail || item;
|
|
253
224
|
const _detail = _currentItem;
|
|
254
|
-
const detailExtend = _detail
|
|
225
|
+
const detailExtend = (_detail == null ? void 0 : _detail._extend) || {};
|
|
255
226
|
const other = JSON.parse(JSON.stringify(detailResult.e || {}));
|
|
256
|
-
other.session = detailResult.e
|
|
227
|
+
other.session = (_a = detailResult.e) == null ? void 0 : _a.session;
|
|
257
228
|
const resolvedId = _currentItem.id ?? _currentItem.product_id;
|
|
258
|
-
const mergedItem = {
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
date: ctx?.date
|
|
272
|
-
});
|
|
229
|
+
const mergedItem = { ...item, ..._detail, extension_type: _detail.extension_type ?? item.extension_type };
|
|
230
|
+
const runtimeExtend = (0, import_BookingContext.applySessionTimesToExtend)(
|
|
231
|
+
mergedItem,
|
|
232
|
+
{
|
|
233
|
+
start_date: (ctx == null ? void 0 : ctx.date) || detailExtend.start_date || void 0,
|
|
234
|
+
quantity: (ctx == null ? void 0 : ctx.quantity) ?? ((_b = detailResult.e) == null ? void 0 : _b.quantity) ?? detailExtend.quantity ?? 1,
|
|
235
|
+
price: detailExtend.price ?? (_detail == null ? void 0 : _detail.price) ?? (item == null ? void 0 : item.price),
|
|
236
|
+
product_name: _currentItem.title ?? detailExtend.product_name,
|
|
237
|
+
other,
|
|
238
|
+
isNormalProduct: !(0, import_BookingContext.isBookingProduct)(mergedItem)
|
|
239
|
+
},
|
|
240
|
+
{ date: ctx == null ? void 0 : ctx.date }
|
|
241
|
+
);
|
|
273
242
|
const extend = {
|
|
274
243
|
...detailExtend,
|
|
275
244
|
...runtimeExtend,
|
|
276
245
|
other
|
|
277
246
|
};
|
|
278
|
-
const note = detailExtend.note ?? _detail
|
|
247
|
+
const note = detailExtend.note ?? (_detail == null ? void 0 : _detail.note);
|
|
279
248
|
return {
|
|
280
249
|
..._detail,
|
|
281
250
|
id: resolvedId,
|
|
282
251
|
product_id: resolvedId,
|
|
283
252
|
extension_type: mergedItem.extension_type,
|
|
284
|
-
_key: detailResult.e
|
|
285
|
-
...
|
|
286
|
-
note: String(note)
|
|
287
|
-
} : {}),
|
|
253
|
+
_key: (_c = detailResult.e) == null ? void 0 : _c.key,
|
|
254
|
+
...note != null && note !== "" ? { note: String(note) } : {},
|
|
288
255
|
_extend: extend,
|
|
289
256
|
new: 1
|
|
290
257
|
};
|
|
291
258
|
}
|
|
292
|
-
|
|
293
|
-
/**
|
|
294
|
-
* `transformDetailToProductAndBooking`:把 cacheItem 拆成 OS `addProductToOrder` 所需的 `(product, booking)`。
|
|
295
|
-
*
|
|
296
|
-
* - `product` 走 `transformBaseProductToOrderProduct`(沿用 BaseSales 现有 mapper)。
|
|
297
|
-
* - `booking` 走 `cacheItemToBookingInput`(严格按 TEMP_ORDER_FIELDS_SUMMARY.md 协议)。
|
|
298
|
-
* - 普通商品(无 duration / 无 schedules)不产 booking,与 info2 一致。
|
|
299
|
-
*/
|
|
300
259
|
function transformDetailToProductAndBooking(cacheItem, ctx) {
|
|
301
260
|
const preparedCacheItem = prepareBookingCacheItem(cacheItem, withDerivedBookingCtx(ctx));
|
|
302
261
|
const payload = buildBasePayloadFromCacheItem(preparedCacheItem, ctx);
|
|
303
|
-
const productInput = (0,
|
|
262
|
+
const productInput = (0, import_transformBaseProductToOrderProduct.transformBaseProductToOrderProduct)({
|
|
304
263
|
payload,
|
|
305
264
|
sourceProduct: preparedCacheItem
|
|
306
265
|
});
|
|
307
266
|
if (!productInput) {
|
|
308
|
-
throw new Error(
|
|
267
|
+
throw new Error(
|
|
268
|
+
"[BookingTicket] transformDetailToProductAndBooking: product transform failed (missing numeric item.id / item.product_id)"
|
|
269
|
+
);
|
|
309
270
|
}
|
|
310
271
|
const isNormalProduct = isNormalBookingProduct(preparedCacheItem);
|
|
311
272
|
let booking;
|
|
312
273
|
if (!isNormalProduct) {
|
|
313
|
-
booking = (0,
|
|
314
|
-
bookingConfig: ctx?.bookingConfig
|
|
315
|
-
});
|
|
274
|
+
booking = (0, import_BookingContext.cacheItemToBookingInput)(preparedCacheItem, { bookingConfig: ctx == null ? void 0 : ctx.bookingConfig });
|
|
316
275
|
}
|
|
317
|
-
return {
|
|
318
|
-
product: productInput,
|
|
319
|
-
booking,
|
|
320
|
-
cacheItem: preparedCacheItem
|
|
321
|
-
};
|
|
276
|
+
return { product: productInput, booking, cacheItem: preparedCacheItem };
|
|
322
277
|
}
|
|
323
|
-
|
|
324
|
-
/**
|
|
325
|
-
* 把 cacheItem._extend.other 中的字段 + 顶层运行态拼成 `BaseProductDetailPayload`。
|
|
326
|
-
*/
|
|
327
278
|
function buildBasePayloadFromCacheItem(cacheItem, ctx) {
|
|
328
|
-
|
|
329
|
-
const
|
|
330
|
-
const
|
|
331
|
-
const
|
|
279
|
+
var _a, _b, _c, _d;
|
|
280
|
+
const other = ((_a = cacheItem == null ? void 0 : cacheItem._extend) == null ? void 0 : _a.other) || {};
|
|
281
|
+
const quantity = (ctx == null ? void 0 : ctx.quantity) != null && ctx.quantity > 0 ? ctx.quantity : ((_b = cacheItem == null ? void 0 : cacheItem._extend) == null ? void 0 : _b.quantity) ?? 1;
|
|
282
|
+
const resolvedPid = (cacheItem == null ? void 0 : cacheItem.product_id) ?? (cacheItem == null ? void 0 : cacheItem.id);
|
|
283
|
+
const extend = (cacheItem == null ? void 0 : cacheItem._extend) || {};
|
|
332
284
|
return {
|
|
333
|
-
id: cacheItem
|
|
285
|
+
id: (cacheItem == null ? void 0 : cacheItem.id) ?? (cacheItem == null ? void 0 : cacheItem.product_id),
|
|
334
286
|
product_id: resolvedPid,
|
|
335
|
-
variant_id: other
|
|
287
|
+
variant_id: (other == null ? void 0 : other.product_variant_id) ?? (other == null ? void 0 : other.variant_id) ?? 0,
|
|
336
288
|
quantity,
|
|
337
|
-
option: other
|
|
338
|
-
bundle: other
|
|
339
|
-
unique: other
|
|
340
|
-
session: other
|
|
341
|
-
note: extend
|
|
342
|
-
price: extend
|
|
343
|
-
selling_price: extend
|
|
344
|
-
line_total: extend
|
|
345
|
-
total: extend
|
|
346
|
-
origin_total: extend
|
|
347
|
-
price_override: extend
|
|
348
|
-
bundle_edit: extend
|
|
349
|
-
discount_reason: extend
|
|
350
|
-
discount_list: cacheItem
|
|
289
|
+
option: (other == null ? void 0 : other.option) || [],
|
|
290
|
+
bundle: (other == null ? void 0 : other.bundle) || ((_c = extend == null ? void 0 : extend.skuValue) == null ? void 0 : _c.bundle) || ((_d = extend == null ? void 0 : extend._skuValue) == null ? void 0 : _d.bundle) || [],
|
|
291
|
+
unique: other == null ? void 0 : other.unique,
|
|
292
|
+
session: other == null ? void 0 : other.session,
|
|
293
|
+
note: extend == null ? void 0 : extend.note,
|
|
294
|
+
price: (extend == null ? void 0 : extend.price) ?? (cacheItem == null ? void 0 : cacheItem.price),
|
|
295
|
+
selling_price: (extend == null ? void 0 : extend.price) ?? (cacheItem == null ? void 0 : cacheItem.price),
|
|
296
|
+
line_total: extend == null ? void 0 : extend.total,
|
|
297
|
+
total: extend == null ? void 0 : extend.total,
|
|
298
|
+
origin_total: extend == null ? void 0 : extend.origin_total,
|
|
299
|
+
price_override: extend == null ? void 0 : extend.priceOverride,
|
|
300
|
+
bundle_edit: extend == null ? void 0 : extend.bundle_edit,
|
|
301
|
+
discount_reason: extend == null ? void 0 : extend.discount_reason,
|
|
302
|
+
discount_list: cacheItem == null ? void 0 : cacheItem.discount_list,
|
|
351
303
|
_extend: extend
|
|
352
304
|
};
|
|
353
|
-
}
|
|
305
|
+
}
|
|
306
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
307
|
+
0 && (module.exports = {
|
|
308
|
+
buildCacheItemFromCartDetail,
|
|
309
|
+
buildCacheItemFromDetail,
|
|
310
|
+
buildRequiresDetailPayload,
|
|
311
|
+
decideAddProduct,
|
|
312
|
+
decideAfterDetail,
|
|
313
|
+
decideAutoClose,
|
|
314
|
+
getIsEject,
|
|
315
|
+
getIsOnlySession,
|
|
316
|
+
prepareBookingCacheItem,
|
|
317
|
+
transformDetailToProductAndBooking
|
|
318
|
+
});
|