@pisell/pisellos 2.3.29 → 2.3.31

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.
Files changed (48) hide show
  1. package/dist/modules/Order/index.d.ts +27 -8
  2. package/dist/modules/Order/index.js +736 -473
  3. package/dist/modules/Order/payment-utils.d.ts +23 -0
  4. package/dist/modules/Order/payment-utils.js +203 -0
  5. package/dist/modules/Order/types.d.ts +33 -1
  6. package/dist/modules/Order/utils.js +4 -4
  7. package/dist/modules/Payment/index.d.ts +2 -0
  8. package/dist/modules/Payment/index.js +78 -49
  9. package/dist/modules/Payment/types.d.ts +26 -24
  10. package/dist/modules/Payment/types.js +2 -0
  11. package/dist/server/index.d.ts +14 -0
  12. package/dist/server/index.js +1850 -1024
  13. package/dist/server/modules/order/index.d.ts +40 -3
  14. package/dist/server/modules/order/index.js +1200 -501
  15. package/dist/server/modules/order/types.d.ts +11 -3
  16. package/dist/server/modules/order/types.js +1 -1
  17. package/dist/solution/BaseSales/index.d.ts +33 -3
  18. package/dist/solution/BaseSales/index.js +609 -322
  19. package/dist/solution/BaseSales/utils/parseSalesResponse.d.ts +6 -1
  20. package/dist/solution/BookingByStep/index.d.ts +1 -1
  21. package/dist/solution/BookingTicket/index.d.ts +1 -1
  22. package/dist/solution/BookingTicket/index.js +2 -1
  23. package/dist/utils/payment-number.d.ts +9 -0
  24. package/dist/utils/payment-number.js +69 -0
  25. package/lib/model/strategy/adapter/promotion/index.js +0 -49
  26. package/lib/modules/Order/index.d.ts +27 -8
  27. package/lib/modules/Order/index.js +180 -60
  28. package/lib/modules/Order/payment-utils.d.ts +23 -0
  29. package/lib/modules/Order/payment-utils.js +193 -0
  30. package/lib/modules/Order/types.d.ts +33 -1
  31. package/lib/modules/Order/utils.js +2 -3
  32. package/lib/modules/Payment/index.d.ts +2 -0
  33. package/lib/modules/Payment/index.js +33 -12
  34. package/lib/modules/Payment/types.d.ts +26 -24
  35. package/lib/server/index.d.ts +14 -0
  36. package/lib/server/index.js +604 -8
  37. package/lib/server/modules/order/index.d.ts +40 -3
  38. package/lib/server/modules/order/index.js +434 -31
  39. package/lib/server/modules/order/types.d.ts +11 -3
  40. package/lib/solution/BaseSales/index.d.ts +33 -3
  41. package/lib/solution/BaseSales/index.js +167 -7
  42. package/lib/solution/BaseSales/utils/parseSalesResponse.d.ts +6 -1
  43. package/lib/solution/BookingByStep/index.d.ts +1 -1
  44. package/lib/solution/BookingTicket/index.d.ts +1 -1
  45. package/lib/solution/BookingTicket/index.js +2 -1
  46. package/lib/utils/payment-number.d.ts +9 -0
  47. package/lib/utils/payment-number.js +64 -0
  48. package/package.json +1 -1
@@ -82,8 +82,13 @@ export interface ISalesBooking {
82
82
  metadata?: Record<string, any> | null;
83
83
  [key: string]: any;
84
84
  }
