@wipperoz/wipperoz-core 1.1.12 → 1.1.13
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/billing/interfaces/billing/topUpOption.interface.d.ts +2 -2
- package/dist/billing/services/topUpOptions.service.d.ts.map +1 -1
- package/dist/billing/services/topUpOptions.service.js +66 -42
- package/dist/billing/services/topUpOptions.service.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -13,8 +13,8 @@ export interface TopUpOption {
|
|
|
13
13
|
description?: string;
|
|
14
14
|
badge?: 'Popular' | 'Best Value' | 'New' | null;
|
|
15
15
|
discount?: TopUpOptionDiscount;
|
|
16
|
-
createdAt:
|
|
17
|
-
updatedAt:
|
|
16
|
+
createdAt: number;
|
|
17
|
+
updatedAt: number;
|
|
18
18
|
updatedBy: string;
|
|
19
19
|
}
|
|
20
20
|
export interface TopUpOptionDisplay extends TopUpOption {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"topUpOptions.service.d.ts","sourceRoot":"","sources":["../../../src/billing/services/topUpOptions.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAC,oBAAoB,EAAC,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EACL,WAAW,EACX,sBAAsB,EACtB,sBAAsB,EACtB,kBAAkB,EACnB,MAAM,6CAA6C,CAAC;AAErD,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,EAAE,CAAkB;IAC5B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,oBAAoB,CAAuB;gBAEvC,EAAE,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,EAAE,oBAAoB,EAAE,oBAAoB;IAQxF,MAAM,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"topUpOptions.service.d.ts","sourceRoot":"","sources":["../../../src/billing/services/topUpOptions.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAC,oBAAoB,EAAC,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EACL,WAAW,EACX,sBAAsB,EACtB,sBAAsB,EACtB,kBAAkB,EACnB,MAAM,6CAA6C,CAAC;AAErD,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,EAAE,CAAkB;IAC5B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,oBAAoB,CAAuB;gBAEvC,EAAE,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,EAAE,oBAAoB,EAAE,oBAAoB;IAQxF,MAAM,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAsBhC,UAAU,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAQpC,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAYhD,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAKxD,iBAAiB,CAAC,QAAQ,EAAE,KAAK,GAAG,KAAK,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAkDzE,MAAM,CACV,KAAK,EAAE,sBAAsB,EAC7B,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,WAAW,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAC,CAAC;IAqD9D,MAAM,CACV,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,sBAAsB,EAC7B,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,WAAW,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAC,CAAC;IAsC9D,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAC,CAAC;IAKlF,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAC,CAAC;IAKnF,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAC,CAAC;IAc7F,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAC,CAAC;IA0B/D,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAItD"}
|
|
@@ -12,20 +12,32 @@ class TopUpOptionsService {
|
|
|
12
12
|
}
|
|
13
13
|
// ==================== READ ====================
|
|
14
14
|
async getAll() {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
':pkey
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
15
|
+
console.log('[TopUpOptionsService.getAll] Fetching all options from table:', this.tableName);
|
|
16
|
+
try {
|
|
17
|
+
const result = await this.db.query({
|
|
18
|
+
TableName: this.tableName,
|
|
19
|
+
KeyConditionExpression: 'Pkey = :pkey AND begins_with(Skey, :skeyPrefix)',
|
|
20
|
+
ExpressionAttributeValues: {
|
|
21
|
+
':pkey': 'config',
|
|
22
|
+
':skeyPrefix': 'topup-option:',
|
|
23
|
+
},
|
|
24
|
+
});
|
|
25
|
+
console.log('[TopUpOptionsService.getAll] Query result:', JSON.stringify(result, null, 2));
|
|
26
|
+
const options = (result?.Items ?? []).map(item => item.Details);
|
|
27
|
+
console.log('[TopUpOptionsService.getAll] Parsed options count:', options.length);
|
|
28
|
+
return options.sort((a, b) => a.sortOrder - b.sortOrder);
|
|
29
|
+
}
|
|
30
|
+
catch (error) {
|
|
31
|
+
console.error('[TopUpOptionsService.getAll] Error:', error);
|
|
32
|
+
throw error;
|
|
33
|
+
}
|
|
25
34
|
}
|
|
26
35
|
async getEnabled() {
|
|
36
|
+
console.log('[TopUpOptionsService.getEnabled] Fetching enabled options');
|
|
27
37
|
const all = await this.getAll();
|
|
28
|
-
|
|
38
|
+
const enabled = all.filter(opt => opt.enabled);
|
|
39
|
+
console.log('[TopUpOptionsService.getEnabled] Enabled options count:', enabled.length);
|
|
40
|
+
return enabled;
|
|
29
41
|
}
|
|
30
42
|
async getById(id) {
|
|
31
43
|
const result = await this.db.get({
|
|
@@ -42,36 +54,46 @@ class TopUpOptionsService {
|
|
|
42
54
|
}
|
|
43
55
|
// Get options with pricing for display (user-facing)
|
|
44
56
|
async getDisplayOptions(currency) {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
const
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
const
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
57
|
+
console.log('[TopUpOptionsService.getDisplayOptions] Getting display options for currency:', currency);
|
|
58
|
+
try {
|
|
59
|
+
const options = await this.getEnabled();
|
|
60
|
+
console.log('[TopUpOptionsService.getDisplayOptions] Got enabled options:', options.length);
|
|
61
|
+
const currencySymbol = currency === 'AUD' ? 'A$' : '$';
|
|
62
|
+
const displayOptions = await Promise.all(options.map(async (opt) => {
|
|
63
|
+
const priceDollars = opt.priceCents / 100;
|
|
64
|
+
const gst = await this.billingConfigService.calculateGst(opt.priceCents, currency);
|
|
65
|
+
let savings = undefined;
|
|
66
|
+
if (opt.discount?.enabled && opt.discount.originalPriceCents > opt.priceCents) {
|
|
67
|
+
const savingsCents = opt.discount.originalPriceCents - opt.priceCents;
|
|
68
|
+
const savingsPercentage = Math.round((savingsCents / opt.discount.originalPriceCents) * 100);
|
|
69
|
+
savings = {
|
|
70
|
+
amountCents: savingsCents,
|
|
71
|
+
amountFormatted: `${currencySymbol}${(savingsCents / 100).toFixed(2)}`,
|
|
72
|
+
percentage: savingsPercentage,
|
|
73
|
+
reason: opt.discount.reason,
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
return {
|
|
77
|
+
...opt,
|
|
78
|
+
priceFormatted: `${currencySymbol}${priceDollars.toFixed(2)}`,
|
|
79
|
+
tokensFormatted: `${opt.tokens.toLocaleString()} tokens`,
|
|
80
|
+
displayText: `${opt.tokens.toLocaleString()} tokens for ${currencySymbol}${priceDollars.toFixed(2)}`,
|
|
81
|
+
savings,
|
|
82
|
+
gst: gst.applicable
|
|
83
|
+
? {
|
|
84
|
+
...gst,
|
|
85
|
+
amountFormatted: `${currencySymbol}${(gst.amountCents / 100).toFixed(2)}`,
|
|
86
|
+
}
|
|
87
|
+
: undefined,
|
|
59
88
|
};
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
? {
|
|
69
|
-
...gst,
|
|
70
|
-
amountFormatted: `${currencySymbol}${(gst.amountCents / 100).toFixed(2)}`,
|
|
71
|
-
}
|
|
72
|
-
: undefined,
|
|
73
|
-
};
|
|
74
|
-
}));
|
|
89
|
+
}));
|
|
90
|
+
console.log('[TopUpOptionsService.getDisplayOptions] Returning display options:', displayOptions.length);
|
|
91
|
+
return displayOptions;
|
|
92
|
+
}
|
|
93
|
+
catch (error) {
|
|
94
|
+
console.error('[TopUpOptionsService.getDisplayOptions] Error:', error);
|
|
95
|
+
throw error;
|
|
96
|
+
}
|
|
75
97
|
}
|
|
76
98
|
// ==================== CREATE ====================
|
|
77
99
|
async create(input, createdBy) {
|
|
@@ -84,7 +106,7 @@ class TopUpOptionsService {
|
|
|
84
106
|
// Get max sort order
|
|
85
107
|
const allOptions = await this.getAll();
|
|
86
108
|
const maxSortOrder = Math.max(0, ...allOptions.map(o => o.sortOrder));
|
|
87
|
-
const now =
|
|
109
|
+
const now = Date.now();
|
|
88
110
|
const option = {
|
|
89
111
|
id: tokens.toString(),
|
|
90
112
|
tokens,
|
|
@@ -106,6 +128,8 @@ class TopUpOptionsService {
|
|
|
106
128
|
Pkey: 'config',
|
|
107
129
|
Skey: `topup-option:${tokens}`,
|
|
108
130
|
Details: option,
|
|
131
|
+
CreatedAt: now,
|
|
132
|
+
UpdatedAt: now,
|
|
109
133
|
},
|
|
110
134
|
ConditionExpression: 'attribute_not_exists(Pkey)',
|
|
111
135
|
});
|
|
@@ -127,7 +151,7 @@ class TopUpOptionsService {
|
|
|
127
151
|
const updatedOption = {
|
|
128
152
|
...existing,
|
|
129
153
|
...input,
|
|
130
|
-
updatedAt:
|
|
154
|
+
updatedAt: Date.now(),
|
|
131
155
|
updatedBy,
|
|
132
156
|
discount: input.discount ?? existing.discount ?? undefined,
|
|
133
157
|
priceCents: input.priceCents ?? existing.priceCents,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"topUpOptions.service.js","sourceRoot":"","sources":["../../../src/billing/services/topUpOptions.service.ts"],"names":[],"mappings":";;;AASA,MAAa,mBAAmB;IACtB,EAAE,CAAkB;IACpB,SAAS,CAAS;IAClB,oBAAoB,CAAuB;IAEnD,YAAY,EAAmB,EAAE,SAAiB,EAAE,oBAA0C;QAC5F,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;IACnD,CAAC;IAED,iDAAiD;IAEjD,KAAK,CAAC,MAAM;QACV,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"topUpOptions.service.js","sourceRoot":"","sources":["../../../src/billing/services/topUpOptions.service.ts"],"names":[],"mappings":"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"}
|