@trusted-solutions/sdit.models 0.19.0-alpha.0 → 0.19.0-alpha.3
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/lambda/contract.d.ts +65 -4
- package/lambda/index.d.ts +1 -0
- package/lambda/index.js +1 -0
- package/lambda/index.js.map +1 -1
- package/models/contract.d.ts +18 -132
- package/models/contract.js +0 -7
- package/models/contract.js.map +1 -1
- package/models/index.d.ts +1 -0
- package/models/index.js +1 -0
- package/models/index.js.map +1 -1
- package/models/order.d.ts +59 -1
- package/package.json +1 -1
package/lambda/contract.d.ts
CHANGED
|
@@ -1,11 +1,72 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import { Contract, PlanLimits, Plan } 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
|
|
10
|
-
|
|
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 = Contract;
|
|
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
|
+
/**
|
|
67
|
+
* Get Plan
|
|
68
|
+
*/
|
|
69
|
+
export interface GetPlanRequest {
|
|
70
|
+
planId: string;
|
|
11
71
|
}
|
|
72
|
+
export declare type GetPlanResponse = Plan;
|
package/lambda/index.d.ts
CHANGED
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
|
package/lambda/index.js.map
CHANGED
|
@@ -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"}
|
package/models/contract.d.ts
CHANGED
|
@@ -1,143 +1,29 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
export interface
|
|
4
|
-
key: string;
|
|
5
|
-
value: boolean | number;
|
|
1
|
+
import { Operator } from './store';
|
|
2
|
+
export declare type PlanValueType = boolean | number;
|
|
3
|
+
export interface PlanLimits {
|
|
4
|
+
[key: string]: PlanValueType;
|
|
6
5
|
}
|
|
7
|
-
export interface Plan
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
export interface Plan {
|
|
7
|
+
id: string;
|
|
8
|
+
name: string;
|
|
9
|
+
description?: string;
|
|
10
|
+
planLimits?: PlanLimits;
|
|
11
|
+
/** 方案的生效天數 */
|
|
10
12
|
rangeDays?: number;
|
|
11
13
|
}
|
|
12
|
-
/**
|
|
13
|
-
* extends OrderItem
|
|
14
|
-
*/
|
|
15
14
|
export interface Contract {
|
|
16
|
-
id
|
|
15
|
+
/** createContractRequest 不用給 id */
|
|
16
|
+
id?: string;
|
|
17
17
|
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
18
|
note?: string;
|
|
49
|
-
paidStatus?: OrderItemPaidStatus;
|
|
50
|
-
/** 建立時間 */
|
|
51
19
|
createdAt?: number;
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
rangeDays?: number;
|
|
20
|
+
startedAt: number;
|
|
21
|
+
endedAt: number;
|
|
55
22
|
createdBy?: Operator;
|
|
56
|
-
|
|
57
|
-
/**
|
|
58
|
-
|
|
59
|
-
*/
|
|
60
|
-
eachLimits: PlanLimit[];
|
|
23
|
+
planId: string;
|
|
24
|
+
/** createContractRequest 不用給 plan */
|
|
25
|
+
plan?: Plan;
|
|
61
26
|
contractProofImageUrls?: string[];
|
|
62
27
|
forStoreId: string;
|
|
63
|
-
|
|
64
|
-
}
|
|
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[];
|
|
80
|
-
note?: string;
|
|
81
|
-
manualDiscountMethod?: DiscountMethod;
|
|
82
|
-
discountAmount?: number;
|
|
83
|
-
modifiedBy?: Operator;
|
|
84
|
-
}
|
|
85
|
-
export interface ContractOrder {
|
|
86
|
-
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
|
-
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"
|
|
28
|
+
ownerCognitoUserId: string;
|
|
143
29
|
}
|
package/models/contract.js
CHANGED
|
@@ -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
|
package/models/contract.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../../../projects/sdit-model-lib/src/models/contract.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../../../projects/sdit-model-lib/src/models/contract.ts"],"names":[],"mappings":""}
|
package/models/index.d.ts
CHANGED
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);
|
package/models/index.js.map
CHANGED
|
@@ -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;
|
|
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"}
|
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
|
|
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.
|
|
3
|
+
"version": "0.19.0-alpha.3",
|
|
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": {
|