85
+ export interface ISalesPaymentMetadata extends Record<string, any> {
86
+ /** 刷卡机设备快照;OS 不解析内部字段 */
87
+ card_reader_snapshot?: Record<string, unknown>;
88
+ }
85
89
  export interface ISalesPayment {
86
90
  order_payment_id?: number | null;
91
+ payment_number?: string;
87
92
  custom_payment_id?: number;
88
93
  code?: string;
89
94
  name?: string;
@@ -95,7 +100,7 @@ export interface ISalesPayment {
95
100
  status?: string;
96
101
  payment_time?: string | null;
97
102
  service_charge?: Record<string, any> | null;
98
- metadata?: Record<string, any> | null;
103
+ metadata?: ISalesPaymentMetadata | null;
99
104
  [key: string]: any;
100
105
  }
101
106
  export interface ISalesSurcharge {
@@ -311,7 +311,7 @@ export declare class BookingByStepImpl extends BaseModule implements Module {
311
311
  date: string;
312
312
  status: string;
313
313
  week: string;
314
- weekNum: 0 | 1 | 2 | 3 | 4 | 5 | 6;
314
+ weekNum: 0 | 1 | 2 | 5 | 4 | 3 | 6;
315
315
  }[]>;
316
316
  submitTimeSlot(timeSlots: TimeSliceItem): void;
317
317
  private getScheduleDataByIds;
@@ -322,7 +322,7 @@ export declare class BookingTicketImpl extends BaseSalesImpl implements Module {
322
322
  * 获取当前的客户搜索条件
323
323
  * @returns 当前搜索条件
324
324
  */
325
- getCurrentCustomerSearchParams(): Omit<import("../../modules").ShopGetCustomerListParams, "skip" | "num">;
325
+ getCurrentCustomerSearchParams(): Omit<import("../../modules").ShopGetCustomerListParams, "num" | "skip">;
326
326
  /**
327
327
  * 获取客户列表状态(包含滚动加载相关状态)
328
328
  * @returns 客户状态
@@ -1993,7 +1993,8 @@ export var BookingTicketImpl = /*#__PURE__*/function (_BaseSalesImpl) {
1993
1993
  }, {
1994
1994
  key: "getBookingConfig",
1995
1995
  value: function getBookingConfig() {
1996
- return this.store.bookingContext.getBookingConfig();
1996
+ var _this$store$bookingCo;
1997
+ return (_this$store$bookingCo = this.store.bookingContext) === null || _this$store$bookingCo === void 0 ? void 0 : _this$store$bookingCo.getBookingConfig();
1997
1998
  }
1998
1999
 
1999
2000
  /** 写入资源全集(来源:`/form/schedule`),同步派生 resourcesOriginMap。 */
@@ -0,0 +1,9 @@
1
+ export type PaymentNumberAppDataGetter = (key: string) => unknown;
2
+ /**
3
+ * Resolve the synchronous fallback without caching runtime device data.
4
+ */
5
+ export declare function resolvePaymentNumberDevicePrefixFromDeviceId(getAppData: PaymentNumberAppDataGetter): string;
6
+ /**
7
+ * Resolve the latest device segment when a new payment number is generated.
8
+ */
9
+ export declare function resolvePaymentNumberDevicePrefix(getAppData: PaymentNumberAppDataGetter): Promise<string>;
@@ -0,0 +1,69 @@
1
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
+ function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
3
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
4
+ function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
5
+ function normalizeNonEmptyString(value) {
6
+ if (value === undefined || value === null) return null;
7
+ if (typeof value !== 'string' && typeof value !== 'number') return null;
8
+ if (typeof value === 'number' && !Number.isFinite(value)) return null;
9
+ var normalized = String(value).trim();
10
+ return normalized || null;
11
+ }
12
+
13
+ /**
14
+ * Resolve the synchronous fallback without caching runtime device data.
15
+ */
16
+ export function resolvePaymentNumberDevicePrefixFromDeviceId(getAppData) {
17
+ try {
18
+ var deviceId = normalizeNonEmptyString(getAppData('device_id'));
19
+ if (deviceId && deviceId !== '0') return deviceId.slice(-2);
20
+ } catch (_unused) {
21
+ // The stable LOCAL prefix is the final fallback.
22
+ }
23
+ return 'LOCAL';
24
+ }
25
+
26
+ /**
27
+ * Resolve the latest device segment when a new payment number is generated.
28
+ */
29
+ export function resolvePaymentNumberDevicePrefix(_x) {
30
+ return _resolvePaymentNumberDevicePrefix.apply(this, arguments);
31
+ }
32
+ function _resolvePaymentNumberDevicePrefix() {
33
+ _resolvePaymentNumberDevicePrefix = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(getAppData) {
34
+ var getAsyncIotDeviceInfo, info, shortNumber;
35
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
36
+ while (1) switch (_context.prev = _context.next) {
37
+ case 0:
38
+ _context.prev = 0;
39
+ getAsyncIotDeviceInfo = getAppData('async_iot_device_info');
40
+ if (!(typeof getAsyncIotDeviceInfo === 'function')) {
41
+ _context.next = 9;
42
+ break;
43
+ }
44
+ _context.next = 5;
45
+ return getAsyncIotDeviceInfo();
46
+ case 5:
47
+ info = _context.sent;
48
+ shortNumber = normalizeNonEmptyString(info === null || info === void 0 ? void 0 : info.short_number);
49
+ if (!(shortNumber && shortNumber !== '0')) {
50
+ _context.next = 9;
51
+ break;
52
+ }
53
+ return _context.abrupt("return", shortNumber);
54
+ case 9:
55
+ _context.next = 13;
56
+ break;
57
+ case 11:
58
+ _context.prev = 11;
59
+ _context.t0 = _context["catch"](0);
60
+ case 13:
61
+ return _context.abrupt("return", resolvePaymentNumberDevicePrefixFromDeviceId(getAppData));
62
+ case 14:
63
+ case "end":
64
+ return _context.stop();
65
+ }
66
+ }, _callee, null, [[0, 11]]);
67
+ }));
68
+ return _resolvePaymentNumberDevicePrefix.apply(this, arguments);
69
+ }
@@ -1,49 +0,0 @@
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);
28
-
29
- // src/model/strategy/adapter/promotion/index.ts
30
- var promotion_exports = {};
31
- __export(promotion_exports, {
32
- BUY_X_GET_Y_FREE_STRATEGY: () => import_examples.BUY_X_GET_Y_FREE_STRATEGY,
33
- PromotionAdapter: () => import_adapter.PromotionAdapter,
34
- PromotionEvaluator: () => import_evaluator.PromotionEvaluator,
35
- X_ITEMS_FOR_Y_PRICE_STRATEGY: () => import_examples.X_ITEMS_FOR_Y_PRICE_STRATEGY,
36
- default: () => import_adapter2.default
37
- });
38
- module.exports = __toCommonJS(promotion_exports);
39
- var import_evaluator = require("./evaluator");
40
- var import_adapter = require("./adapter");
41
- var import_adapter2 = __toESM(require("./adapter"));
42
- var import_examples = require("./examples");
43
- // Annotate the CommonJS export names for ESM import in node:
44
- 0 && (module.exports = {
45
- BUY_X_GET_Y_FREE_STRATEGY,
46
- PromotionAdapter,
47
- PromotionEvaluator,
48
- X_ITEMS_FOR_Y_PRICE_STRATEGY
49
- });
@@ -3,7 +3,7 @@ import { BaseModule } from '../BaseModule';
3
3
  import { OrderModuleAPI, CommitOrderParams, UpdateOrderBookingParams, UpdateOrderProductParams, UpdateOrderProductQuantityParams, CheckoutOrderParams, CancelOrderParams, ChangeBookingStatusParams } from './types';
