@pisell/pisellos 0.10.14 → 0.10.16
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 +6 -9
- package/dist/model/strategy/adapter/walletPass/example.js +3 -26
- package/dist/model/strategy/strategy-example.js +5 -19
- package/dist/modules/Cart/index.js +0 -3
- package/dist/modules/Cart/utils/cartProduct.js +0 -1
- package/dist/modules/Date/index.js +1 -5
- package/dist/modules/Discount/index.js +2 -4
- package/dist/modules/OpenData/index.js +0 -2
- package/dist/modules/Order/index.d.ts +1 -1
- package/dist/modules/Order/index.js +75 -91
- package/dist/modules/Order/types.d.ts +5 -1
- package/dist/modules/Order/utils/virtualSettlement.d.ts +8 -1
- package/dist/modules/Order/utils/virtualSettlement.js +15 -2
- package/dist/modules/Order/utils.js +7 -1
- package/dist/modules/Payment/index.js +97 -162
- package/dist/modules/Product/types.d.ts +2 -0
- package/dist/modules/Rules/index.js +1 -4
- package/dist/modules/Schedule/index.js +0 -1
- package/dist/modules/Schedule/utils.js +0 -1
- package/dist/modules/Step/index.js +0 -1
- package/dist/plugins/request.js +1 -4
- package/dist/plugins/window.js +2 -6
- package/dist/server/index.js +97 -129
- package/dist/server/modules/menu/index.js +32 -41
- package/dist/server/modules/order/index.js +2 -4
- package/dist/server/modules/products/index.js +24 -42
- package/dist/server/modules/quotation/index.js +29 -38
- package/dist/server/modules/resource/index.js +3 -4
- package/dist/server/modules/schedule/index.js +27 -35
- package/dist/server/utils/product.js +0 -1
- package/dist/solution/BaseSales/index.js +107 -76
- package/dist/solution/BaseSales/types.d.ts +2 -0
- package/dist/solution/BaseSales/utils/cartPromotion.d.ts +5 -0
- package/dist/solution/BaseSales/utils/cartPromotion.js +15 -6
- package/dist/solution/BaseSales/utils/transformBaseProductToOrderProduct.d.ts +3 -0
- package/dist/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +7 -1
- package/dist/solution/BaseSales/utils.js +6 -3
- package/dist/solution/BookingByStep/index.d.ts +2 -2
- package/dist/solution/BookingByStep/index.js +7 -59
- package/dist/solution/BookingByStep/utils/capacity.js +1 -11
- package/dist/solution/BookingByStep/utils/resources.js +1 -3
- package/dist/solution/BookingByStep/utils/timeslots.js +2 -43
- package/dist/solution/BookingTicket/index.js +8 -4
- package/dist/solution/BookingTicket/utils/addProductDecision.js +3 -1
- package/dist/solution/BookingTicket/utils/scan/cloudSearch.js +6 -7
- package/dist/solution/BookingTicket/utils/scan/handleScan.js +25 -31
- package/dist/solution/BookingTicket/utils/scan/index.js +6 -10
- package/dist/solution/BuyTickets/index.js +9 -12
- package/dist/solution/Checkout/index.js +177 -252
- package/dist/solution/Checkout/utils/index.js +4 -16
- package/dist/solution/RegisterAndLogin/index.js +30 -76
- package/dist/solution/ScanOrder/index.js +50 -60
- package/dist/solution/ScanOrder/types.d.ts +2 -0
- package/dist/solution/ScanOrder/utils.js +6 -3
- package/dist/solution/ShopDiscount/index.js +2 -7
- package/dist/solution/VenueBooking/index.js +45 -55
- package/dist/utils/task.js +15 -18
- package/dist/utils/watch.js +0 -1
- package/lib/apis/picoding.js +2 -0
- package/lib/core/index.js +131 -131
- package/lib/effects/index.js +46 -57
- package/lib/index.js +82 -49
- package/lib/model/index.js +14 -21
- package/lib/model/strategy/adapter/dataVariant/adapter.js +38 -50
- package/lib/model/strategy/adapter/dataVariant/evaluator.js +209 -315
- package/lib/model/strategy/adapter/dataVariant/examples.js +229 -237
- package/lib/model/strategy/adapter/dataVariant/index.js +39 -34
- package/lib/model/strategy/adapter/dataVariant/type.js +57 -28
- package/lib/model/strategy/adapter/index.js +100 -64
- package/lib/model/strategy/adapter/itemRule/adapter.js +156 -144
- package/lib/model/strategy/adapter/itemRule/evaluator.js +36 -48
- package/lib/model/strategy/adapter/itemRule/examples.js +295 -225
- package/lib/model/strategy/adapter/itemRule/index.js +83 -57
- package/lib/model/strategy/adapter/itemRule/type.js +97 -36
- package/lib/model/strategy/adapter/promotion/adapter.js +91 -69
- package/lib/model/strategy/adapter/promotion/evaluator.js +444 -310
- package/lib/model/strategy/adapter/promotion/examples.js +222 -234
- package/lib/model/strategy/adapter/promotion/index.js +43 -48
- package/lib/model/strategy/adapter/promotion/type.js +243 -36
- package/lib/model/strategy/adapter/type.js +4 -16
- package/lib/model/strategy/adapter/walletPass/evaluator.js +180 -150
- package/lib/model/strategy/adapter/walletPass/example.js +217 -190
- package/lib/model/strategy/adapter/walletPass/index.js +75 -51
- package/lib/model/strategy/adapter/walletPass/locales.js +36 -58
- package/lib/model/strategy/adapter/walletPass/type.js +4 -16
- package/lib/model/strategy/adapter/walletPass/utils.js +588 -378
- package/lib/model/strategy/engine.js +270 -168
- package/lib/model/strategy/index.js +49 -34
- package/lib/model/strategy/strategy-example.js +243 -239
- package/lib/model/strategy/type.js +100 -40
- package/lib/modules/Account/index.js +39 -53
- package/lib/modules/Account/types.js +20 -33
- package/lib/modules/AccountList/index.js +116 -154
- package/lib/modules/AccountList/types.js +30 -31
- package/lib/modules/AccountList/utils.js +18 -30
- package/lib/modules/BaseModule.js +23 -42
- package/lib/modules/BookingContext/index.js +158 -136
- package/lib/modules/BookingContext/types.js +46 -32
- package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +138 -146
- package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +78 -83
- package/lib/modules/BookingContext/utils/cacheItemToBookingInput.js +170 -150
- package/lib/modules/BookingContext/utils/flexible.js +38 -55
- package/lib/modules/BookingContext/utils/formatResourceList.js +19 -34
- package/lib/modules/BookingContext/utils/index.js +124 -41
- package/lib/modules/BookingContext/utils/noResource.js +58 -70
- package/lib/modules/BookingContext/utils/orderLineDisplay.js +14 -41
- package/lib/modules/BookingContext/utils/productExtend.js +202 -155
- package/lib/modules/BookingContext/utils/resourceErrors.js +53 -53
- package/lib/modules/BookingContext/utils/resourceSelection.js +19 -41
- package/lib/modules/BookingContext/utils/resources.js +209 -167
- package/lib/modules/BookingContext/utils/serviceTimes.js +115 -116
- package/lib/modules/BookingContext/utils/timeSlices.js +76 -86
- package/lib/modules/Cart/index.js +170 -124
- package/lib/modules/Cart/types.js +46 -51
- package/lib/modules/Cart/utils/cartAccount.js +40 -39
- package/lib/modules/Cart/utils/cartDate.js +56 -61
- package/lib/modules/Cart/utils/cartDiscount.js +28 -33
- package/lib/modules/Cart/utils/cartNote.js +27 -32
- package/lib/modules/Cart/utils/cartProduct.js +321 -251
- package/lib/modules/Cart/utils/cartRelationForms.js +29 -35
- package/lib/modules/Cart/utils/cartResource.js +70 -78
- package/lib/modules/Cart/utils/changePrice.js +22 -50
- package/lib/modules/Cart/utils/index.js +106 -48
- package/lib/modules/Customer/constants.js +13 -34
- package/lib/modules/Customer/index.js +235 -172
- package/lib/modules/Customer/types.js +38 -35
- package/lib/modules/Date/index.js +116 -115
- package/lib/modules/Date/types.js +16 -28
- package/lib/modules/Date/utils.js +174 -123
- package/lib/modules/Discount/index.js +133 -143
- package/lib/modules/Discount/types.js +9 -31
- package/lib/modules/Guests/index.js +30 -56
- package/lib/modules/Guests/types.js +23 -33
- package/lib/modules/Holder/index.js +209 -189
- package/lib/modules/Holder/types.js +4 -16
- package/lib/modules/Holder/utils.js +20 -49
- package/lib/modules/OpenData/index.js +70 -76
- package/lib/modules/OpenData/types.js +4 -16
- package/lib/modules/OpenData/utils.js +44 -78
- package/lib/modules/Order/index.d.ts +1 -1
- package/lib/modules/Order/index.js +1810 -2238
- package/lib/modules/Order/payment-utils.js +77 -120
- package/lib/modules/Order/types.d.ts +5 -1
- package/lib/modules/Order/types.js +87 -35
- package/lib/modules/Order/utils/bundleDiscountHydration.js +41 -74
- package/lib/modules/Order/utils/discountProductLineIdentity.js +142 -100
- package/lib/modules/Order/utils/manualProductDiscount.js +124 -123
- package/lib/modules/Order/utils/orderCollectionIdentity.js +184 -244
- package/lib/modules/Order/utils/virtualSettlement.d.ts +8 -1
- package/lib/modules/Order/utils/virtualSettlement.js +126 -164
- package/lib/modules/Order/utils.js +834 -668
- package/lib/modules/Payment/cash.js +20 -33
- package/lib/modules/Payment/cashRecommendationAlgorithm.js +145 -76
- package/lib/modules/Payment/eftpos.js +16 -30
- package/lib/modules/Payment/index.js +532 -399
- package/lib/modules/Payment/mx51.js +1 -0
- package/lib/modules/Payment/types.js +230 -108
- package/lib/modules/Payment/utils.js +52 -51
- package/lib/modules/Payment/walletpass.js +485 -660
- package/lib/modules/Product/index.js +51 -46
- package/lib/modules/Product/types.d.ts +2 -0
- package/lib/modules/Product/types.js +4 -16
- package/lib/modules/Product/utils.js +32 -33
- package/lib/modules/ProductList/index.js +138 -161
- package/lib/modules/ProductList/types.js +9 -31
- package/lib/modules/Quotation/index.js +66 -100
- package/lib/modules/Quotation/types.js +4 -16
- package/lib/modules/Resource/index.js +27 -59
- package/lib/modules/Resource/types.js +22 -32
- package/lib/modules/Resource/utils.js +30 -38
- package/lib/modules/ResourcePlanner/index.js +25 -23
- package/lib/modules/ResourcePlanner/localClock.js +54 -119
- package/lib/modules/ResourcePlanner/planner.js +591 -772
- package/lib/modules/ResourcePlanner/types.js +10 -29
- package/lib/modules/Rules/index.js +1218 -959
- package/lib/modules/Rules/types.js +17 -40
- package/lib/modules/SalesSummary/index.js +78 -89
- package/lib/modules/SalesSummary/types.js +4 -16
- package/lib/modules/SalesSummary/utils.js +359 -442
- package/lib/modules/ScanOrderLogger/index.js +59 -79
- package/lib/modules/ScanOrderLogger/providers/feishu.js +54 -78
- package/lib/modules/ScanOrderLogger/providers/grafana.js +13 -36
- package/lib/modules/ScanOrderLogger/types.js +4 -16
- package/lib/modules/Schedule/getDateIsInSchedule.js +334 -163
- package/lib/modules/Schedule/index.js +100 -114
- package/lib/modules/Schedule/type.js +4 -16
- package/lib/modules/Schedule/types.js +4 -16
- package/lib/modules/Schedule/utils.js +433 -291
- package/lib/modules/Step/index.js +40 -52
- package/lib/modules/Step/tyeps.js +4 -16
- package/lib/modules/Summary/index.js +66 -71
- package/lib/modules/Summary/types.js +4 -16
- package/lib/modules/Summary/utils.js +773 -418
- package/lib/modules/SurchargeList/index.js +46 -60
- package/lib/modules/SurchargeList/types.js +4 -16
- package/lib/modules/index.js +245 -63
- package/lib/plugins/app.js +4 -16
- package/lib/plugins/index.js +36 -25
- package/lib/plugins/request.js +137 -126
- package/lib/plugins/shopStore.js +4 -16
- package/lib/plugins/user.js +4 -16
- package/lib/plugins/window.js +171 -179
- package/lib/server/index.js +3027 -2655
- package/lib/server/modules/floor-plan/index.js +102 -123
- package/lib/server/modules/floor-plan/types.js +15 -30
- package/lib/server/modules/index.js +106 -68
- package/lib/server/modules/menu/index.js +146 -122
- package/lib/server/modules/menu/types.js +18 -31
- package/lib/server/modules/order/index.js +758 -956
- package/lib/server/modules/order/types.js +122 -33
- package/lib/server/modules/order/utils/filterBookings.js +219 -194
- package/lib/server/modules/order/utils/filterOrders.js +118 -92
- package/lib/server/modules/payment/index.js +59 -83
- package/lib/server/modules/payment/types.js +4 -16
- package/lib/server/modules/products/index.js +575 -459
- package/lib/server/modules/products/types.js +44 -34
- package/lib/server/modules/quotation/index.js +137 -172
- package/lib/server/modules/quotation/types.js +21 -31
- package/lib/server/modules/resource/index.js +213 -184
- package/lib/server/modules/resource/types.js +42 -33
- package/lib/server/modules/schedule/index.js +135 -123
- package/lib/server/modules/schedule/types.js +14 -21
- package/lib/server/modules/schedule/utils.js +334 -163
- package/lib/server/types.js +4 -16
- package/lib/server/utils/index.js +25 -23
- package/lib/server/utils/product.js +196 -139
- package/lib/server/utils/schedule.js +34 -41
- package/lib/server/utils/small-ticket.js +479 -456
- package/lib/server/utils/time.js +40 -49
- package/lib/solution/BaseSales/index.js +1276 -1485
- package/lib/solution/BaseSales/types.d.ts +2 -0
- package/lib/solution/BaseSales/types.js +42 -38
- package/lib/solution/BaseSales/utils/cartPromotion.d.ts +5 -0
- package/lib/solution/BaseSales/utils/cartPromotion.js +652 -498
- package/lib/solution/BaseSales/utils/parseSalesResponse.js +85 -105
- package/lib/solution/BaseSales/utils/quotationPrice.js +56 -114
- package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.d.ts +3 -0
- package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +138 -180
- package/lib/solution/BaseSales/utils.js +161 -143
- package/lib/solution/BookingByStep/index.d.ts +2 -2
- package/lib/solution/BookingByStep/index.js +1527 -1340
- package/lib/solution/BookingByStep/types.js +40 -99
- package/lib/solution/BookingByStep/utils/capacity.js +192 -160
- package/lib/solution/BookingByStep/utils/products.js +42 -52
- package/lib/solution/BookingByStep/utils/resources.js +527 -330
- package/lib/solution/BookingByStep/utils/stock.js +65 -44
- package/lib/solution/BookingByStep/utils/timeslots.js +129 -131
- package/lib/solution/BookingTicket/index.js +598 -514
- package/lib/solution/BookingTicket/types.js +99 -77
- package/lib/solution/BookingTicket/utils/addProductDecision.js +229 -190
- package/lib/solution/BookingTicket/utils/addTimeAvailability.js +58 -89
- package/lib/solution/BookingTicket/utils/bookingStatus.js +107 -78
- package/lib/solution/BookingTicket/utils/cartView.js +114 -99
- package/lib/solution/BookingTicket/utils/exampleData.js +185 -0
- package/lib/solution/BookingTicket/utils/orderCustomer.js +18 -41
- package/lib/solution/BookingTicket/utils/resolveBestAddTimePlan.js +219 -86
- package/lib/solution/BookingTicket/utils/scan/applyGlobalScan.js +168 -116
- package/lib/solution/BookingTicket/utils/scan/cloudSearch.js +79 -91
- package/lib/solution/BookingTicket/utils/scan/formatGlobalScan.js +54 -41
- package/lib/solution/BookingTicket/utils/scan/handleScan.js +84 -81
- package/lib/solution/BookingTicket/utils/scan/index.js +98 -104
- package/lib/solution/BookingTicket/utils/scan/scanCache.js +90 -43
- package/lib/solution/BookingTicket/utils/scan/scanProductValues.js +52 -64
- package/lib/solution/BookingTicket/utils/sessionCatalogStale.js +56 -58
- package/lib/solution/BookingTicket/utils/weighingProductSku.js +34 -48
- package/lib/solution/BuyTickets/index.js +67 -70
- package/lib/solution/BuyTickets/types.js +22 -38
- package/lib/solution/Checkout/index.js +1451 -1158
- package/lib/solution/Checkout/types.js +91 -61
- package/lib/solution/Checkout/utils/index.js +228 -156
- package/lib/solution/PlaceOrder/index.js +55 -0
- package/lib/solution/RegisterAndLogin/config.js +493 -460
- package/lib/solution/RegisterAndLogin/index.js +633 -630
- package/lib/solution/RegisterAndLogin/types.js +189 -76
- package/lib/solution/RegisterAndLogin/utils.js +183 -125
- package/lib/solution/Sales/index.js +328 -324
- package/lib/solution/Sales/types.js +27 -33
- package/lib/solution/ScanOrder/index.js +822 -852
- package/lib/solution/ScanOrder/types.d.ts +2 -0
- package/lib/solution/ScanOrder/types.js +33 -34
- package/lib/solution/ScanOrder/utils.js +412 -374
- package/lib/solution/ShopDiscount/index.js +226 -232
- package/lib/solution/ShopDiscount/types.js +15 -37
- package/lib/solution/ShopDiscount/utils.js +300 -172
- package/lib/solution/UnifiedBookingSales/index.js +1052 -1213
- package/lib/solution/UnifiedBookingSales/remoteOccupancyCache.js +99 -159
- package/lib/solution/UnifiedBookingSales/types.js +10 -32
- package/lib/solution/VenueBooking/index.js +811 -879
- package/lib/solution/VenueBooking/types.js +19 -39
- package/lib/solution/VenueBooking/utils/dateSummary.js +27 -56
- package/lib/solution/VenueBooking/utils/resource.js +31 -54
- package/lib/solution/VenueBooking/utils/slotMerge.js +94 -107
- package/lib/solution/VenueBooking/utils/timeSlot.js +132 -132
- package/lib/solution/VenueBooking/utils.js +130 -67
- package/lib/solution/index.js +124 -41
- package/lib/store/createStore.js +32 -29
- package/lib/types/index.js +4 -16
- package/lib/utils/payment-number.js +26 -46
- package/lib/utils/task.js +36 -36
- package/lib/utils/watch.js +81 -47
- package/package.json +2 -1
|
@@ -1,133 +1,97 @@
|
|
|
1
|
-
|
|
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);
|
|
1
|
+
"use strict";
|
|
28
2
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
__export(Discount_exports, {
|
|
32
|
-
DiscountModule: () => DiscountModule
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
33
5
|
});
|
|
34
|
-
|
|
35
|
-
var
|
|
36
|
-
var
|
|
37
|
-
var
|
|
38
|
-
var
|
|
39
|
-
|
|
6
|
+
exports.DiscountModule = void 0;
|
|
7
|
+
var _utils = require("../../solution/ShopDiscount/utils");
|
|
8
|
+
var _BaseModule = require("../BaseModule");
|
|
9
|
+
var _types = require("./types");
|
|
10
|
+
var _decimal = _interopRequireDefault(require("decimal.js"));
|
|
11
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
12
|
+
class DiscountModule extends _BaseModule.BaseModule {
|
|
13
|
+
defaultName = 'discount';
|
|
14
|
+
defaultVersion = '1.0.0';
|
|
15
|
+
request;
|
|
16
|
+
window;
|
|
17
|
+
store;
|
|
18
|
+
cacheId;
|
|
19
|
+
openCache = false;
|
|
20
|
+
fatherModule;
|
|
40
21
|
constructor(name, version) {
|
|
41
22
|
super(name, version);
|
|
42
|
-
this.defaultName = "discount";
|
|
43
|
-
this.defaultVersion = "1.0.0";
|
|
44
|
-
this.openCache = false;
|
|
45
23
|
}
|
|
46
24
|
async initialize(core, options) {
|
|
47
|
-
var _a, _b, _c, _d;
|
|
48
25
|
this.core = core;
|
|
49
|
-
this.store = options
|
|
50
|
-
if (Array.isArray(
|
|
51
|
-
this.store.discountList = options
|
|
26
|
+
this.store = options?.store;
|
|
27
|
+
if (Array.isArray(options?.initialState?.discountList)) {
|
|
28
|
+
this.store.discountList = options?.initialState.discountList;
|
|
52
29
|
} else {
|
|
53
30
|
this.store.discountList = [];
|
|
54
31
|
}
|
|
55
|
-
if (Array.isArray(
|
|
56
|
-
this.store.originalDiscountList = options
|
|
32
|
+
if (Array.isArray(options?.initialState?.originalDiscountList)) {
|
|
33
|
+
this.store.originalDiscountList = options?.initialState.originalDiscountList;
|
|
57
34
|
} else {
|
|
58
35
|
this.store.originalDiscountList = [];
|
|
59
36
|
}
|
|
60
|
-
if (
|
|
37
|
+
if (options?.otherParams?.cacheId) {
|
|
61
38
|
this.openCache = options.otherParams.openCache;
|
|
62
39
|
this.cacheId = options.otherParams.cacheId;
|
|
63
40
|
}
|
|
64
|
-
if (
|
|
41
|
+
if (options?.otherParams?.fatherModule) {
|
|
65
42
|
this.fatherModule = options.otherParams.fatherModule;
|
|
66
43
|
}
|
|
67
|
-
|
|
68
|
-
|
|
44
|
+
|
|
45
|
+
// 获取依赖的插件
|
|
46
|
+
this.request = core.getPlugin('request');
|
|
47
|
+
this.window = core.getPlugin('window');
|
|
69
48
|
if (!this.request) {
|
|
70
|
-
throw new Error(
|
|
49
|
+
throw new Error('discount模块需要 request 插件支持');
|
|
71
50
|
}
|
|
72
51
|
if (!this.window) {
|
|
73
|
-
throw new Error(
|
|
52
|
+
throw new Error('discount模块需要 window 插件支持');
|
|
74
53
|
}
|
|
75
54
|
}
|
|
76
55
|
async setDiscountList(discountList) {
|
|
77
56
|
this.store.discountList = discountList;
|
|
78
|
-
await this.core.effects.emit(
|
|
79
|
-
import_types.DiscountHooks.OnDiscountListChange,
|
|
80
|
-
discountList
|
|
81
|
-
);
|
|
57
|
+
await this.core.effects.emit(_types.DiscountHooks.OnDiscountListChange, discountList);
|
|
82
58
|
}
|
|
83
59
|
getDiscountList() {
|
|
84
60
|
return this.store.discountList;
|
|
85
61
|
}
|
|
62
|
+
|
|
86
63
|
// 设置原始优惠券列表
|
|
87
64
|
async setOriginalDiscountList(originalDiscountList) {
|
|
88
65
|
this.store.originalDiscountList = originalDiscountList;
|
|
89
66
|
}
|
|
67
|
+
|
|
90
68
|
// 获取原始优惠券列表
|
|
91
69
|
getOriginalDiscountList() {
|
|
92
70
|
return this.store.originalDiscountList || [];
|
|
93
71
|
}
|
|
94
72
|
normalizePositiveNumberIds(values) {
|
|
95
|
-
const ids = values.map(
|
|
73
|
+
const ids = values.map(value => Number(value)).filter(value => Number.isFinite(value) && value > 0);
|
|
96
74
|
return Array.from(new Set(ids));
|
|
97
75
|
}
|
|
98
76
|
async loadPrepareConfig(params) {
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
params.order_id = void 0;
|
|
77
|
+
if (typeof params.order_id === 'string' && params.order_id.startsWith('LOCAL_')) {
|
|
78
|
+
params.order_id = undefined;
|
|
102
79
|
}
|
|
103
|
-
const prepareConfig = await this.request.post(
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
const
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
...((_d = prepareConfig == null ? void 0 : prepareConfig.data) == null ? void 0 : _d.available_wallet_list) || []
|
|
119
|
-
];
|
|
120
|
-
const availableWalletPassList = ((_e = prepareConfig == null ? void 0 : prepareConfig.data) == null ? void 0 : _e.available_wallet_pass_list) || [];
|
|
121
|
-
const availableWalletIds = this.normalizePositiveNumberIds([
|
|
122
|
-
...availableWalletList.map((item) => item == null ? void 0 : item.wallet_id),
|
|
123
|
-
...availableWalletPassList.map((item) => item == null ? void 0 : item.product_id)
|
|
124
|
-
]);
|
|
125
|
-
const virtualCurrencyList = this.normalizeVirtualCurrencyList(
|
|
126
|
-
(_f = prepareConfig == null ? void 0 : prepareConfig.data) == null ? void 0 : _f.virtual_currency_list
|
|
127
|
-
);
|
|
128
|
-
const goodPassList = this.filterEnabledDiscountList(
|
|
129
|
-
rawDiscountList
|
|
130
|
-
) || [];
|
|
80
|
+
const prepareConfig = await this.request.post(`/order/prepare/config`, {
|
|
81
|
+
...params,
|
|
82
|
+
with_available_wallet_flag: params.with_available_wallet_flag ?? 1,
|
|
83
|
+
with_available_wallet_pass_flag: params.with_available_wallet_pass_flag ?? 1,
|
|
84
|
+
with_virtual_currency: params.with_virtual_currency ?? 1
|
|
85
|
+
});
|
|
86
|
+
const rawDiscountList = [...(prepareConfig?.data?.good_pass_list || []), ...(prepareConfig?.data?.discount_card_list || [])];
|
|
87
|
+
const availableWalletList = [...(prepareConfig?.data?.avaiable_wallet_list || []), ...(prepareConfig?.data?.available_wallet_list || [])];
|
|
88
|
+
const availableWalletPassList = prepareConfig?.data?.available_wallet_pass_list || [];
|
|
89
|
+
const availableWalletIds = this.normalizePositiveNumberIds([...availableWalletList.map(item => item?.wallet_id), ...availableWalletPassList.map(item => item?.product_id)]);
|
|
90
|
+
const virtualCurrencyList = this.normalizeVirtualCurrencyList(prepareConfig?.data?.virtual_currency_list);
|
|
91
|
+
const goodPassList = this.filterEnabledDiscountList(rawDiscountList) || [];
|
|
92
|
+
|
|
93
|
+
// this.setDiscountList(goodPassList);
|
|
94
|
+
|
|
131
95
|
return {
|
|
132
96
|
discountList: goodPassList,
|
|
133
97
|
availableWalletIds,
|
|
@@ -135,19 +99,16 @@ var DiscountModule = class extends import_BaseModule.BaseModule {
|
|
|
135
99
|
};
|
|
136
100
|
}
|
|
137
101
|
normalizeVirtualCurrencyList(value) {
|
|
138
|
-
if (!Array.isArray(value))
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
const
|
|
142
|
-
const productId = Number(item == null ? void 0 : item.product_id);
|
|
102
|
+
if (!Array.isArray(value)) return [];
|
|
103
|
+
return value.flatMap(item => {
|
|
104
|
+
const id = Number(item?.id);
|
|
105
|
+
const productId = Number(item?.product_id);
|
|
143
106
|
if (!Number.isFinite(id) || id <= 0 || !Number.isFinite(productId) || productId <= 0) {
|
|
144
107
|
return [];
|
|
145
108
|
}
|
|
146
|
-
const displayExtension = Array.isArray(item
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
let display = displayExtension == null ? void 0 : displayExtension.value;
|
|
150
|
-
if (typeof display === "string") {
|
|
109
|
+
const displayExtension = Array.isArray(item?.extension_data) ? item.extension_data.find(extension => extension?.field_key === 'virtual_currency_display') : undefined;
|
|
110
|
+
let display = displayExtension?.value;
|
|
111
|
+
if (typeof display === 'string') {
|
|
151
112
|
try {
|
|
152
113
|
display = JSON.parse(display);
|
|
153
114
|
} catch {
|
|
@@ -158,159 +119,193 @@ var DiscountModule = class extends import_BaseModule.BaseModule {
|
|
|
158
119
|
...item,
|
|
159
120
|
id,
|
|
160
121
|
product_id: productId,
|
|
161
|
-
balance: String(
|
|
162
|
-
virtual_currency_display: display && typeof display ===
|
|
122
|
+
balance: String(item?.balance ?? '0'),
|
|
123
|
+
virtual_currency_display: display && typeof display === 'object' && !Array.isArray(display) ? display : {}
|
|
163
124
|
}];
|
|
164
125
|
});
|
|
165
126
|
}
|
|
166
127
|
async batchSearch(code, options) {
|
|
167
|
-
const {
|
|
128
|
+
const {
|
|
129
|
+
customerId,
|
|
130
|
+
orderId
|
|
131
|
+
} = options || {};
|
|
168
132
|
const result = await this.request.get(`/machinecode/batch-search`, {
|
|
169
133
|
code,
|
|
170
134
|
translate_flag: 1,
|
|
171
|
-
tags: [
|
|
135
|
+
tags: ['good_pass', 'product_discount_card'],
|
|
172
136
|
// available: 1,
|
|
173
137
|
relation_product: 1,
|
|
174
|
-
with: [
|
|
138
|
+
with: ['extensionData', 'customScheduleSnapshot', 'holder.detail'],
|
|
175
139
|
order_behavior_count: 1,
|
|
176
140
|
order_behavior_count_customer_id: customerId || 1,
|
|
177
|
-
...orderId ? {
|
|
141
|
+
...(orderId ? {
|
|
142
|
+
order_behavior_count_order_id: orderId
|
|
143
|
+
} : {}),
|
|
178
144
|
unified_status_info_flag: 1,
|
|
179
145
|
request_timezone: Intl.DateTimeFormat().resolvedOptions().timeZone
|
|
180
146
|
});
|
|
181
|
-
const resultDiscountWithReason = this.filterEnabledDiscountListWithReason(
|
|
147
|
+
const resultDiscountWithReason = this.filterEnabledDiscountListWithReason(result?.data || []) || [];
|
|
182
148
|
return resultDiscountWithReason;
|
|
183
149
|
}
|
|
184
150
|
async batchSearchByProductIds(productIds) {
|
|
185
151
|
const result = await this.request.get(`/machinecode/batch-search`, {
|
|
186
152
|
ids: productIds,
|
|
187
153
|
translate_flag: 1,
|
|
188
|
-
tags: [
|
|
154
|
+
tags: ['good_pass', 'product_discount_card'],
|
|
189
155
|
relation_product: 1
|
|
190
156
|
});
|
|
191
|
-
return
|
|
157
|
+
return result?.data || [];
|
|
192
158
|
}
|
|
193
159
|
filterEnabledDiscountList(discountList) {
|
|
194
|
-
return discountList.filter(
|
|
195
|
-
(discount) => discount.limit_status === "enable" && new import_decimal.default((discount == null ? void 0 : discount.par_value) || 0).minus(new import_decimal.default((discount == null ? void 0 : discount.used_par_value) || 0)).greaterThan(0) && this.checkUsageCreditsLimit(discount)
|
|
196
|
-
);
|
|
160
|
+
return discountList.filter(discount => discount.limit_status === 'enable' && new _decimal.default(discount?.par_value || 0).minus(new _decimal.default(discount?.used_par_value || 0)).greaterThan(0) && this.checkUsageCreditsLimit(discount));
|
|
197
161
|
}
|
|
162
|
+
|
|
198
163
|
// 检查使用次数限制
|
|
199
164
|
checkUsageCreditsLimit(discount) {
|
|
165
|
+
// 如果没有 extension_data,则不需要限制
|
|
200
166
|
if (!discount.extension_data || discount.extension_data.length === 0) {
|
|
201
167
|
return true;
|
|
202
168
|
}
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
);
|
|
169
|
+
|
|
170
|
+
// 查找 field_key 为 usage_credits 的数据
|
|
171
|
+
const usageCreditsData = discount.extension_data.find(data => data.field_key === 'usage_credits');
|
|
172
|
+
|
|
173
|
+
// 如果没有找到 usage_credits 数据,则不需要限制
|
|
206
174
|
if (!usageCreditsData) {
|
|
207
175
|
return true;
|
|
208
176
|
}
|
|
209
177
|
const value = usageCreditsData.value;
|
|
178
|
+
|
|
179
|
+
// 检查总次数限制
|
|
210
180
|
if (value.total_credits && value.total_credits > 0) {
|
|
211
181
|
if ((discount.total_order_behavior_count || 0) >= value.total_credits) {
|
|
212
182
|
return false;
|
|
213
183
|
}
|
|
214
184
|
}
|
|
185
|
+
|
|
186
|
+
// 检查单用户限制
|
|
215
187
|
if (value.per_user_limit && value.per_user_limit > 0) {
|
|
216
188
|
if ((discount.customer_order_behavior_count || 0) >= value.per_user_limit) {
|
|
217
189
|
return false;
|
|
218
190
|
}
|
|
219
191
|
}
|
|
192
|
+
|
|
193
|
+
// 检查单日限制
|
|
220
194
|
if (value.max_per_day && value.max_per_day > 0) {
|
|
221
195
|
if ((discount.today_order_behavior_count || 0) >= value.max_per_day) {
|
|
222
196
|
return false;
|
|
223
197
|
}
|
|
224
198
|
}
|
|
199
|
+
|
|
200
|
+
// 检查单周限制
|
|
225
201
|
if (value.max_per_week && value.max_per_week > 0) {
|
|
226
202
|
if ((discount.week_order_behavior_count || 0) >= value.max_per_week) {
|
|
227
203
|
return false;
|
|
228
204
|
}
|
|
229
205
|
}
|
|
206
|
+
|
|
207
|
+
// 检查单月限制
|
|
230
208
|
if (value.max_per_month && value.max_per_month > 0) {
|
|
231
209
|
if ((discount.month_order_behavior_count || 0) >= value.max_per_month) {
|
|
232
210
|
return false;
|
|
233
211
|
}
|
|
234
212
|
}
|
|
213
|
+
|
|
214
|
+
// 所有检查都通过
|
|
235
215
|
return true;
|
|
236
216
|
}
|
|
217
|
+
|
|
237
218
|
// 过滤启用且可用的优惠券,并返回校验失败原因
|
|
238
219
|
filterEnabledDiscountListWithReason(discountList) {
|
|
239
|
-
let lists = discountList.filter(
|
|
240
|
-
const remaining = new
|
|
220
|
+
let lists = discountList.filter(discount => discount.limit_status === 'enable').filter(discount => {
|
|
221
|
+
const remaining = new _decimal.default(discount?.par_value || 0).minus(new _decimal.default(discount?.used_par_value || 0)).greaterThan(0);
|
|
241
222
|
return remaining;
|
|
242
|
-
}).map(
|
|
223
|
+
}).map(discount => {
|
|
243
224
|
const limitFailKey = this.checkUsageCreditsLimitWithFailKey(discount);
|
|
244
225
|
return {
|
|
245
226
|
...discount,
|
|
246
227
|
usageLimitFailKey: limitFailKey
|
|
247
228
|
};
|
|
248
229
|
});
|
|
249
|
-
|
|
250
|
-
|
|
230
|
+
|
|
231
|
+
// 可用的列表
|
|
232
|
+
const availableLists = lists.filter(item => !item.usageLimitFailKey && item.unified_available_status !== 0);
|
|
233
|
+
// 不可用数据
|
|
234
|
+
const currentFailDiscount = lists.find(item => item.usageLimitFailKey);
|
|
251
235
|
return {
|
|
252
236
|
discountList: availableLists,
|
|
253
|
-
unavailableReasonKey: currentFailDiscount
|
|
237
|
+
unavailableReasonKey: currentFailDiscount?.usageLimitFailKey
|
|
254
238
|
};
|
|
255
239
|
}
|
|
240
|
+
|
|
256
241
|
// 检查使用次数限制,并返回校验失败原因
|
|
257
242
|
checkUsageCreditsLimitWithFailKey(discount) {
|
|
258
243
|
if (!discount.extension_data || discount.extension_data.length === 0) {
|
|
259
244
|
return null;
|
|
260
245
|
}
|
|
261
|
-
const usageCreditsData = discount.extension_data.find(
|
|
262
|
-
(data) => data.field_key === "usage_credits"
|
|
263
|
-
);
|
|
246
|
+
const usageCreditsData = discount.extension_data.find(data => data.field_key === 'usage_credits');
|
|
264
247
|
if (!usageCreditsData) {
|
|
265
248
|
return null;
|
|
266
249
|
}
|
|
267
250
|
const value = usageCreditsData.value;
|
|
251
|
+
|
|
252
|
+
// 总次数限制
|
|
268
253
|
if (value.total_credits && value.total_credits > 0) {
|
|
269
254
|
if ((discount.total_order_behavior_count || 0) >= value.total_credits) {
|
|
270
|
-
return
|
|
255
|
+
return 'total_credits';
|
|
271
256
|
}
|
|
272
257
|
}
|
|
258
|
+
|
|
259
|
+
// 单用户限制
|
|
273
260
|
if (value.per_user_limit && value.per_user_limit > 0) {
|
|
274
261
|
if ((discount.customer_order_behavior_count || 0) >= value.per_user_limit) {
|
|
275
|
-
return
|
|
262
|
+
return 'per_user_limit';
|
|
276
263
|
}
|
|
277
264
|
}
|
|
265
|
+
|
|
266
|
+
// 单日限制
|
|
278
267
|
if (value.max_per_day && value.max_per_day > 0) {
|
|
279
268
|
if ((discount.today_order_behavior_count || 0) >= value.max_per_day) {
|
|
280
|
-
return
|
|
269
|
+
return 'max_per_day';
|
|
281
270
|
}
|
|
282
271
|
}
|
|
272
|
+
|
|
273
|
+
// 单周限制
|
|
283
274
|
if (value.max_per_week && value.max_per_week > 0) {
|
|
284
275
|
if ((discount.week_order_behavior_count || 0) >= value.max_per_week) {
|
|
285
|
-
return
|
|
276
|
+
return 'max_per_week';
|
|
286
277
|
}
|
|
287
278
|
}
|
|
279
|
+
|
|
280
|
+
// 单月限制
|
|
288
281
|
if (value.max_per_month && value.max_per_month > 0) {
|
|
289
282
|
if ((discount.month_order_behavior_count || 0) >= value.max_per_month) {
|
|
290
|
-
return
|
|
283
|
+
return 'max_per_month';
|
|
291
284
|
}
|
|
292
285
|
}
|
|
286
|
+
|
|
287
|
+
// 全部通过
|
|
293
288
|
return null;
|
|
294
289
|
}
|
|
290
|
+
|
|
295
291
|
// 根据productIds去重
|
|
296
292
|
uniqueByProductId(discountList) {
|
|
297
|
-
return (0,
|
|
293
|
+
return (0, _utils.uniqueById)(discountList, 'product_id');
|
|
298
294
|
}
|
|
299
295
|
filterDiscountListByProductIds(discountList, productIds) {
|
|
300
|
-
return discountList.filter(
|
|
296
|
+
return discountList.filter(discount => {
|
|
301
297
|
const applicableProductIds = discount.applicableProductIds || [];
|
|
302
|
-
return applicableProductIds.some(
|
|
298
|
+
return applicableProductIds.some(id => productIds.includes(id));
|
|
303
299
|
});
|
|
304
300
|
}
|
|
305
301
|
calcDiscountApplicableProductTotalPrice(discount) {
|
|
306
|
-
if (discount
|
|
307
|
-
return
|
|
302
|
+
if (discount?.savedAmount) {
|
|
303
|
+
return discount?.savedAmount || 0;
|
|
308
304
|
}
|
|
309
305
|
if (discount.appliedProductDetails) {
|
|
310
306
|
return discount.appliedProductDetails.reduce((total, product) => {
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
return new import_decimal.default(total).plus(price).add(((_b = product == null ? void 0 : product.metadata) == null ? void 0 : _b.product_discount_difference) || 0).toNumber();
|
|
307
|
+
const price = new _decimal.default(product?.discount?.fixed_amount || 0).mul(product?._num || 1);
|
|
308
|
+
return new _decimal.default(total).plus(price).add(product?.metadata?.product_discount_difference || 0).toNumber();
|
|
314
309
|
}, 0);
|
|
315
310
|
}
|
|
316
311
|
}
|
|
@@ -318,13 +313,11 @@ var DiscountModule = class extends import_BaseModule.BaseModule {
|
|
|
318
313
|
this.store.discountList = [];
|
|
319
314
|
this.core.effects.offByModuleDestroy(this.name);
|
|
320
315
|
await this.core.effects.emit(`${this.name}:onDestroy`, {});
|
|
321
|
-
console.log("[Discount] 已销毁");
|
|
322
316
|
super.destroy();
|
|
323
317
|
}
|
|
324
318
|
async clear() {
|
|
325
319
|
this.store.discountList = [];
|
|
326
320
|
this.store.originalDiscountList = [];
|
|
327
|
-
console.log("[Discount] clear");
|
|
328
321
|
}
|
|
329
322
|
storeChange() {
|
|
330
323
|
if (this.openCache) {
|
|
@@ -332,12 +325,9 @@ var DiscountModule = class extends import_BaseModule.BaseModule {
|
|
|
332
325
|
cacheId: this.cacheId,
|
|
333
326
|
fatherModule: this.fatherModule,
|
|
334
327
|
store: this.store,
|
|
335
|
-
cacheKey: [
|
|
328
|
+
cacheKey: ['discountList']
|
|
336
329
|
});
|
|
337
330
|
}
|
|
338
331
|
}
|
|
339
|
-
}
|
|
340
|
-
|
|
341
|
-
0 && (module.exports = {
|
|
342
|
-
DiscountModule
|
|
343
|
-
});
|
|
332
|
+
}
|
|
333
|
+
exports.DiscountModule = DiscountModule;
|
|
@@ -1,33 +1,11 @@
|
|
|
1
|
-
|
|
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);
|
|
1
|
+
"use strict";
|
|
18
2
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
__export(types_exports, {
|
|
22
|
-
DiscountHooks: () => DiscountHooks
|
|
23
|
-
});
|
|
24
|
-
module.exports = __toCommonJS(types_exports);
|
|
25
|
-
var DiscountHooks = /* @__PURE__ */ ((DiscountHooks2) => {
|
|
26
|
-
DiscountHooks2["OnDiscountListChange"] = "discount:onDiscountListChange";
|
|
27
|
-
DiscountHooks2["OnDestroy"] = "discount:onDestroy";
|
|
28
|
-
return DiscountHooks2;
|
|
29
|
-
})(DiscountHooks || {});
|
|
30
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
31
|
-
0 && (module.exports = {
|
|
32
|
-
DiscountHooks
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
33
5
|
});
|
|
6
|
+
exports.DiscountHooks = void 0;
|
|
7
|
+
let DiscountHooks = exports.DiscountHooks = /*#__PURE__*/function (DiscountHooks) {
|
|
8
|
+
DiscountHooks["OnDiscountListChange"] = "discount:onDiscountListChange";
|
|
9
|
+
DiscountHooks["OnDestroy"] = "discount:onDestroy";
|
|
10
|
+
return DiscountHooks;
|
|
11
|
+
}({});
|
|
@@ -1,42 +1,27 @@
|
|
|
1
|
-
|
|
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);
|
|
1
|
+
"use strict";
|
|
18
2
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
__export(Guests_exports, {
|
|
22
|
-
GuestListModule: () => GuestListModule
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
23
5
|
});
|
|
24
|
-
|
|
25
|
-
var
|
|
26
|
-
var
|
|
27
|
-
|
|
6
|
+
exports.GuestListModule = void 0;
|
|
7
|
+
var _BaseModule = require("../BaseModule");
|
|
8
|
+
var _types = require("./types");
|
|
9
|
+
class GuestListModule extends _BaseModule.BaseModule {
|
|
10
|
+
defaultName = 'guestList';
|
|
11
|
+
defaultVersion = '1.0.0';
|
|
12
|
+
state = {
|
|
13
|
+
list: []
|
|
14
|
+
};
|
|
28
15
|
constructor(name, version) {
|
|
29
16
|
super(name, version);
|
|
30
|
-
this.defaultName = "guestList";
|
|
31
|
-
this.defaultVersion = "1.0.0";
|
|
32
|
-
this.state = {
|
|
33
|
-
list: []
|
|
34
|
-
};
|
|
35
17
|
}
|
|
36
18
|
async initialize(core, options) {
|
|
37
19
|
this.core = core;
|
|
38
|
-
if (options
|
|
39
|
-
this.state = {
|
|
20
|
+
if (options?.initialState) {
|
|
21
|
+
this.state = {
|
|
22
|
+
...this.state,
|
|
23
|
+
...options.initialState
|
|
24
|
+
};
|
|
40
25
|
}
|
|
41
26
|
}
|
|
42
27
|
async addGuest(guest) {
|
|
@@ -45,23 +30,18 @@ var GuestListModule = class extends import_BaseModule.BaseModule {
|
|
|
45
30
|
await this.core.effects.emit(`${this.name}:onGuestChange`, this.state.list);
|
|
46
31
|
}
|
|
47
32
|
async updateGuest(id, updates) {
|
|
48
|
-
const index = this.state.list.findIndex(
|
|
49
|
-
if (index === -1)
|
|
50
|
-
return;
|
|
33
|
+
const index = this.state.list.findIndex(g => g.id === id);
|
|
34
|
+
if (index === -1) return;
|
|
51
35
|
this.state.list[index] = {
|
|
52
36
|
...this.state.list[index],
|
|
53
37
|
...updates
|
|
54
38
|
};
|
|
55
|
-
await this.core.effects.emit(
|
|
56
|
-
import_types.GuestHooks.OnGuestUpdate,
|
|
57
|
-
this.state.list[index]
|
|
58
|
-
);
|
|
39
|
+
await this.core.effects.emit(_types.GuestHooks.OnGuestUpdate, this.state.list[index]);
|
|
59
40
|
await this.core.effects.emit(`${this.name}:onGuestChange`, this.state.list);
|
|
60
41
|
}
|
|
61
42
|
async removeGuest(id) {
|
|
62
|
-
const index = this.state.list.findIndex(
|
|
63
|
-
if (index === -1)
|
|
64
|
-
return;
|
|
43
|
+
const index = this.state.list.findIndex(g => g.id === id);
|
|
44
|
+
if (index === -1) return;
|
|
65
45
|
const [removed] = this.state.list.splice(index, 1);
|
|
66
46
|
await this.core.effects.emit(`${this.name}:onGuestRemove`, removed);
|
|
67
47
|
await this.core.effects.emit(`${this.name}:onGuestChange`, this.state.list);
|
|
@@ -73,26 +53,20 @@ var GuestListModule = class extends import_BaseModule.BaseModule {
|
|
|
73
53
|
return this.state.list.length;
|
|
74
54
|
}
|
|
75
55
|
async addItemToGuest(guestId, item) {
|
|
76
|
-
const guest = this.state.list.find(
|
|
77
|
-
if (!guest)
|
|
78
|
-
return;
|
|
56
|
+
const guest = this.state.list.find(g => g.id === guestId);
|
|
57
|
+
if (!guest) return;
|
|
79
58
|
guest.items.push(item);
|
|
80
59
|
await this.core.effects.emit(`${this.name}:onGuestUpdate`, guest);
|
|
81
60
|
await this.core.effects.emit(`${this.name}:onGuestChange`, this.state.list);
|
|
82
61
|
}
|
|
83
62
|
async removeItemFromGuest(guestId, itemId) {
|
|
84
|
-
const guest = this.state.list.find(
|
|
85
|
-
if (!guest)
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
if (index === -1)
|
|
89
|
-
return;
|
|
63
|
+
const guest = this.state.list.find(g => g.id === guestId);
|
|
64
|
+
if (!guest) return;
|
|
65
|
+
const index = guest.items.findIndex(i => i.id === itemId);
|
|
66
|
+
if (index === -1) return;
|
|
90
67
|
guest.items.splice(index, 1);
|
|
91
68
|
await this.core.effects.emit(`${this.name}:onGuestUpdate`, guest);
|
|
92
69
|
await this.core.effects.emit(`${this.name}:onGuestChange`, this.state.list);
|
|
93
70
|
}
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
0 && (module.exports = {
|
|
97
|
-
GuestListModule
|
|
98
|
-
});
|
|
71
|
+
}
|
|
72
|
+
exports.GuestListModule = GuestListModule;
|