@trusted-solutions/sdit.models 0.19.0-alpha.0 → 0.19.0-alpha.11

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.
@@ -1,11 +1,76 @@
1
- import { PlanLimit } from '../models/contract';
2
- export interface GetContractLimitsRequest {
1
+ import { Contract, PlanLimits, Plan, ContractCore } from '../models/contract';
2
+ /**
3
+ * Get Store Contract use case
4
+ */
5
+ export interface GetStoreContractRequest {
3
6
  storeId: string;
7
+ }
8
+ export interface GetStoreContractResponse {
9
+ currentContract: Contract;
10
+ originalContract: Contract;
11
+ upcomingContract: Contract;
12
+ }
13
+ /**
14
+ * Get Current Store Contract use case
15
+ */
16
+ export interface GetCurrentStoreContractLimitRequest {
17
+ contractId: string;
4
18
  /**
5
19
  * 沒給的話,回傳全部的limit
6
20
  */
7
21
  limitKeys?: string[];
8
22
  }
9
- export interface GetContractLimitsResponse {
10
- eachLimits: PlanLimit[];
23
+ export interface GetCurrentStoreContractLimitResponse {
24
+ storeId: string;
25
+ contractId: string;
26
+ eachLimits: PlanLimits;
27
+ }
28
+ /**
29
+ * Create Contract use case
30
+ */
31
+ export declare type CreateContractRequest = ContractCore;
32
+ export declare type CreateContractResponse = Contract;
33
+ /**
34
+ * Update Contract Duration use case
35
+ */
36
+ export interface UpdateContractDurationRequest {
37
+ contractId: string;
38
+ startedAt: number;
39
+ endedAt: number;
40
+ }
41
+ export declare type UpdateContractDurationResponse = null;
42
+ /**
43
+ * Update Contract Plan use case
44
+ */
45
+ export interface UpdateContractPlanRequest {
46
+ contractId: string;
47
+ planId: string;
48
+ }
49
+ export declare type UpdateContractPlanResponse = null;
50
+ /**
51
+ * Update Contract ForStore use case
52
+ */
53
+ export interface UpdateContractForStoreRequest {
54
+ contractId: string;
55
+ forStoreId: string;
56
+ }
57
+ export declare type UpdateContractForStoreResponse = null;
58
+ /**
59
+ * Update Contract Owner use case
60
+ */
61
+ export interface UpdateContractOwnerRequest {
62
+ contractId: string;
63
+ ownerCognitoUserId: string;
64
+ }
65
+ export declare type UpdateContractOwnerResponse = null;
66
+ export interface DeleteContractRequest {
67
+ contractId: string;
68
+ }
69
+ export declare type DeleteContractResponse = null;
70
+ /**
71
+ * Get Plan
72
+ */
73
+ export interface GetPlanRequest {
74
+ planId: string;
11
75
  }
76
+ export declare type GetPlanResponse = Plan;
package/lambda/index.d.ts CHANGED
@@ -4,3 +4,4 @@ export * from './response';
4
4
  export * from './online-integration';
5
5
  export * from './online-ordering';
6
6
  export * from './line-notify';
7
+ export * from './contract';
package/lambda/index.js CHANGED
@@ -7,4 +7,5 @@ tslib_1.__exportStar(require("./response"), exports);
7
7
  tslib_1.__exportStar(require("./online-integration"), exports);
8
8
  tslib_1.__exportStar(require("./online-ordering"), exports);
9
9
  tslib_1.__exportStar(require("./line-notify"), exports);
10
+ tslib_1.__exportStar(require("./contract"), exports);
10
11
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../projects/sdit-model-lib/src/lambda/index.ts"],"names":[],"mappings":";;;AAAA,kDAAwB;AACxB,oDAA0B;AAC1B,qDAA2B;AAG3B,+DAAqC;AACrC,4DAAkC;AAElC,wDAA8B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../projects/sdit-model-lib/src/lambda/index.ts"],"names":[],"mappings":";;;AAAA,kDAAwB;AACxB,oDAA0B;AAC1B,qDAA2B;AAG3B,+DAAqC;AACrC,4DAAkC;AAElC,wDAA8B;AAE9B,qDAA2B"}
@@ -1,5 +1,6 @@
1
1
  import { Order, Receipt, Operator } from '../models';
2
- import { OMMConfig, OOReasonCode, OnlinePlatformType, OMMItemContextType, OMMItemContentEntityType, SOPSContent, StoreOnlinePlatformStore } from '../models/online-integration';
2
+ import { OMMConfig, OOReasonCode, OnlinePlatformType, OMMItemContextType, OMMItemContentEntityType, SOPSContent, StoreOnlinePlatformStore, ThirdPartyStoreIntegrationType } from '../models/online-integration';
3
+ import { SingleItem } from './response';
3
4
  /**
4
5
  * 若Order為已付款時,可在accept時帶入invoiceConfig, invoice
5
6
  * 反之,則不需帶入
@@ -76,7 +77,7 @@ export interface OMMItemRequest {
76
77
  /** ======== OnlinePlatformStore ============= */
77
78
  interface BaseSOPSRequest {
78
79
  storeId: string;
79
- onlinePlatformType?: OnlinePlatformType;
80
+ onlinePlatformType?: ThirdPartyStoreIntegrationType;
80
81
  onlinePlatformStoreId: string;
81
82
  }
82
83
  export interface BindOPSIdRequest extends StoreOnlinePlatformStore {
@@ -87,14 +88,14 @@ export interface UnbindOPSIdRequest extends BaseSOPSRequest {
87
88
  export declare type UnbindOPSIdResponse = null;
88
89
  export interface GetOPSByStoreIdRequest {
89
90
  storeId: string;
90
- onlinePlatformType: OnlinePlatformType;
91
+ onlinePlatformType: ThirdPartyStoreIntegrationType;
91
92
  }
92
93
  export interface GetStoreIdByOPSIdRequest {
93
94
  onlinePlatformStoreId: string;
94
- onlinePlatformType: OnlinePlatformType;
95
+ onlinePlatformType: ThirdPartyStoreIntegrationType;
95
96
  }
96
97
  export declare type GetOPSByStoreIdResponse = StoreOnlinePlatformStore;
97
- export declare type GetStoreIdByOPSIdResponse = string;
98
+ export declare type GetStoreIdByOPSIdResponse = SingleItem<string>;
98
99
  export interface UpdateSOPSContentRequest extends BaseSOPSRequest, SOPSContent {
99
100
  }
100
101
  export declare type UpdateSOPSContentResponse = null;
@@ -78,3 +78,10 @@ export interface SetProductAndProductAttributeRelationRequest extends StoreTempl
78
78
  productIds: string[];
79
79
  productAttributeIds: string[];
80
80
  }
81
+ /** overwrite product, productAttributes, productCategories, and productAttributeCategories */
82
+ export interface OverwriteMenuRequest extends StoreTemplateItemRequest {
83
+ products: Product[];
84
+ productAttributes: ProductAttribute[];
85
+ productCategories: ProductCategory[];
86
+ productAttributeCategories: ProductAttributeCategory[];
87
+ }
@@ -51,3 +51,4 @@ export interface SoldOutSwitchResponse {
51
51
  categoryId: string;
52
52
  soldOut: boolean;
53
53
  }
54
+ export declare type OverwriteMenuResponse = {};
@@ -0,0 +1,12 @@
1
+ import { Store } from '../models';
2
+ export interface GetPoskyStoreConfigRequest {
3
+ storeId: string;
4
+ }
5
+ export interface GetPoskyStoreConfigResponse {
6
+ owner: {
7
+ email: string;
8
+ name: string;
9
+ phone: string;
10
+ };
11
+ store: Store;
12
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=third-party-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"third-party-store.js","sourceRoot":"","sources":["../../../projects/sdit-model-lib/src/lambda/third-party-store.ts"],"names":[],"mappings":""}
@@ -1,143 +1,29 @@
1
- import { Customer, DiscountMethod, OnlinePlatformType, Operator, OrderDiscount, Product, Receipt, Tax } from '.';
2
- import { OrderItemPaidStatus, OrderSourceType, OrderStatus } from '../enums';
3
- export interface PlanLimit {
4
- key: string;
5
- value: boolean | number;
1
+ export declare type PlanValueType = boolean | number;
2
+ export interface PlanLimits {
3
+ [key: string]: PlanValueType;
6
4
  }
7
- export interface Plan extends Product {
8
- version?: string;
9
- eachLimits: PlanLimit[];
10
- rangeDays?: number;
11
- }
12
- /**
13
- * extends OrderItem
14
- */
15
- export interface Contract {
5
+ export interface Plan {
16
6
  id: string;
17
7
  name: string;
18
- productId: string;
19
- /** amount of single plan */
20
- productAmount: number;
21
- productTax: Tax;
22
- attributes?: Contract[];
23
- /**
24
- * 做為attribute 時的金額
25
- */
26
- additionalAmount: number;
27
- /**
28
- * 經由註記調整價格後的一個品項金額
29
- * 原價 `productAmount` + 註記總價 `Sum(attribute.additionalAmount)`
30
- */
31
- subtotal?: number;
32
- /**
33
- * 一個品項的手動折扣方式
34
- */
35
- manualDiscountMethod?: DiscountMethod;
36
- /**
37
- * 一個品項的折扣金額,為`subtotal`與`discountMethod`計算後結果
38
- */
39
- discountAmount?: number;
40
- quantity: number;
41
- /**
42
- * (`subtotal` - `discountAmount`) * `quantity`
43
- */
44
- amount: number;
45
- /** 所屬第x次出單的品項,初始為undefined,第一次出單為0,每出單一次+1 */
46
- round?: number;
47
- changelogs?: ContractChangelog[];
48
- note?: string;
49
- paidStatus?: OrderItemPaidStatus;
50
- /** 建立時間 */
51
- createdAt?: number;
52
- startAt: number;
53
- endAt?: number;
8
+ description?: string;
9
+ planLimits?: PlanLimits;
10
+ /** 方案的生效天數 */
54
11
  rangeDays?: number;
55
- createdBy?: Operator;
56
- deletedBy?: Operator;
57
- /**
58
- * aggregated eachLimits of product(plan) and attributes(additionalPlan)
59
- */
60
- eachLimits: PlanLimit[];
61
- contractProofImageUrls?: string[];
62
- forStoreId: string;
63
- forStoreName: string;
64
12
  }
65
- export interface ContractLimits {
66
- /**
67
- * aggregated eachLimits of product(plan) and attributes(additionalPlan)
68
- */
69
- eachLimits: PlanLimit[];
70
- forStoreId: string;
71
- planName: string;
72
- startAt: string;
73
- endAt: string;
74
- }
75
- export interface ContractChangelog {
76
- timestamp: number;
77
- quantity?: number;
78
- amount?: number;
79
- attributes?: Contract[];
13
+ /** 用於createContract */
14
+ export declare type ContractCore = {
15
+ name: string;
80
16
  note?: string;
81
- manualDiscountMethod?: DiscountMethod;
82
- discountAmount?: number;
83
- modifiedBy?: Operator;
84
- }
85
- export interface ContractOrder {
17
+ startedAt: number;
18
+ /** 不給: 由後端參考plan給值; 給了: 後端直接用這個值 */
19
+ endedAt?: number;
20
+ planId: string;
21
+ storeId: string;
22
+ ownerCognitoUserId: string;
23
+ };
24
+ export declare type Contract = {
86
25
  id: string;
87
- source: OrderSourceType;
88
- status?: OrderStatus;
89
- customerId?: string;
90
- customer?: Customer;
91
- contracts: Contract[];
92
- /** sigma(items.amount) */
93
- subtotal: number;
94
- /** subtotal - sigma(discount.discountReferences.orderItemId === null) */
95
- totalAmount: number;
96
- salesAmountExcludeTax: number;
97
- exemptTaxSalesAmount: number;
98
- zeroTaxSalesAmount: number;
99
- taxAmount: number;
100
- discount?: OrderDiscount;
101
- note?: string;
102
26
  createdAt: number;
103
- multipleReceipts?: ContractReceipt[];
104
- /** POS刪除時間 */
105
- deletedAt?: number;
106
- createdBy?: Operator;
107
- deletedBy?: Operator;
108
- /** 此訂單來自線上點餐平台 */
109
- onlinePlatformType?: OnlinePlatformType.SDIT;
110
- /** 外部線上點餐平台訂單ID */
111
- onlinePlatformOrderId?: string;
112
- /** onlinePlatform 取消時間 */
113
- canceledAt?: number;
114
- /** 拒絕外部訂單操作人 */
115
- rejectedBy?: Operator;
116
- /** 取消外部訂單操作人 */
117
- canceledBy?: Operator;
118
- /** 拒絕外部訂單理由 */
119
- rejectedReasonCode?: ContractReasonCode;
120
- /** 拒絕外部訂單理由 */
121
- rejectedReason?: string;
122
- /** 取消外部訂單理由 */
123
- canceledReasonCode?: ContractReasonCode;
124
- /** 取消外部訂單理由 */
125
- canceledReason?: string;
126
- /**
127
- * 線上訂單。
128
- * 若消費者要打統編,會記錄在這裡
129
- */
130
- buyerId?: string;
131
- }
132
- export interface ContractReceipt extends Receipt {
133
- /**
134
- * 有值代表「線上訂單 & 線上付款」。
135
- * 若是「線上訂單 & 線上付款」,會走線上取消訂單並退款流程。
136
- * 若是「現場付款」,則會走現場退款流程。
137
- */
138
- onlinePlatformType?: OnlinePlatformType.SDIT;
139
- }
140
- export declare enum ContractReasonCode {
141
- PAYMENT_EXPIRED = "PAYMENT_EXPIRED",
142
- OTHER = "OTHER"
143
- }
27
+ endedAt: number;
28
+ plan: Plan;
29
+ } & ContractCore;
@@ -1,10 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ContractReasonCode = void 0;
4
- ;
5
- var ContractReasonCode;
6
- (function (ContractReasonCode) {
7
- ContractReasonCode["PAYMENT_EXPIRED"] = "PAYMENT_EXPIRED";
8
- ContractReasonCode["OTHER"] = "OTHER";
9
- })(ContractReasonCode = exports.ContractReasonCode || (exports.ContractReasonCode = {}));
10
3
  //# sourceMappingURL=contract.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"contract.js","sourceRoot":"","sources":["../../../projects/sdit-model-lib/src/models/contract.ts"],"names":[],"mappings":";;;AA6FC,CAAC;AAgEF,IAAY,kBAGX;AAHD,WAAY,kBAAkB;IAC5B,yDAAmC,CAAA;IACnC,qCAAe,CAAA;AACjB,CAAC,EAHW,kBAAkB,GAAlB,0BAAkB,KAAlB,0BAAkB,QAG7B"}
1
+ {"version":3,"file":"contract.js","sourceRoot":"","sources":["../../../projects/sdit-model-lib/src/models/contract.ts"],"names":[],"mappings":""}
package/models/index.d.ts CHANGED
@@ -33,6 +33,7 @@ export * from './csv';
33
33
  export * from './appointment';
34
34
  export * from './utils';
35
35
  export * from './permission';
36
+ export * from './contract';
36
37
  export * from './json';
37
38
  export * from './online-integration';
38
39
  export * from './online-ordering';
package/models/index.js CHANGED
@@ -36,6 +36,7 @@ tslib_1.__exportStar(require("./csv"), exports);
36
36
  tslib_1.__exportStar(require("./appointment"), exports);
37
37
  tslib_1.__exportStar(require("./utils"), exports);
38
38
  tslib_1.__exportStar(require("./permission"), exports);
39
+ tslib_1.__exportStar(require("./contract"), exports);
39
40
  tslib_1.__exportStar(require("./json"), exports);
40
41
  tslib_1.__exportStar(require("./online-integration"), exports);
41
42
  tslib_1.__exportStar(require("./online-ordering"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../projects/sdit-model-lib/src/models/index.ts"],"names":[],"mappings":";;;AAAA,2DAAiC;AACjC,oDAA0B;AAC1B,kDAAwB;AACxB,iDAAuB;AACvB,kDAAwB;AACxB,2DAAiC;AACjC,oDAA0B;AAC1B,kDAAwB;AACxB,6DAAmC;AACnC,+DAAqC;AACrC,kDAAwB;AACxB,iDAAuB;AACvB,2DAAiC;AACjC,+DAAqC;AACrC,qDAA2B;AAC3B,qDAA2B;AAC3B,6DAAmC;AACnC,4DAAkC;AAClC,4DAAkC;AAClC,kDAAwB;AACxB,2DAAiC;AACjC,4DAAkC;AAClC,qDAA2B;AAC3B,kDAAwB;AACxB,4DAAkC;AAClC,oDAA0B;AAC1B,oDAA0B;AAC1B,kDAAwB;AACxB,kEAAwC;AACxC,mDAAyB;AACzB,sDAA4B;AAC5B,gDAAsB;AACtB,wDAA8B;AAC9B,kDAAwB;AACxB,uDAA6B;AAE7B,iDAAuB;AACvB,+DAAqC;AACrC,4DAAkC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../projects/sdit-model-lib/src/models/index.ts"],"names":[],"mappings":";;;AAAA,2DAAiC;AACjC,oDAA0B;AAC1B,kDAAwB;AACxB,iDAAuB;AACvB,kDAAwB;AACxB,2DAAiC;AACjC,oDAA0B;AAC1B,kDAAwB;AACxB,6DAAmC;AACnC,+DAAqC;AACrC,kDAAwB;AACxB,iDAAuB;AACvB,2DAAiC;AACjC,+DAAqC;AACrC,qDAA2B;AAC3B,qDAA2B;AAC3B,6DAAmC;AACnC,4DAAkC;AAClC,4DAAkC;AAClC,kDAAwB;AACxB,2DAAiC;AACjC,4DAAkC;AAClC,qDAA2B;AAC3B,kDAAwB;AACxB,4DAAkC;AAClC,oDAA0B;AAC1B,oDAA0B;AAC1B,kDAAwB;AACxB,kEAAwC;AACxC,mDAAyB;AACzB,sDAA4B;AAC5B,gDAAsB;AACtB,wDAA8B;AAC9B,kDAAwB;AACxB,uDAA6B;AAC7B,qDAA2B;AAE3B,iDAAuB;AACvB,+DAAqC;AACrC,4DAAkC"}
@@ -31,6 +31,12 @@ export declare enum OMEntityType {
31
31
  ITEM = "ITEM",
32
32
  MODIFIER_GROUP = "MODIFIER_GROUP"
33
33
  }
34
+ /**
35
+ * 第三方店家與Kiosky店家的關聯,共用StoreOnlinePlatformStore
36
+ */
37
+ export declare enum ThirdPartyStoreProvider {
38
+ POSKY = "POSKY"
39
+ }
34
40
  export declare type OMMMenuEntity = UbMenuEntity;
35
41
  export interface OMMItem extends UbMenuItem {
36
42
  external_data: OMMItemContent[];
@@ -62,8 +68,11 @@ export interface SOPSContent {
62
68
  customPaymentConfigName?: string;
63
69
  };
64
70
  }
71
+ export declare type ThirdPartyStoreIntegrationType = OnlinePlatformType | ThirdPartyStoreProvider;
65
72
  export interface StoreOnlinePlatformStore extends SOPSContent {
66
73
  storeId: string;
67
- onlinePlatformType: OnlinePlatformType;
74
+ onlinePlatformType: ThirdPartyStoreIntegrationType;
68
75
  onlinePlatformStoreId: string;
69
76
  }
77
+ export declare type ThirdPartyType = 'pos' | 'onlinePlatform';
78
+ export declare function getThirdPartyType(params: ThirdPartyStoreIntegrationType): ThirdPartyType;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.OMEntityType = exports.OOReasonCode = exports.OnlinePlatformType = exports.OMMItemContentEntityType = exports.OMMItemContextType = exports.OnlineOrderMappingWarningCode = void 0;
3
+ exports.getThirdPartyType = exports.ThirdPartyStoreProvider = exports.OMEntityType = exports.OOReasonCode = exports.OnlinePlatformType = exports.OMMItemContentEntityType = exports.OMMItemContextType = exports.OnlineOrderMappingWarningCode = void 0;
4
4
  var OnlineOrderMappingWarningCode;
5
5
  (function (OnlineOrderMappingWarningCode) {
6
6
  OnlineOrderMappingWarningCode["ROOT_ITEM"] = "ROOT_ITEM";
@@ -39,4 +39,21 @@ var OMEntityType;
39
39
  OMEntityType["ITEM"] = "ITEM";
40
40
  OMEntityType["MODIFIER_GROUP"] = "MODIFIER_GROUP";
41
41
  })(OMEntityType = exports.OMEntityType || (exports.OMEntityType = {}));
42
+ /**
43
+ * 第三方店家與Kiosky店家的關聯,共用StoreOnlinePlatformStore
44
+ */
45
+ var ThirdPartyStoreProvider;
46
+ (function (ThirdPartyStoreProvider) {
47
+ ThirdPartyStoreProvider["POSKY"] = "POSKY";
48
+ })(ThirdPartyStoreProvider = exports.ThirdPartyStoreProvider || (exports.ThirdPartyStoreProvider = {}));
49
+ function getThirdPartyType(params) {
50
+ if (Object.values(OnlinePlatformType).includes(params)) {
51
+ return 'onlinePlatform';
52
+ }
53
+ if (Object.values(ThirdPartyStoreProvider).includes(params)) {
54
+ return 'pos';
55
+ }
56
+ return undefined;
57
+ }
58
+ exports.getThirdPartyType = getThirdPartyType;
42
59
  //# sourceMappingURL=online-integration.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"online-integration.js","sourceRoot":"","sources":["../../../projects/sdit-model-lib/src/models/online-integration.ts"],"names":[],"mappings":";;;AAEA,IAAY,6BAIX;AAJD,WAAY,6BAA6B;IACvC,wDAAuB,CAAA;IACvB,kEAAiC,CAAA;IACjC,oDAAmB,CAAA;AACrB,CAAC,EAJW,6BAA6B,GAA7B,qCAA6B,KAA7B,qCAA6B,QAIxC;AAID,IAAY,kBAIX;AAJD,WAAY,kBAAkB;IAC5B,2DAAQ,CAAA;IACR,2DAAQ,CAAA;IACR,+EAAkB,CAAA;AACpB,CAAC,EAJW,kBAAkB,GAAlB,0BAAkB,KAAlB,0BAAkB,QAI7B;AAGD,IAAY,wBAGX;AAHD,WAAY,wBAAwB;IAClC,+CAAmB,CAAA;IACnB,mEAAuC,CAAA;AACzC,CAAC,EAHW,wBAAwB,GAAxB,gCAAwB,KAAxB,gCAAwB,QAGnC;AAED,IAAY,kBAIX;AAJD,WAAY,kBAAkB;IAC5B,6CAAuB,CAAA;IACvB,+CAAyB,CAAA;IACzB,mCAAa,CAAA;AACf,CAAC,EAJW,kBAAkB,GAAlB,0BAAkB,KAAlB,0BAAkB,QAI7B;AAED,IAAY,YAQX;AARD,WAAY,YAAY;IACtB,2DAA2C,CAAA;IAC3C,iDAAiC,CAAA;IACjC,6CAA6B,CAAA;IAC7B,uEAAuD,CAAA;IACvD,+EAA+D,CAAA;IAC/D,mDAAmC,CAAA;IACnC,+BAAe,CAAA;AACjB,CAAC,EARW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAQvB;AAID,IAAY,YAGX;AAHD,WAAY,YAAY;IACtB,6BAAa,CAAA;IACb,iDAAiC,CAAA;AACnC,CAAC,EAHW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAGvB"}
1
+ {"version":3,"file":"online-integration.js","sourceRoot":"","sources":["../../../projects/sdit-model-lib/src/models/online-integration.ts"],"names":[],"mappings":";;;AAEA,IAAY,6BAIX;AAJD,WAAY,6BAA6B;IACvC,wDAAuB,CAAA;IACvB,kEAAiC,CAAA;IACjC,oDAAmB,CAAA;AACrB,CAAC,EAJW,6BAA6B,GAA7B,qCAA6B,KAA7B,qCAA6B,QAIxC;AAID,IAAY,kBAIX;AAJD,WAAY,kBAAkB;IAC5B,2DAAQ,CAAA;IACR,2DAAQ,CAAA;IACR,+EAAkB,CAAA;AACpB,CAAC,EAJW,kBAAkB,GAAlB,0BAAkB,KAAlB,0BAAkB,QAI7B;AAGD,IAAY,wBAGX;AAHD,WAAY,wBAAwB;IAClC,+CAAmB,CAAA;IACnB,mEAAuC,CAAA;AACzC,CAAC,EAHW,wBAAwB,GAAxB,gCAAwB,KAAxB,gCAAwB,QAGnC;AAED,IAAY,kBAIX;AAJD,WAAY,kBAAkB;IAC5B,6CAAuB,CAAA;IACvB,+CAAyB,CAAA;IACzB,mCAAa,CAAA;AACf,CAAC,EAJW,kBAAkB,GAAlB,0BAAkB,KAAlB,0BAAkB,QAI7B;AAED,IAAY,YAQX;AARD,WAAY,YAAY;IACtB,2DAA2C,CAAA;IAC3C,iDAAiC,CAAA;IACjC,6CAA6B,CAAA;IAC7B,uEAAuD,CAAA;IACvD,+EAA+D,CAAA;IAC/D,mDAAmC,CAAA;IACnC,+BAAe,CAAA;AACjB,CAAC,EARW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAQvB;AAID,IAAY,YAGX;AAHD,WAAY,YAAY;IACtB,6BAAa,CAAA;IACb,iDAAiC,CAAA;AACnC,CAAC,EAHW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAGvB;AAED;;GAEG;AACH,IAAY,uBAEX;AAFD,WAAY,uBAAuB;IACjC,0CAAe,CAAA;AACjB,CAAC,EAFW,uBAAuB,GAAvB,+BAAuB,KAAvB,+BAAuB,QAElC;AAiDD,SAAgB,iBAAiB,CAAC,MAAsC;IACtE,IAAI,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,QAAQ,CAAC,MAA4B,CAAC,EAAE;QAC5E,OAAO,gBAAgB,CAAC;KACzB;IACD,IAAI,MAAM,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC,QAAQ,CAAC,MAAiC,CAAC,EAAE;QACtF,OAAO,KAAK,CAAC;KACd;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AARD,8CAQC"}
package/models/order.d.ts CHANGED
@@ -13,7 +13,65 @@ import { Operator } from './store';
13
13
  import { OnlinePlatformType, OOReasonCode, OnlineOrderMappingWarningCode } from './online-integration';
14
14
  import { SOEater, SOOperateParty } from './online-ordering';
15
15
  import { DiscountMethod } from './discount-module';
16
- export interface Order {
16
+ export interface BaseOrder {
17
+ id?: string;
18
+ source: OrderSourceType;
19
+ customerId?: string;
20
+ customer?: Customer;
21
+ /** 此訂單來自線上點餐XX平台 */
22
+ onlinePlatformType?: OnlinePlatformType;
23
+ /** 外部線上點餐平台訂單ID */
24
+ onlinePlatformOrderId?: string;
25
+ items: OrderItem[];
26
+ /** sigma(items.amount) */
27
+ subtotal: number;
28
+ /** subtotal - sigma(discount.discountReferences.orderItemId === null) */
29
+ totalAmount: number;
30
+ salesAmountExcludeTax: number;
31
+ exemptTaxSalesAmount: number;
32
+ zeroTaxSalesAmount: number;
33
+ taxAmount: number;
34
+ discount?: OrderDiscount;
35
+ /** 由KIOSK、線上點餐、..端給定的序號 */
36
+ serialNumber: string;
37
+ note?: string;
38
+ createdAt: number;
39
+ multipleReceipts?: Receipt[];
40
+ /** 接受時間 */
41
+ acceptedAt?: number;
42
+ /** 拒絕時間 */
43
+ rejectedAt?: number;
44
+ /** KIOSK, onlinePlatform 取消時間 */
45
+ canceledAt?: number;
46
+ /** 拒絕外部訂單操作人 */
47
+ rejectedBy?: Operator;
48
+ /** 取消外部訂單操作人,若第三方系統取消,則為undefined */
49
+ canceledBy?: Operator;
50
+ /** 拒絕外部訂單理由 */
51
+ rejectedReasonCode?: string;
52
+ /** 拒絕外部訂單理由 */
53
+ rejectedReason?: string;
54
+ /** 取消外部訂單理由 */
55
+ canceledReasonCode?: string;
56
+ /** 取消外部訂單理由 */
57
+ canceledReason?: string;
58
+ /**
59
+ * 線上訂單。
60
+ * 若消費者要打統編,會記錄在這裡
61
+ */
62
+ buyerId?: string;
63
+ /** 線上訂購人 */
64
+ onlineBuyer?: SOEater;
65
+ /** 訂單取消方 */
66
+ canceledByParty?: SOOperateParty;
67
+ /**
68
+ * 線上點餐、UberEats等等外送平台,線上成功收款後的
69
+ * Transaction會暫時存在這個Property,待POS接單後,
70
+ * 再將這個Transaction包成Receipt
71
+ */
72
+ externalPayment?: Transaction;
73
+ }
74
+ export interface Order extends BaseOrder {
17
75
  id?: string;
18
76
  source: OrderSourceType;
19
77
  status?: OrderStatus;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trusted-solutions/sdit.models",
3
- "version": "0.19.0-alpha.0",
3
+ "version": "0.19.0-alpha.11",
4
4
  "description": "TODO: Give a short introduction of your project. Let this section explain the objectives or the motivation behind this project.",
5
5
  "main": "index.js",
6
6
  "scripts": {