4
4
  import { CartItem } from '../Cart/types';
5
5
  import { type SubmitPayloadEnhancer } from './utils';
6
- import type { OrderAmountSnapshot, AddProductBookingInput, OrderIdentitySnapshot, OrderPaymentSource, OrderSnapshot, OrderSyncState, SyncPaymentsToOrderParams, SyncPaymentsToOrderResult, SubmitSalesOrderParams, OrderProduct, OrderProductIdentity, OrderSummary, OrderTempOrder, OrderPaymentData, SendCustomerPayLinkParams, UpdateTempOrderCustomerInput, OrderCustomerPatch, OrderCustomerView, ReplaceTempOrderOptions, OrderPromotionEvaluator, OrderGiftSelectResolver, OrderUnfulfilledPromotion, OrderLastGiftActions } from './types';
6
+ import type { OrderAmountSnapshot, AddProductBookingInput, OrderIdentitySnapshot, OrderPaymentSource, OrderSnapshot, OrderSyncState, SyncPaymentsToOrderParams, SyncPaymentsToOrderResult, SubmitSalesOrderParams, OrderProduct, OrderProductIdentity, OrderSummary, OrderTempOrder, OrderPaymentData, OrderPaymentUpdateOptions, OrderPaymentUpdateResult, SendCustomerPayLinkParams, UpdateTempOrderCustomerInput, OrderCustomerPatch, OrderCustomerView, ReplaceTempOrderOptions, OrderPromotionEvaluator, OrderGiftSelectResolver, OrderUnfulfilledPromotion, OrderLastGiftActions } from './types';
7
7
  import type { ICustomer } from '../AccountList/types';
8
8
  import type { Discount } from '../Discount/types';
9
9
  import { UnavailableReason } from '../Rules/types';
@@ -14,6 +14,7 @@ export declare class OrderModule extends BaseModule implements Module, OrderModu
14
14
  private request;
15
15
  private logger;
16
16
  private window;
17
+ private appPlugin;
17
18
  private cacheId;
18
19
  private salesSummaryModuleName;
19
20
  private rulesHooksOverride?;
@@ -176,6 +177,9 @@ export declare class OrderModule extends BaseModule implements Module, OrderModu
176
177
  };
177
178
  private calculateDepositPaidAmount;
178
179
  private resolveNextOrderPaymentType;
180
+ private getPaymentNumberAppData;
181
+ private getPaymentNumberDevicePrefixSync;
182
+ private getPaymentNumberDevicePrefixAsync;
179
183
  private normalizePaymentSource;
