@pisell/pisellos 2.2.244 → 2.2.246
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/model/strategy/adapter/promotion/evaluator.js +3 -2
- package/dist/model/strategy/adapter/walletPass/utils.js +7 -4
- package/dist/modules/BookingContext/index.d.ts +48 -0
- package/dist/modules/BookingContext/index.js +566 -0
- package/dist/modules/BookingContext/types.d.ts +102 -0
- package/dist/modules/BookingContext/types.js +51 -0
- package/dist/modules/BookingContext/utils/buildCacheItemFromOrderLine.d.ts +16 -0
- package/dist/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +284 -0
- package/dist/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.d.ts +8 -0
- package/dist/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +148 -0
- package/dist/modules/BookingContext/utils/cacheItemToBookingInput.d.ts +76 -0
- package/dist/modules/BookingContext/utils/cacheItemToBookingInput.js +218 -0
- package/dist/modules/BookingContext/utils/flexible.d.ts +28 -0
- package/dist/modules/BookingContext/utils/flexible.js +56 -0
- package/dist/modules/BookingContext/utils/formatResourceList.d.ts +8 -0
- package/dist/modules/BookingContext/utils/formatResourceList.js +38 -0
- package/dist/modules/BookingContext/utils/index.d.ts +11 -0
- package/dist/modules/BookingContext/utils/index.js +11 -0
- package/dist/modules/BookingContext/utils/noResource.d.ts +13 -0
- package/dist/modules/BookingContext/utils/noResource.js +77 -0
- package/dist/modules/BookingContext/utils/orderLineDisplay.d.ts +1 -0
- package/dist/modules/BookingContext/utils/orderLineDisplay.js +36 -0
- package/dist/modules/BookingContext/utils/productExtend.d.ts +72 -0
- package/dist/modules/BookingContext/utils/productExtend.js +339 -0
- package/dist/modules/BookingContext/utils/resourceErrors.d.ts +41 -0
- package/dist/modules/BookingContext/utils/resourceErrors.js +74 -0
- package/dist/modules/BookingContext/utils/resourceSelection.d.ts +7 -0
- package/dist/modules/BookingContext/utils/resourceSelection.js +24 -0
- package/dist/modules/BookingContext/utils/resources.d.ts +80 -0
- package/dist/modules/BookingContext/utils/resources.js +486 -0
- package/dist/modules/BookingContext/utils/serviceTimes.d.ts +55 -0
- package/dist/modules/BookingContext/utils/serviceTimes.js +151 -0
- package/dist/modules/BookingContext/utils/timeSlices.d.ts +42 -0
- package/dist/modules/BookingContext/utils/timeSlices.js +100 -0
- package/dist/modules/Cart/utils/cartProduct.js +24 -3
- package/dist/modules/Cart/utils/changePrice.js +11 -11
- package/dist/modules/Customer/index.d.ts +20 -0
- package/dist/modules/Customer/index.js +172 -83
- package/dist/modules/Customer/types.d.ts +2 -0
- package/dist/modules/Discount/index.d.ts +1 -1
- package/dist/modules/Discount/index.js +13 -6
- package/dist/modules/Discount/types.d.ts +1 -0
- package/dist/modules/OpenData/index.d.ts +8 -0
- package/dist/modules/OpenData/index.js +37 -17
- package/dist/modules/Order/index.d.ts +277 -18
- package/dist/modules/Order/index.js +3581 -779
- package/dist/modules/Order/types.d.ts +286 -31
- package/dist/modules/Order/types.js +38 -0
- package/dist/modules/Order/utils/manualProductDiscount.d.ts +106 -0
- package/dist/modules/Order/utils/manualProductDiscount.js +210 -0
- package/dist/modules/Order/utils.d.ts +147 -5
- package/dist/modules/Order/utils.js +750 -104
- package/dist/modules/Payment/index.d.ts +10 -13
- package/dist/modules/Payment/index.js +467 -837
- package/dist/modules/Payment/types.d.ts +2 -0
- package/dist/modules/Payment/utils.js +2 -1
- package/dist/modules/Payment/walletpass.js +41 -25
- package/dist/modules/ProductList/index.d.ts +16 -12
- package/dist/modules/ProductList/index.js +133 -59
- package/dist/modules/ProductList/types.d.ts +14 -0
- package/dist/modules/Quotation/index.d.ts +0 -1
- package/dist/modules/Quotation/index.js +25 -22
- package/dist/modules/Rules/index.d.ts +4 -0
- package/dist/modules/Rules/index.js +97 -70
- package/dist/modules/Rules/types.d.ts +1 -0
- package/dist/modules/SalesSummary/index.d.ts +8 -25
- package/dist/modules/SalesSummary/index.js +86 -35
- package/dist/modules/SalesSummary/types.d.ts +4 -1
- package/dist/modules/SalesSummary/utils.d.ts +2 -25
- package/dist/modules/SalesSummary/utils.js +794 -162
- package/dist/modules/Schedule/index.d.ts +7 -0
- package/dist/modules/Schedule/index.js +24 -2
- package/dist/modules/Summary/index.js +4 -3
- package/dist/modules/SurchargeList/index.d.ts +16 -0
- package/dist/modules/SurchargeList/index.js +162 -0
- package/dist/modules/SurchargeList/types.d.ts +11 -0
- package/dist/modules/SurchargeList/types.js +1 -0
- package/dist/modules/index.d.ts +2 -0
- package/dist/modules/index.js +3 -1
- package/dist/plugins/request.d.ts +1 -0
- package/dist/server/index.d.ts +204 -1
- package/dist/server/index.js +3654 -922
- package/dist/server/modules/index.d.ts +2 -0
- package/dist/server/modules/index.js +2 -0
- package/dist/server/modules/order/index.d.ts +120 -3
- package/dist/server/modules/order/index.js +1762 -448
- package/dist/server/modules/order/types.d.ts +32 -3
- package/dist/server/modules/order/types.js +8 -0
- package/dist/server/modules/order/utils/filterBookings.js +26 -3
- package/dist/server/modules/order/utils/filterOrders.js +23 -8
- package/dist/server/modules/payment/index.d.ts +28 -0
- package/dist/server/modules/payment/index.js +305 -0
- package/dist/server/modules/payment/types.d.ts +9 -0
- package/dist/server/modules/payment/types.js +1 -0
- package/dist/server/modules/products/index.d.ts +34 -7
- package/dist/server/modules/products/index.js +631 -317
- package/dist/server/modules/resource/index.d.ts +2 -0
- package/dist/server/modules/resource/index.js +29 -3
- package/dist/server/modules/schedule/index.d.ts +4 -4
- package/dist/server/modules/schedule/index.js +111 -88
- package/dist/server/test.json +713 -0
- package/dist/server/utils/small-ticket.d.ts +71 -0
- package/dist/server/utils/small-ticket.js +840 -0
- package/dist/solution/BaseSales/index.d.ts +133 -10
- package/dist/solution/BaseSales/index.js +1950 -447
- package/dist/solution/BaseSales/types.d.ts +82 -6
- package/dist/solution/BaseSales/types.js +5 -4
- package/dist/solution/BaseSales/utils/cartPromotion.d.ts +287 -0
- package/dist/solution/BaseSales/utils/cartPromotion.js +1438 -0
- package/dist/solution/BaseSales/utils/quotationPrice.d.ts +7 -0
- package/dist/solution/BaseSales/utils/quotationPrice.js +237 -0
- package/dist/solution/BaseSales/utils/transformBaseProductToOrderProduct.d.ts +1 -0
- package/dist/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +105 -24
- package/dist/solution/BaseSales/utils.d.ts +1 -1
- package/dist/solution/BaseSales/utils.js +62 -21
- package/dist/solution/BookingByStep/index.d.ts +1 -1
- package/dist/solution/BookingTicket/index.d.ts +271 -11
- package/dist/solution/BookingTicket/index.js +1777 -242
- package/dist/solution/BookingTicket/types.d.ts +118 -1
- package/dist/solution/BookingTicket/types.js +41 -2
- package/dist/solution/BookingTicket/utils/addProductDecision.d.ts +117 -0
- package/dist/solution/BookingTicket/utils/addProductDecision.js +346 -0
- package/dist/solution/BookingTicket/utils/addTimeAvailability.d.ts +35 -0
- package/dist/solution/BookingTicket/utils/addTimeAvailability.js +95 -0
- package/dist/solution/BookingTicket/utils/bookingStatus.d.ts +40 -0
- package/dist/solution/BookingTicket/utils/bookingStatus.js +70 -0
- package/dist/solution/BookingTicket/utils/cartView.d.ts +9 -1
- package/dist/solution/BookingTicket/utils/cartView.js +94 -7
- package/dist/solution/BookingTicket/utils/exampleData.d.ts +123 -0
- package/dist/solution/BookingTicket/utils/exampleData.js +183 -0
- package/dist/solution/BookingTicket/utils/resolveBestAddTimePlan.d.ts +185 -0
- package/dist/solution/BookingTicket/utils/resolveBestAddTimePlan.js +438 -0
- package/dist/solution/BookingTicket/utils/scan/applyGlobalScan.d.ts +36 -0
- package/dist/solution/BookingTicket/utils/scan/applyGlobalScan.js +400 -0
- package/dist/solution/BookingTicket/utils/scan/formatGlobalScan.d.ts +32 -0
- package/dist/solution/BookingTicket/utils/scan/formatGlobalScan.js +56 -0
- package/dist/solution/BookingTicket/utils/scan/index.d.ts +5 -0
- package/dist/solution/BookingTicket/utils/scan/index.js +20 -8
- package/dist/solution/BookingTicket/utils/scan/scanProductValues.d.ts +21 -0
- package/dist/solution/BookingTicket/utils/scan/scanProductValues.js +150 -0
- package/dist/solution/BookingTicket/utils/sessionCatalogStale.d.ts +23 -0
- package/dist/solution/BookingTicket/utils/sessionCatalogStale.js +78 -0
- package/dist/solution/Checkout/index.d.ts +1 -0
- package/dist/solution/Checkout/index.js +10 -9
- package/dist/solution/RegisterAndLogin/config.js +2 -10
- package/dist/solution/ScanOrder/index.d.ts +9 -3
- package/dist/solution/ScanOrder/index.js +241 -134
- package/dist/solution/ScanOrder/types.d.ts +9 -5
- package/dist/solution/ScanOrder/types.js +2 -3
- package/dist/solution/ScanOrder/utils.d.ts +1 -1
- package/dist/solution/ScanOrder/utils.js +84 -22
- package/dist/solution/VenueBooking/index.d.ts +5 -2
- package/dist/solution/VenueBooking/index.js +110 -59
- package/dist/solution/VenueBooking/sales-section-4-annotated.json +0 -2
- package/dist/solution/VenueBooking/utils/slotMerge.d.ts +4 -0
- package/dist/solution/VenueBooking/utils/slotMerge.js +10 -0
- package/dist/types/index.d.ts +10 -0
- package/lib/model/strategy/adapter/promotion/evaluator.js +2 -1
- package/lib/model/strategy/adapter/promotion/index.js +49 -0
- package/lib/model/strategy/adapter/walletPass/utils.js +3 -2
- package/lib/modules/BookingContext/index.d.ts +48 -0
- package/lib/modules/BookingContext/index.js +368 -0
- package/lib/modules/BookingContext/types.d.ts +102 -0
- package/lib/modules/BookingContext/types.js +34 -0
- package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.d.ts +16 -0
- package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +276 -0
- package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.d.ts +8 -0
- package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +154 -0
- package/lib/modules/BookingContext/utils/cacheItemToBookingInput.d.ts +76 -0
- package/lib/modules/BookingContext/utils/cacheItemToBookingInput.js +201 -0
- package/lib/modules/BookingContext/utils/flexible.d.ts +28 -0
- package/lib/modules/BookingContext/utils/flexible.js +80 -0
- package/lib/modules/BookingContext/utils/formatResourceList.d.ts +8 -0
- package/lib/modules/BookingContext/utils/formatResourceList.js +50 -0
- package/lib/modules/BookingContext/utils/index.d.ts +11 -0
- package/lib/modules/BookingContext/utils/index.js +43 -0
- package/lib/modules/BookingContext/utils/noResource.d.ts +13 -0
- package/lib/modules/BookingContext/utils/noResource.js +90 -0
- package/lib/modules/BookingContext/utils/orderLineDisplay.d.ts +1 -0
- package/lib/modules/BookingContext/utils/orderLineDisplay.js +56 -0
- package/lib/modules/BookingContext/utils/productExtend.d.ts +72 -0
- package/lib/modules/BookingContext/utils/productExtend.js +283 -0
- package/lib/modules/BookingContext/utils/resourceErrors.d.ts +41 -0
- package/lib/modules/BookingContext/utils/resourceErrors.js +80 -0
- package/lib/modules/BookingContext/utils/resourceSelection.d.ts +7 -0
- package/lib/modules/BookingContext/utils/resourceSelection.js +46 -0
- package/lib/modules/BookingContext/utils/resources.d.ts +80 -0
- package/lib/modules/BookingContext/utils/resources.js +377 -0
- package/lib/modules/BookingContext/utils/serviceTimes.d.ts +55 -0
- package/lib/modules/BookingContext/utils/serviceTimes.js +162 -0
- package/lib/modules/BookingContext/utils/timeSlices.d.ts +42 -0
- package/lib/modules/BookingContext/utils/timeSlices.js +124 -0
- package/lib/modules/Cart/utils/cartProduct.js +20 -3
- package/lib/modules/Cart/utils/changePrice.js +12 -20
- package/lib/modules/Customer/index.d.ts +20 -0
- package/lib/modules/Customer/index.js +64 -11
- package/lib/modules/Customer/types.d.ts +2 -0
- package/lib/modules/Discount/index.d.ts +1 -1
- package/lib/modules/Discount/index.js +9 -1
- package/lib/modules/Discount/types.d.ts +1 -0
- package/lib/modules/OpenData/index.d.ts +8 -0
- package/lib/modules/OpenData/index.js +19 -5
- package/lib/modules/Order/index.d.ts +277 -18
- package/lib/modules/Order/index.js +2317 -337
- package/lib/modules/Order/types.d.ts +286 -31
- package/lib/modules/Order/types.js +1 -0
- package/lib/modules/Order/utils/manualProductDiscount.d.ts +106 -0
- package/lib/modules/Order/utils/manualProductDiscount.js +206 -0
- package/lib/modules/Order/utils.d.ts +147 -5
- package/lib/modules/Order/utils.js +615 -46
- package/lib/modules/Payment/index.d.ts +10 -13
- package/lib/modules/Payment/index.js +18 -150
- package/lib/modules/Payment/types.d.ts +2 -0
- package/lib/modules/Payment/utils.js +2 -1
- package/lib/modules/Payment/walletpass.js +16 -3
- package/lib/modules/ProductList/index.d.ts +16 -12
- package/lib/modules/ProductList/index.js +41 -4
- package/lib/modules/ProductList/types.d.ts +14 -0
- package/lib/modules/Quotation/index.d.ts +0 -1
- package/lib/modules/Quotation/index.js +19 -16
- package/lib/modules/Rules/index.d.ts +4 -0
- package/lib/modules/Rules/index.js +137 -120
- package/lib/modules/Rules/types.d.ts +1 -0
- package/lib/modules/SalesSummary/index.d.ts +8 -25
- package/lib/modules/SalesSummary/index.js +30 -4
- package/lib/modules/SalesSummary/types.d.ts +4 -1
- package/lib/modules/SalesSummary/utils.d.ts +2 -25
- package/lib/modules/SalesSummary/utils.js +645 -91
- package/lib/modules/Schedule/index.d.ts +7 -0
- package/lib/modules/Schedule/index.js +17 -1
- package/lib/modules/Summary/index.js +5 -4
- package/lib/modules/SurchargeList/index.d.ts +16 -0
- package/lib/modules/SurchargeList/index.js +89 -0
- package/lib/modules/SurchargeList/types.d.ts +11 -0
- package/lib/modules/SurchargeList/types.js +17 -0
- package/lib/modules/index.d.ts +2 -0
- package/lib/modules/index.js +5 -1
- package/lib/plugins/request.d.ts +1 -0
- package/lib/server/index.d.ts +204 -1
- package/lib/server/index.js +1891 -59
- package/lib/server/modules/index.d.ts +2 -0
- package/lib/server/modules/index.js +3 -0
- package/lib/server/modules/order/index.d.ts +120 -3
- package/lib/server/modules/order/index.js +887 -94
- package/lib/server/modules/order/types.d.ts +32 -3
- package/lib/server/modules/order/utils/filterBookings.js +24 -5
- package/lib/server/modules/order/utils/filterOrders.js +15 -6
- package/lib/server/modules/payment/index.d.ts +28 -0
- package/lib/server/modules/payment/index.js +192 -0
- package/lib/server/modules/payment/types.d.ts +9 -0
- package/lib/server/modules/payment/types.js +17 -0
- package/lib/server/modules/products/index.d.ts +34 -7
- package/lib/server/modules/products/index.js +189 -54
- package/lib/server/modules/resource/index.d.ts +2 -0
- package/lib/server/modules/resource/index.js +27 -3
- package/lib/server/modules/schedule/index.d.ts +4 -4
- package/lib/server/modules/schedule/index.js +47 -40
- package/lib/server/test.json +713 -0
- package/lib/server/utils/small-ticket.d.ts +71 -0
- package/lib/server/utils/small-ticket.js +800 -0
- package/lib/solution/BaseSales/index.d.ts +133 -10
- package/lib/solution/BaseSales/index.js +1111 -63
- package/lib/solution/BaseSales/types.d.ts +82 -6
- package/lib/solution/BaseSales/types.js +3 -1
- package/lib/solution/BaseSales/utils/cartPromotion.d.ts +287 -0
- package/lib/solution/BaseSales/utils/cartPromotion.js +992 -0
- package/lib/solution/BaseSales/utils/quotationPrice.d.ts +7 -0
- package/lib/solution/BaseSales/utils/quotationPrice.js +277 -0
- package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.d.ts +1 -0
- package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +106 -18
- package/lib/solution/BaseSales/utils.d.ts +1 -1
- package/lib/solution/BaseSales/utils.js +54 -10
- package/lib/solution/BookingByStep/index.d.ts +1 -1
- package/lib/solution/BookingTicket/index.d.ts +271 -11
- package/lib/solution/BookingTicket/index.js +922 -29
- package/lib/solution/BookingTicket/types.d.ts +118 -1
- package/lib/solution/BookingTicket/types.js +11 -0
- package/lib/solution/BookingTicket/utils/addProductDecision.d.ts +117 -0
- package/lib/solution/BookingTicket/utils/addProductDecision.js +318 -0
- package/lib/solution/BookingTicket/utils/addTimeAvailability.d.ts +35 -0
- package/lib/solution/BookingTicket/utils/addTimeAvailability.js +125 -0
- package/lib/solution/BookingTicket/utils/bookingStatus.d.ts +40 -0
- package/lib/solution/BookingTicket/utils/bookingStatus.js +44 -2
- package/lib/solution/BookingTicket/utils/cartView.d.ts +9 -1
- package/lib/solution/BookingTicket/utils/cartView.js +61 -6
- package/lib/solution/BookingTicket/utils/exampleData.d.ts +123 -0
- package/lib/solution/BookingTicket/utils/exampleData.js +0 -0
- package/lib/solution/BookingTicket/utils/resolveBestAddTimePlan.d.ts +185 -0
- package/lib/solution/BookingTicket/utils/resolveBestAddTimePlan.js +254 -0
- package/lib/solution/BookingTicket/utils/scan/applyGlobalScan.d.ts +36 -0
- package/lib/solution/BookingTicket/utils/scan/applyGlobalScan.js +169 -0
- package/lib/solution/BookingTicket/utils/scan/formatGlobalScan.d.ts +32 -0
- package/lib/solution/BookingTicket/utils/scan/formatGlobalScan.js +51 -0
- package/lib/solution/BookingTicket/utils/scan/index.d.ts +5 -0
- package/lib/solution/BookingTicket/utils/scan/index.js +17 -3
- package/lib/solution/BookingTicket/utils/scan/scanProductValues.d.ts +21 -0
- package/lib/solution/BookingTicket/utils/scan/scanProductValues.js +127 -0
- package/lib/solution/BookingTicket/utils/sessionCatalogStale.d.ts +23 -0
- package/lib/solution/BookingTicket/utils/sessionCatalogStale.js +85 -0
- package/lib/solution/Checkout/index.d.ts +1 -0
- package/lib/solution/Checkout/index.js +1 -2
- package/lib/solution/RegisterAndLogin/config.js +2 -10
- package/lib/solution/ScanOrder/index.d.ts +9 -3
- package/lib/solution/ScanOrder/index.js +153 -70
- package/lib/solution/ScanOrder/types.d.ts +9 -5
- package/lib/solution/ScanOrder/utils.d.ts +1 -1
- package/lib/solution/ScanOrder/utils.js +83 -17
- package/lib/solution/VenueBooking/index.d.ts +5 -2
- package/lib/solution/VenueBooking/index.js +54 -17
- package/lib/solution/VenueBooking/sales-section-4-annotated.json +0 -2
- package/lib/solution/VenueBooking/utils/slotMerge.d.ts +4 -0
- package/lib/solution/VenueBooking/utils/slotMerge.js +10 -0
- package/lib/types/index.d.ts +10 -0
- package/package.json +1 -1
- package/dist/solution/Checkout/appointmentDemo.json +0 -1
- package/lib/solution/Checkout/appointmentDemo.json +0 -1
|
@@ -0,0 +1,368 @@
|
|
|
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 __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
|
|
30
|
+
// src/modules/BookingContext/index.ts
|
|
31
|
+
var BookingContext_exports = {};
|
|
32
|
+
__export(BookingContext_exports, {
|
|
33
|
+
BookingContextModule: () => BookingContextModule,
|
|
34
|
+
__clearBookingContextSharedCacheForTest: () => __clearBookingContextSharedCacheForTest,
|
|
35
|
+
buildBookingConfigQueryKey: () => buildBookingConfigQueryKey,
|
|
36
|
+
buildBookingResourcesQueryKey: () => buildBookingResourcesQueryKey
|
|
37
|
+
});
|
|
38
|
+
module.exports = __toCommonJS(BookingContext_exports);
|
|
39
|
+
var import_dayjs = __toESM(require("dayjs"));
|
|
40
|
+
var import_BaseModule = require("../BaseModule");
|
|
41
|
+
var import_request = require("../../plugins/request");
|
|
42
|
+
var import_types = require("./types");
|
|
43
|
+
var import_formatResourceList = require("./utils/formatResourceList");
|
|
44
|
+
__reExport(BookingContext_exports, require("./types"), module.exports);
|
|
45
|
+
__reExport(BookingContext_exports, require("./utils"), module.exports);
|
|
46
|
+
var EMPTY_STATE = {
|
|
47
|
+
bookingConfig: null,
|
|
48
|
+
resourcesOrigin: [],
|
|
49
|
+
resourcesOriginMap: {},
|
|
50
|
+
date: null
|
|
51
|
+
};
|
|
52
|
+
var DEFAULT_BOOKING_CONFIG_PARAMS = {
|
|
53
|
+
item_type: "appointment_booking",
|
|
54
|
+
sub_type: "ticket"
|
|
55
|
+
};
|
|
56
|
+
var BOARD_CONFIG_CACHE = {
|
|
57
|
+
useCache: true,
|
|
58
|
+
cache: {
|
|
59
|
+
mode: import_request.RequestModeENUM.REMOTE_LOCAL,
|
|
60
|
+
type: "indexDB",
|
|
61
|
+
updateCache: true
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
var RESOURCE_LIST_CACHE = {
|
|
65
|
+
useCache: true,
|
|
66
|
+
cache: {
|
|
67
|
+
mode: import_request.RequestModeENUM.REMOTE_LOCAL,
|
|
68
|
+
type: "memory"
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
var requestScopeIds = /* @__PURE__ */ new WeakMap();
|
|
72
|
+
var nextRequestScopeId = 1;
|
|
73
|
+
var sharedBookingConfigCache = /* @__PURE__ */ new Map();
|
|
74
|
+
var sharedBookingConfigPending = /* @__PURE__ */ new Map();
|
|
75
|
+
var sharedResourcesCache = /* @__PURE__ */ new Map();
|
|
76
|
+
var sharedResourcesPending = /* @__PURE__ */ new Map();
|
|
77
|
+
function getRequestScopeId(request) {
|
|
78
|
+
const key = request;
|
|
79
|
+
const existed = requestScopeIds.get(key);
|
|
80
|
+
if (existed)
|
|
81
|
+
return existed;
|
|
82
|
+
const id = nextRequestScopeId++;
|
|
83
|
+
requestScopeIds.set(key, id);
|
|
84
|
+
return id;
|
|
85
|
+
}
|
|
86
|
+
function buildSharedCacheKey(request, queryKey) {
|
|
87
|
+
return `${getRequestScopeId(request)}:${queryKey}`;
|
|
88
|
+
}
|
|
89
|
+
function __clearBookingContextSharedCacheForTest() {
|
|
90
|
+
sharedBookingConfigCache.clear();
|
|
91
|
+
sharedBookingConfigPending.clear();
|
|
92
|
+
sharedResourcesCache.clear();
|
|
93
|
+
sharedResourcesPending.clear();
|
|
94
|
+
}
|
|
95
|
+
function normalizeDate(input) {
|
|
96
|
+
if (input === null || input === void 0)
|
|
97
|
+
return null;
|
|
98
|
+
if (typeof input === "string")
|
|
99
|
+
return input || null;
|
|
100
|
+
if (input instanceof Date)
|
|
101
|
+
return input.toISOString();
|
|
102
|
+
if (typeof input.format === "function") {
|
|
103
|
+
try {
|
|
104
|
+
return input.format() || null;
|
|
105
|
+
} catch {
|
|
106
|
+
return null;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
return null;
|
|
110
|
+
}
|
|
111
|
+
function toScheduleQueryDate(input) {
|
|
112
|
+
const normalized = normalizeDate(input);
|
|
113
|
+
if (!normalized)
|
|
114
|
+
return (0, import_dayjs.default)().format("YYYY-MM-DD");
|
|
115
|
+
const parsed = (0, import_dayjs.default)(normalized);
|
|
116
|
+
return parsed.isValid() ? parsed.format("YYYY-MM-DD") : (0, import_dayjs.default)().format("YYYY-MM-DD");
|
|
117
|
+
}
|
|
118
|
+
function buildResourcesMap(resources) {
|
|
119
|
+
const map = {};
|
|
120
|
+
resources.forEach((resource) => {
|
|
121
|
+
if (resource && resource.id !== void 0 && resource.id !== null) {
|
|
122
|
+
map[String(resource.id)] = resource;
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
return map;
|
|
126
|
+
}
|
|
127
|
+
function buildBookingConfigQueryKey(params = {}) {
|
|
128
|
+
const merged = { ...DEFAULT_BOOKING_CONFIG_PARAMS, ...params };
|
|
129
|
+
const keys = Object.keys(merged).sort();
|
|
130
|
+
const sorted = {};
|
|
131
|
+
keys.forEach((k) => {
|
|
132
|
+
sorted[k] = merged[k];
|
|
133
|
+
});
|
|
134
|
+
return JSON.stringify(sorted);
|
|
135
|
+
}
|
|
136
|
+
function buildBookingResourcesQueryKey(params = {}) {
|
|
137
|
+
const date = toScheduleQueryDate(params.date);
|
|
138
|
+
const ids = (params.bookingIds || []).filter((id) => typeof id === "number" && Number.isFinite(id)).sort((a, b) => a - b);
|
|
139
|
+
return `${date}|${ids.join(",")}`;
|
|
140
|
+
}
|
|
141
|
+
var BookingContextModule = class extends import_BaseModule.BaseModule {
|
|
142
|
+
constructor(name, version) {
|
|
143
|
+
super(name, version);
|
|
144
|
+
this.defaultName = "bookingContext";
|
|
145
|
+
this.defaultVersion = "1.0.0";
|
|
146
|
+
this.store = { ...EMPTY_STATE };
|
|
147
|
+
/** 上次成功 loadBookingConfig 的 query key;命中则不再请求。 */
|
|
148
|
+
this.lastConfigQueryKey = null;
|
|
149
|
+
/** 上次成功 loadResources 的 query key(date|bookingIds);命中则不再请求。 */
|
|
150
|
+
this.lastResourcesQueryKey = null;
|
|
151
|
+
}
|
|
152
|
+
async initialize(core, options = {}) {
|
|
153
|
+
this.core = core;
|
|
154
|
+
this.request = core.getPlugin("request");
|
|
155
|
+
if (!this.request) {
|
|
156
|
+
throw new Error("BookingContextModule 需要 request 插件支持");
|
|
157
|
+
}
|
|
158
|
+
this.store = {
|
|
159
|
+
bookingConfig: null,
|
|
160
|
+
resourcesOrigin: [],
|
|
161
|
+
resourcesOriginMap: {},
|
|
162
|
+
date: null
|
|
163
|
+
};
|
|
164
|
+
const initialState = options.initialState || {};
|
|
165
|
+
if (initialState.bookingConfig) {
|
|
166
|
+
this.store.bookingConfig = initialState.bookingConfig;
|
|
167
|
+
}
|
|
168
|
+
if (Array.isArray(initialState.resourcesOrigin)) {
|
|
169
|
+
this.store.resourcesOrigin = initialState.resourcesOrigin;
|
|
170
|
+
this.store.resourcesOriginMap = buildResourcesMap(initialState.resourcesOrigin);
|
|
171
|
+
}
|
|
172
|
+
if (initialState.date) {
|
|
173
|
+
this.store.date = initialState.date;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
async loadBookingConfig(params = {}, options = {}) {
|
|
177
|
+
const configKey = buildBookingConfigQueryKey(params);
|
|
178
|
+
if (!options.forceRefresh && this.store.bookingConfig != null && this.lastConfigQueryKey === configKey) {
|
|
179
|
+
return this.store.bookingConfig;
|
|
180
|
+
}
|
|
181
|
+
const query = {
|
|
182
|
+
...DEFAULT_BOOKING_CONFIG_PARAMS,
|
|
183
|
+
...params
|
|
184
|
+
};
|
|
185
|
+
const sharedKey = buildSharedCacheKey(this.request, configKey);
|
|
186
|
+
if (!options.forceRefresh && sharedBookingConfigCache.has(sharedKey)) {
|
|
187
|
+
const cached = sharedBookingConfigCache.get(sharedKey) ?? null;
|
|
188
|
+
this.setBookingConfig(cached);
|
|
189
|
+
this.lastConfigQueryKey = configKey;
|
|
190
|
+
return cached;
|
|
191
|
+
}
|
|
192
|
+
let pending = !options.forceRefresh ? sharedBookingConfigPending.get(sharedKey) : void 0;
|
|
193
|
+
if (!pending) {
|
|
194
|
+
const requestPromise = (async () => {
|
|
195
|
+
try {
|
|
196
|
+
const res = await this.request.get(
|
|
197
|
+
"/core/board/management/config",
|
|
198
|
+
query,
|
|
199
|
+
BOARD_CONFIG_CACHE
|
|
200
|
+
);
|
|
201
|
+
const config2 = (res == null ? void 0 : res.data) ?? null;
|
|
202
|
+
sharedBookingConfigCache.set(sharedKey, config2);
|
|
203
|
+
return config2;
|
|
204
|
+
} finally {
|
|
205
|
+
sharedBookingConfigPending.delete(sharedKey);
|
|
206
|
+
}
|
|
207
|
+
})();
|
|
208
|
+
pending = requestPromise;
|
|
209
|
+
sharedBookingConfigPending.set(sharedKey, requestPromise);
|
|
210
|
+
}
|
|
211
|
+
const config = await pending;
|
|
212
|
+
this.setBookingConfig(config);
|
|
213
|
+
this.lastConfigQueryKey = configKey;
|
|
214
|
+
return config;
|
|
215
|
+
}
|
|
216
|
+
async loadResources(params = {}, options = {}) {
|
|
217
|
+
const date = toScheduleQueryDate(params.date ?? this.store.date);
|
|
218
|
+
const resourcesKey = buildBookingResourcesQueryKey({
|
|
219
|
+
date,
|
|
220
|
+
bookingIds: params.bookingIds
|
|
221
|
+
});
|
|
222
|
+
if (!options.forceRefresh && this.lastResourcesQueryKey === resourcesKey) {
|
|
223
|
+
return this.getResourcesOrigin();
|
|
224
|
+
}
|
|
225
|
+
const sharedKey = buildSharedCacheKey(this.request, resourcesKey);
|
|
226
|
+
if (!options.forceRefresh && sharedResourcesCache.has(sharedKey)) {
|
|
227
|
+
const cached = sharedResourcesCache.get(sharedKey) ?? [];
|
|
228
|
+
this.setResources(cached);
|
|
229
|
+
this.lastResourcesQueryKey = resourcesKey;
|
|
230
|
+
return this.getResourcesOrigin();
|
|
231
|
+
}
|
|
232
|
+
let pending = !options.forceRefresh ? sharedResourcesPending.get(sharedKey) : void 0;
|
|
233
|
+
if (!pending) {
|
|
234
|
+
const requestPromise = (async () => {
|
|
235
|
+
try {
|
|
236
|
+
const res = await this.request.get(
|
|
237
|
+
"/schedule/resource/list",
|
|
238
|
+
{ date },
|
|
239
|
+
RESOURCE_LIST_CACHE
|
|
240
|
+
);
|
|
241
|
+
const { list: list2 } = (0, import_formatResourceList.formatResourceListAndMap)(res == null ? void 0 : res.data, params.bookingIds || []);
|
|
242
|
+
sharedResourcesCache.set(sharedKey, list2);
|
|
243
|
+
return list2;
|
|
244
|
+
} finally {
|
|
245
|
+
sharedResourcesPending.delete(sharedKey);
|
|
246
|
+
}
|
|
247
|
+
})();
|
|
248
|
+
pending = requestPromise;
|
|
249
|
+
sharedResourcesPending.set(sharedKey, requestPromise);
|
|
250
|
+
}
|
|
251
|
+
const list = await pending;
|
|
252
|
+
this.setResources(list);
|
|
253
|
+
this.lastResourcesQueryKey = resourcesKey;
|
|
254
|
+
return this.getResourcesOrigin();
|
|
255
|
+
}
|
|
256
|
+
/**
|
|
257
|
+
* store 内是否已具备与本次 init 入参等价的 config / resources(不再打接口)。
|
|
258
|
+
*/
|
|
259
|
+
isBookingContextReady(params = {}) {
|
|
260
|
+
const configKey = buildBookingConfigQueryKey(params.bookingConfigParams);
|
|
261
|
+
const dateInput = params.date ?? this.store.date ?? (0, import_dayjs.default)();
|
|
262
|
+
const queryDate = toScheduleQueryDate(dateInput);
|
|
263
|
+
const resourcesKey = buildBookingResourcesQueryKey({
|
|
264
|
+
date: queryDate,
|
|
265
|
+
bookingIds: params.bookingIds
|
|
266
|
+
});
|
|
267
|
+
const configReady = this.store.bookingConfig != null && this.lastConfigQueryKey === configKey;
|
|
268
|
+
const resourcesReady = params.loadResources === false || this.lastResourcesQueryKey === resourcesKey;
|
|
269
|
+
return configReady && resourcesReady;
|
|
270
|
+
}
|
|
271
|
+
async initBookingContext(params = {}) {
|
|
272
|
+
const dateInput = params.date ?? this.store.date ?? (0, import_dayjs.default)();
|
|
273
|
+
const queryDate = toScheduleQueryDate(dateInput);
|
|
274
|
+
this.setDate(dateInput);
|
|
275
|
+
if (!params.forceRefresh && this.isBookingContextReady(params)) {
|
|
276
|
+
return this.getState();
|
|
277
|
+
}
|
|
278
|
+
const configKey = buildBookingConfigQueryKey(params.bookingConfigParams);
|
|
279
|
+
const resourcesKey = buildBookingResourcesQueryKey({
|
|
280
|
+
date: queryDate,
|
|
281
|
+
bookingIds: params.bookingIds
|
|
282
|
+
});
|
|
283
|
+
const needConfig = params.forceRefresh || this.store.bookingConfig == null || this.lastConfigQueryKey !== configKey;
|
|
284
|
+
const needResources = params.loadResources !== false && (params.forceRefresh || this.lastResourcesQueryKey !== resourcesKey);
|
|
285
|
+
if (needConfig) {
|
|
286
|
+
await this.loadBookingConfig(params.bookingConfigParams, {
|
|
287
|
+
forceRefresh: params.forceRefresh
|
|
288
|
+
});
|
|
289
|
+
}
|
|
290
|
+
if (needResources) {
|
|
291
|
+
await this.loadResources(
|
|
292
|
+
{
|
|
293
|
+
date: queryDate,
|
|
294
|
+
bookingIds: params.bookingIds
|
|
295
|
+
},
|
|
296
|
+
{
|
|
297
|
+
forceRefresh: params.forceRefresh
|
|
298
|
+
}
|
|
299
|
+
);
|
|
300
|
+
}
|
|
301
|
+
return this.getState();
|
|
302
|
+
}
|
|
303
|
+
setBookingConfig(config) {
|
|
304
|
+
this.store.bookingConfig = config || null;
|
|
305
|
+
this.core.effects.emit(
|
|
306
|
+
`${this.name}:${import_types.BookingContextEvent.OnBookingConfigChange}`,
|
|
307
|
+
this.store.bookingConfig
|
|
308
|
+
);
|
|
309
|
+
}
|
|
310
|
+
getBookingConfig() {
|
|
311
|
+
return this.store.bookingConfig;
|
|
312
|
+
}
|
|
313
|
+
setResources(resources) {
|
|
314
|
+
const list = Array.isArray(resources) ? resources : [];
|
|
315
|
+
this.store.resourcesOrigin = list;
|
|
316
|
+
this.store.resourcesOriginMap = buildResourcesMap(list);
|
|
317
|
+
this.core.effects.emit(`${this.name}:${import_types.BookingContextEvent.OnResourcesChange}`, {
|
|
318
|
+
resourcesOrigin: this.store.resourcesOrigin,
|
|
319
|
+
resourcesOriginMap: this.store.resourcesOriginMap
|
|
320
|
+
});
|
|
321
|
+
}
|
|
322
|
+
getResourcesOrigin() {
|
|
323
|
+
return [...this.store.resourcesOrigin];
|
|
324
|
+
}
|
|
325
|
+
getResourcesOriginMap() {
|
|
326
|
+
return this.store.resourcesOriginMap;
|
|
327
|
+
}
|
|
328
|
+
setDate(date) {
|
|
329
|
+
this.store.date = normalizeDate(date);
|
|
330
|
+
this.core.effects.emit(`${this.name}:${import_types.BookingContextEvent.OnDateChange}`, this.store.date);
|
|
331
|
+
}
|
|
332
|
+
getDate() {
|
|
333
|
+
return this.store.date;
|
|
334
|
+
}
|
|
335
|
+
getState() {
|
|
336
|
+
return {
|
|
337
|
+
bookingConfig: this.store.bookingConfig,
|
|
338
|
+
resourcesOrigin: [...this.store.resourcesOrigin],
|
|
339
|
+
resourcesOriginMap: this.store.resourcesOriginMap,
|
|
340
|
+
date: this.store.date
|
|
341
|
+
};
|
|
342
|
+
}
|
|
343
|
+
clear() {
|
|
344
|
+
this.lastConfigQueryKey = null;
|
|
345
|
+
this.lastResourcesQueryKey = null;
|
|
346
|
+
this.store = {
|
|
347
|
+
bookingConfig: null,
|
|
348
|
+
resourcesOrigin: [],
|
|
349
|
+
resourcesOriginMap: {},
|
|
350
|
+
date: null
|
|
351
|
+
};
|
|
352
|
+
this.core.effects.emit(`${this.name}:${import_types.BookingContextEvent.OnBookingConfigChange}`, null);
|
|
353
|
+
this.core.effects.emit(`${this.name}:${import_types.BookingContextEvent.OnResourcesChange}`, {
|
|
354
|
+
resourcesOrigin: [],
|
|
355
|
+
resourcesOriginMap: {}
|
|
356
|
+
});
|
|
357
|
+
this.core.effects.emit(`${this.name}:${import_types.BookingContextEvent.OnDateChange}`, null);
|
|
358
|
+
}
|
|
359
|
+
};
|
|
360
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
361
|
+
0 && (module.exports = {
|
|
362
|
+
BookingContextModule,
|
|
363
|
+
__clearBookingContextSharedCacheForTest,
|
|
364
|
+
buildBookingConfigQueryKey,
|
|
365
|
+
buildBookingResourcesQueryKey,
|
|
366
|
+
...require("./types"),
|
|
367
|
+
...require("./utils")
|
|
368
|
+
});
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* BookingContext 子模块:承载「预约 UI 上下文」三件套。
|
|
3
|
+
*
|
|
4
|
+
* - bookingConfig:来自 `/core/board/management/config` 的整套预约配置(service_time / resource_tab /
|
|
5
|
+
* appointment_subject / subject_require / stock_setting / basic / capacity 等)。
|
|
6
|
+
* - resourcesOrigin / resourcesOriginMap:来自 `/schedule/resource/list` 的资源全集,含 times / event_list /
|
|
7
|
+
* combined_resource 等运行态信息,是 getResourceByIds / getResourceTimeIsUsable 的输入。
|
|
8
|
+
* - date:当前选择的日期(dayjs 或 ISO 字符串,迁移后内部统一存原始 ISO 字符串,UI 可自行解析)。
|
|
9
|
+
*
|
|
10
|
+
* 设计原则(与 BookingTicket 现状对齐):
|
|
11
|
+
* - 默认由 `loadBookingConfig` / `loadResources` 拉取并写入 store;也支持消费方 `set*` 直接灌入(复用 ticketBooking 已拉到的数据)。
|
|
12
|
+
* - 所有读 API 返回浅克隆(数组)或原引用(map / config),避免 UI 写穿。
|
|
13
|
+
*/
|
|
14
|
+
/** `loadBookingConfig` 入参,与 ticketBooking `getBookingConfig` 一致。 */
|
|
15
|
+
export interface LoadBookingConfigParams {
|
|
16
|
+
item_type?: string;
|
|
17
|
+
sub_type?: string;
|
|
18
|
+
source_type?: string;
|
|
19
|
+
[key: string]: any;
|
|
20
|
+
}
|
|
21
|
+
/** `loadResources` 入参,与 info2 `getResourceList` 一致。 */
|
|
22
|
+
export interface LoadBookingResourcesParams {
|
|
23
|
+
/** 查询日期,`YYYY-MM-DD`;缺省用 store 内已 set 的 date,再缺省为当天。 */
|
|
24
|
+
date?: string;
|
|
25
|
+
/** 编辑态排除容量占用用的 booking id 列表。 */
|
|
26
|
+
bookingIds?: number[];
|
|
27
|
+
}
|
|
28
|
+
/** `initBookingContext` 入参(BookingTicket 聚合入口)。 */
|
|
29
|
+
export interface InitBookingContextParams {
|
|
30
|
+
bookingConfigParams?: LoadBookingConfigParams;
|
|
31
|
+
date?: BookingContextDateInput;
|
|
32
|
+
/** 是否拉资源列表,默认 true。 */
|
|
33
|
+
loadResources?: boolean;
|
|
34
|
+
bookingIds?: number[];
|
|
35
|
+
/** 为 true 时忽略内存命中,强制重新请求(默认 false)。 */
|
|
36
|
+
forceRefresh?: boolean;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* 资源全集 map:key 为资源 id(数字),value 为资源原始对象,含 times / event_list 等运行态。
|
|
40
|
+
* 这里只声明 Record 形态;具体字段保留 `any`,与 ticketBooking 现网传入的数据形状兼容。
|
|
41
|
+
*/
|
|
42
|
+
export type BookingContextResource = Record<string, any>;
|
|
43
|
+
export type BookingContextResourceMap = Record<string, BookingContextResource>;
|
|
44
|
+
/**
|
|
45
|
+
* 形参 booking_config(结构来自 `/core/board/management/config` 接口)。
|
|
46
|
+
* OS 不强制 schema,保留 `Record<string, any>` 兼容现网;常用路径文档化在 SDK docs。
|
|
47
|
+
*/
|
|
48
|
+
export type BookingContextConfig = Record<string, any>;
|
|
49
|
+
/**
|
|
50
|
+
* 日期入参:接受 dayjs 实例、ISO 字符串、Date 实例;内部统一 normalize 为 ISO 字符串保存。
|
|
51
|
+
*/
|
|
52
|
+
export type BookingContextDateInput = string | Date | {
|
|
53
|
+
format?: (fmt?: string) => string;
|
|
54
|
+
} | null | undefined;
|
|
55
|
+
/**
|
|
56
|
+
* 内部 store 形态。`resourcesOriginMap` 由 `setResources` 派生,不允许外部直接 set。
|
|
57
|
+
*/
|
|
58
|
+
export interface BookingContextState {
|
|
59
|
+
bookingConfig: BookingContextConfig | null;
|
|
60
|
+
resourcesOrigin: BookingContextResource[];
|
|
61
|
+
resourcesOriginMap: BookingContextResourceMap;
|
|
62
|
+
/**
|
|
63
|
+
* 当前选择的日期,统一 ISO 字符串('YYYY-MM-DD HH:mm:ss' 或 'YYYY-MM-DD')。
|
|
64
|
+
* UI 取出后可自行 dayjs 解析;OS 内的计算 helper 都接受 string,不做 dayjs 依赖。
|
|
65
|
+
*/
|
|
66
|
+
date: string | null;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* BookingContextModule 对外 API(给 BookingTicket / SDK Provider 透传消费)。
|
|
70
|
+
*/
|
|
71
|
+
export interface BookingContextModuleAPI {
|
|
72
|
+
setBookingConfig(config: BookingContextConfig | null): void;
|
|
73
|
+
getBookingConfig(): BookingContextConfig | null;
|
|
74
|
+
setResources(resources: BookingContextResource[] | null | undefined): void;
|
|
75
|
+
getResourcesOrigin(): BookingContextResource[];
|
|
76
|
+
getResourcesOriginMap(): BookingContextResourceMap;
|
|
77
|
+
setDate(date: BookingContextDateInput): void;
|
|
78
|
+
getDate(): string | null;
|
|
79
|
+
/** 当前 store 的浅克隆,调试 / 测试用。 */
|
|
80
|
+
getState(): BookingContextState;
|
|
81
|
+
/** 一键清空,destroy / 切租户场景用。 */
|
|
82
|
+
clear(): void;
|
|
83
|
+
/** 拉取 board config 并写入 store(`/core/board/management/config`)。 */
|
|
84
|
+
loadBookingConfig(params?: LoadBookingConfigParams): Promise<BookingContextConfig | null>;
|
|
85
|
+
/** 拉取资源全集并写入 store(`/schedule/resource/list`)。 */
|
|
86
|
+
loadResources(params?: LoadBookingResourcesParams): Promise<BookingContextResource[]>;
|
|
87
|
+
/**
|
|
88
|
+
* 依次 setDate → loadBookingConfig → loadResources。
|
|
89
|
+
* SalesSdkProvider 挂载时默认调用 BookingTicket.initBookingContext。
|
|
90
|
+
*/
|
|
91
|
+
initBookingContext(params?: InitBookingContextParams): Promise<BookingContextState>;
|
|
92
|
+
/** store 是否已具备与入参等价的 config / resources(无需再请求)。 */
|
|
93
|
+
isBookingContextReady(params?: InitBookingContextParams): boolean;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* BookingContextModule 事件名常量(采用 `${this.name}:` 前缀,与现有模块一致)。
|
|
97
|
+
*/
|
|
98
|
+
export declare enum BookingContextEvent {
|
|
99
|
+
OnBookingConfigChange = "onBookingConfigChange",
|
|
100
|
+
OnResourcesChange = "onResourcesChange",
|
|
101
|
+
OnDateChange = "onDateChange"
|
|
102
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
+
|
|
19
|
+
// src/modules/BookingContext/types.ts
|
|
20
|
+
var types_exports = {};
|
|
21
|
+
__export(types_exports, {
|
|
22
|
+
BookingContextEvent: () => BookingContextEvent
|
|
23
|
+
});
|
|
24
|
+
module.exports = __toCommonJS(types_exports);
|
|
25
|
+
var BookingContextEvent = /* @__PURE__ */ ((BookingContextEvent2) => {
|
|
26
|
+
BookingContextEvent2["OnBookingConfigChange"] = "onBookingConfigChange";
|
|
27
|
+
BookingContextEvent2["OnResourcesChange"] = "onResourcesChange";
|
|
28
|
+
BookingContextEvent2["OnDateChange"] = "onDateChange";
|
|
29
|
+
return BookingContextEvent2;
|
|
30
|
+
})(BookingContextEvent || {});
|
|
31
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
32
|
+
0 && (module.exports = {
|
|
33
|
+
BookingContextEvent
|
|
34
|
+
});
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { OrderProduct } from '../../Order/types';
|
|
2
|
+
export interface BuildCacheItemFromOrderLineInput {
|
|
3
|
+
/** tempOrder.products 中的一行 */
|
|
4
|
+
product: OrderProduct;
|
|
5
|
+
/** 与该行 product_uid 关联的 tempOrder.bookings 项 */
|
|
6
|
+
booking: Record<string, any>;
|
|
7
|
+
/** 商品 catalog / 详情,用于 capacity、duration、product_resource 等模板字段 */
|
|
8
|
+
sourceProduct?: Record<string, any> | null;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* 从已加车的 order line + booking 反查 editService 所需的 cacheItem。
|
|
12
|
+
*
|
|
13
|
+
* 与 `buildCacheItemFromCartDetail` / `buildCacheItemFromDetail` 正向拼装互逆(在 getProductExtend 之前调用)。
|
|
14
|
+
* 调用方须传入与该行关联的 booking(通常 bookings[].product_uid === product.metadata.unique_identification_number)。
|
|
15
|
+
*/
|
|
16
|
+
export declare function buildCacheItemFromOrderLine(input: BuildCacheItemFromOrderLineInput): Record<string, any>;
|