180
184
  private updateTempOrderPaymentStatus;
181
185
  private shouldKeepPaymentStatusAfterAmountRecalc;
@@ -307,19 +311,20 @@ export declare class OrderModule extends BaseModule implements Module, OrderModu
307
311
  * 用一组支付来源覆盖当前订单支付项。
308
312
  *
309
313
  * 入参允许来自 PaymentModule 的 PaymentItem,内部统一映射为 Sales 协议:
310
- * uuid -> metadata.unique_payment_number,id -> custom_payment_id,
314
+ * 新支付来源的 uuid 会作为 payment_number 的唯一号段,id -> custom_payment_id,
311
315
  * isSynced 等运行态字段不会进入 tempOrder.payments。
312
316
  */
313
317
  setOrderPayments(payments: OrderPaymentSource[]): OrderPaymentData[];
314
- /** 追加单个支付项,并立即持久化当前 tempOrder。 */
318
+ /** 同步兼容入口:按调用当下的 device_id 或 LOCAL 生成支付编号。 */
315
319
  addOrderPayment(payment: OrderPaymentSource): OrderPaymentData[];
320
+ /** 异步入口:创建支付项时读取最新 IoT 设备短号。 */
321
+ addOrderPaymentAsync(payment: OrderPaymentSource): Promise<OrderPaymentData[]>;
322
+ private addOrderPaymentWithDevicePrefix;
316
323
  /**
317
- * 按支付唯一号、后端支付 ID、自定义支付方式 ID 或旧 uuid 更新支付项。
318
- *
319
- * 该方法服务 PaymentModal 的 void / 编辑场景;更新 metadata 时会做浅合并,
320
- * 避免覆盖 unique_payment_number、现金实付/找零等已有元数据。
324
+ * 默认按支付唯一号精确更新;仅显式指定 legacy 时兼容历史支付标识。
325
+ * metadata 与 transactions 会分别合并,避免覆盖支付会话号和已有交易记录。
321
326
  */
322
- updateOrderPayment(paymentIdentity: string | number, updates: Partial<OrderPaymentData> & Record<string, any>): OrderPaymentData[];
327
+ updateOrderPayment(paymentIdentity: string | number, updates: Partial<OrderPaymentData> & Record<string, any>, options?: OrderPaymentUpdateOptions): Promise<OrderPaymentUpdateResult>;
323
328
  /** 从当前订单支付项中移除指定支付项。 */
324
329
  deleteOrderPayment(paymentIdentity: string | number): OrderPaymentData[];
325
330
  private confirmPendingVoucherPaymentsInList;
@@ -342,7 +347,11 @@ export declare class OrderModule extends BaseModule implements Module, OrderModu
342
347
  */
343
348
  updateVoucherOrderPayments(payments: OrderPaymentSource[], options?: {
344
349
  status?: 'paid' | 'payment_pending';
350
+ devicePrefix?: string;
345
351
  }): OrderPaymentData[];
352
+ updateVoucherOrderPaymentsAsync(payments: OrderPaymentSource[], options?: {
353
+ status?: 'paid' | 'payment_pending';
354
+ }): Promise<OrderPaymentData[]>;
346
355
  private shouldMergeProductToOrder;
347
356
  private hasOrderProductLineNote;
348
357
  /**
@@ -427,6 +436,14 @@ export declare class OrderModule extends BaseModule implements Module, OrderModu
427
436
  type?: string;
428
437
  }): import("./types").OrderSubmitPayload;
429
438
  applyLocalPrintOrderNumbers(order?: Record<string, any> | null): Promise<OrderTempOrder>;
439
+ saveTempOrderAsDraft<T = any>(params?: {
440
+ cacheId?: string;
441
+ platform?: string;
442
+ businessCode?: string;
443
+ channel?: string;
444
+ type?: string;
445
+ enhancePayload?: SubmitPayloadEnhancer;
446
+ }): Promise<T>;
430
447
  /**
431
448
  * 提交当前 Sales tempOrder。
432
449
  *
@@ -531,6 +548,8 @@ export declare class OrderModule extends BaseModule implements Module, OrderModu
531
548
  */
532
549
  private seedAnonymousBookingUidsFromProducts;
533
550
  private normalizeTempOrderForRuntime;
551
+ private isSyntheticDraftOrderIdForRuntime;
552
+ private withoutSyntheticDraftOrderIdForRuntime;
534
553
  private hydrateLinkedBookingIdentity;
535
554
  private pickHydratedDisplayText;
536
555
  private formatHydratedNamePair;