@downcity/services 0.1.60 → 0.1.63

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 (93) hide show
  1. package/LICENSE +183 -0
  2. package/bin/balance/amount.d.ts +52 -0
  3. package/bin/balance/amount.d.ts.map +1 -0
  4. package/bin/balance/amount.js +102 -0
  5. package/bin/balance/amount.js.map +1 -0
  6. package/bin/balance/index.d.ts +2 -0
  7. package/bin/balance/index.d.ts.map +1 -1
  8. package/bin/balance/index.js +1 -0
  9. package/bin/balance/index.js.map +1 -1
  10. package/bin/balance/routes.d.ts.map +1 -1
  11. package/bin/balance/routes.js +1 -0
  12. package/bin/balance/routes.js.map +1 -1
  13. package/bin/balance/schema.d.ts +10 -86
  14. package/bin/balance/schema.d.ts.map +1 -1
  15. package/bin/balance/schema.js +10 -26
  16. package/bin/balance/schema.js.map +1 -1
  17. package/bin/balance/service.d.ts +23 -88
  18. package/bin/balance/service.d.ts.map +1 -1
  19. package/bin/balance/service.js +74 -53
  20. package/bin/balance/service.js.map +1 -1
  21. package/bin/balance/types.d.ts +41 -21
  22. package/bin/balance/types.d.ts.map +1 -1
  23. package/bin/balance/types.js +4 -1
  24. package/bin/balance/types.js.map +1 -1
  25. package/bin/balance/utils.d.ts.map +1 -1
  26. package/bin/balance/utils.js +17 -9
  27. package/bin/balance/utils.js.map +1 -1
  28. package/bin/billing/index.d.ts +7 -0
  29. package/bin/billing/index.d.ts.map +1 -0
  30. package/bin/billing/index.js +6 -0
  31. package/bin/billing/index.js.map +1 -0
  32. package/bin/billing/routes.d.ts +14 -0
  33. package/bin/billing/routes.d.ts.map +1 -0
  34. package/bin/billing/routes.js +61 -0
  35. package/bin/billing/routes.js.map +1 -0
  36. package/bin/billing/schema.d.ts +582 -0
  37. package/bin/billing/schema.d.ts.map +1 -0
  38. package/bin/billing/schema.js +81 -0
  39. package/bin/billing/schema.js.map +1 -0
  40. package/bin/billing/service.d.ts +619 -0
  41. package/bin/billing/service.d.ts.map +1 -0
  42. package/bin/billing/service.js +457 -0
  43. package/bin/billing/service.js.map +1 -0
  44. package/bin/billing/types.d.ts +205 -0
  45. package/bin/billing/types.d.ts.map +1 -0
  46. package/bin/billing/types.js +10 -0
  47. package/bin/billing/types.js.map +1 -0
  48. package/bin/index.d.ts +5 -1
  49. package/bin/index.d.ts.map +1 -1
  50. package/bin/index.js +3 -1
  51. package/bin/index.js.map +1 -1
  52. package/bin/payment/index.d.ts.map +1 -1
  53. package/bin/payment/index.js +0 -1
  54. package/bin/payment/index.js.map +1 -1
  55. package/bin/payment/types.d.ts +5 -3
  56. package/bin/payment/types.d.ts.map +1 -1
  57. package/bin/payment-creem/creem.d.ts.map +1 -1
  58. package/bin/payment-creem/creem.js +15 -1
  59. package/bin/payment-creem/creem.js.map +1 -1
  60. package/bin/payment-creem/index.d.ts.map +1 -1
  61. package/bin/payment-creem/index.js +0 -1
  62. package/bin/payment-creem/index.js.map +1 -1
  63. package/bin/payment-creem/types.d.ts +0 -4
  64. package/bin/payment-creem/types.d.ts.map +1 -1
  65. package/bin/payment-dodo/dodo.d.ts.map +1 -1
  66. package/bin/payment-dodo/dodo.js +16 -2
  67. package/bin/payment-dodo/dodo.js.map +1 -1
  68. package/bin/payment-dodo/index.d.ts.map +1 -1
  69. package/bin/payment-dodo/index.js +0 -1
  70. package/bin/payment-dodo/index.js.map +1 -1
  71. package/bin/payment-dodo/types.d.ts +0 -4
  72. package/bin/payment-dodo/types.d.ts.map +1 -1
  73. package/bin/payment-stripe/index.d.ts.map +1 -1
  74. package/bin/payment-stripe/index.js +0 -1
  75. package/bin/payment-stripe/index.js.map +1 -1
  76. package/bin/payment-stripe/stripe.d.ts.map +1 -1
  77. package/bin/payment-stripe/stripe.js +14 -1
  78. package/bin/payment-stripe/stripe.js.map +1 -1
  79. package/bin/payment-stripe/types.d.ts +0 -4
  80. package/bin/payment-stripe/types.d.ts.map +1 -1
  81. package/bin/payment-waffo/index.d.ts.map +1 -1
  82. package/bin/payment-waffo/index.js +0 -1
  83. package/bin/payment-waffo/index.js.map +1 -1
  84. package/bin/payment-waffo/types.d.ts +0 -4
  85. package/bin/payment-waffo/types.d.ts.map +1 -1
  86. package/bin/payment-waffo/waffo.d.ts.map +1 -1
  87. package/bin/payment-waffo/waffo.js +15 -1
  88. package/bin/payment-waffo/waffo.js.map +1 -1
  89. package/bin/types/Amount.d.ts +25 -0
  90. package/bin/types/Amount.d.ts.map +1 -0
  91. package/bin/types/Amount.js +17 -0
  92. package/bin/types/Amount.js.map +1 -0
  93. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/balance/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/balance/schema.ts"],"names":[],"mappings":"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"}
@@ -41,8 +41,8 @@ export declare class BalanceService extends InstallableService {
41
41
  }, {}, {
42
42
  length: number | undefined;
43
43
  }>;
44
- balance: import("drizzle-orm/sqlite-core").SQLiteColumn<{
45
- name: "balance";
44
+ balance_microcredits: import("drizzle-orm/sqlite-core").SQLiteColumn<{
45
+ name: "balance_microcredits";
46
46
  tableName: "service_balance_accounts";
47
47
  dataType: "number";
48
48
  columnType: "SQLiteInteger";
@@ -58,25 +58,6 @@ export declare class BalanceService extends InstallableService {
58
58
  identity: undefined;
59
59
  generated: undefined;
60
60
  }, {}, {}>;
61
- unit: import("drizzle-orm/sqlite-core").SQLiteColumn<{
62
- name: "unit";
63
- tableName: "service_balance_accounts";
64
- dataType: "string";
65
- columnType: "SQLiteText";
66
- data: string;
67
- driverParam: string;
68
- notNull: true;
69
- hasDefault: false;
70
- isPrimaryKey: false;
71
- isAutoincrement: false;
72
- hasRuntimeDefault: false;
73
- enumValues: [string, ...string[]];
74
- baseColumn: never;
75
- identity: undefined;
76
- generated: undefined;
77
- }, {}, {
78
- length: number | undefined;
79
- }>;
80
61
  created_at: import("drizzle-orm/sqlite-core").SQLiteColumn<{
81
62
  name: "created_at";
82
63
  tableName: "service_balance_accounts";
@@ -179,8 +160,8 @@ export declare class BalanceService extends InstallableService {
179
160
  }, {}, {
180
161
  length: number | undefined;
181
162
  }>;
182
- amount: import("drizzle-orm/sqlite-core").SQLiteColumn<{
183
- name: "amount";
163
+ amount_microcredits: import("drizzle-orm/sqlite-core").SQLiteColumn<{
164
+ name: "amount_microcredits";
184
165
  tableName: "service_balance_ledger";
185
166
  dataType: "number";
186
167
  columnType: "SQLiteInteger";
@@ -196,8 +177,8 @@ export declare class BalanceService extends InstallableService {
196
177
  identity: undefined;
197
178
  generated: undefined;
198
179
  }, {}, {}>;
199
- balance_after: import("drizzle-orm/sqlite-core").SQLiteColumn<{
200
- name: "balance_after";
180
+ balance_after_microcredits: import("drizzle-orm/sqlite-core").SQLiteColumn<{
181
+ name: "balance_after_microcredits";
201
182
  tableName: "service_balance_ledger";
202
183
  dataType: "number";
203
184
  columnType: "SQLiteInteger";
@@ -213,25 +194,6 @@ export declare class BalanceService extends InstallableService {
213
194
  identity: undefined;
214
195
  generated: undefined;
215
196
  }, {}, {}>;
216
- unit: import("drizzle-orm/sqlite-core").SQLiteColumn<{
217
- name: "unit";
218
- tableName: "service_balance_ledger";
219
- dataType: "string";
220
- columnType: "SQLiteText";
221
- data: string;
222
- driverParam: string;
223
- notNull: true;
224
- hasDefault: false;
225
- isPrimaryKey: false;
226
- isAutoincrement: false;
227
- hasRuntimeDefault: false;
228
- enumValues: [string, ...string[]];
229
- baseColumn: never;
230
- identity: undefined;
231
- generated: undefined;
232
- }, {}, {
233
- length: number | undefined;
234
- }>;
235
197
  note: import("drizzle-orm/sqlite-core").SQLiteColumn<{
236
198
  name: "note";
237
199
  tableName: "service_balance_ledger";
@@ -353,8 +315,8 @@ export declare class BalanceService extends InstallableService {
353
315
  }, {}, {
354
316
  length: number | undefined;
355
317
  }>;
356
- amount: import("drizzle-orm/sqlite-core").SQLiteColumn<{
357
- name: "amount";
318
+ amount_microcredits: import("drizzle-orm/sqlite-core").SQLiteColumn<{
319
+ name: "amount_microcredits";
358
320
  tableName: "service_balance_topups";
359
321
  dataType: "number";
360
322
  columnType: "SQLiteInteger";
@@ -370,25 +332,6 @@ export declare class BalanceService extends InstallableService {
370
332
  identity: undefined;
371
333
  generated: undefined;
372
334
  }, {}, {}>;
373
- unit: import("drizzle-orm/sqlite-core").SQLiteColumn<{
374
- name: "unit";
375
- tableName: "service_balance_topups";
376
- dataType: "string";
377
- columnType: "SQLiteText";
378
- data: string;
379
- driverParam: string;
380
- notNull: true;
381
- hasDefault: false;
382
- isPrimaryKey: false;
383
- isAutoincrement: false;
384
- hasRuntimeDefault: false;
385
- enumValues: [string, ...string[]];
386
- baseColumn: never;
387
- identity: undefined;
388
- generated: undefined;
389
- }, {}, {
390
- length: number | undefined;
391
- }>;
392
335
  status: import("drizzle-orm/sqlite-core").SQLiteColumn<{
393
336
  name: "status";
394
337
  tableName: "service_balance_topups";
@@ -567,8 +510,8 @@ export declare class BalanceService extends InstallableService {
567
510
  }, {}, {
568
511
  length: number | undefined;
569
512
  }>;
570
- amount: import("drizzle-orm/sqlite-core").SQLiteColumn<{
571
- name: "amount";
513
+ amount_microcredits: import("drizzle-orm/sqlite-core").SQLiteColumn<{
514
+ name: "amount_microcredits";
572
515
  tableName: "service_balance_redeem_codes";
573
516
  dataType: "number";
574
517
  columnType: "SQLiteInteger";
@@ -584,25 +527,6 @@ export declare class BalanceService extends InstallableService {
584
527
  identity: undefined;
585
528
  generated: undefined;
586
529
  }, {}, {}>;
587
- unit: import("drizzle-orm/sqlite-core").SQLiteColumn<{
588
- name: "unit";
589
- tableName: "service_balance_redeem_codes";
590
- dataType: "string";
591
- columnType: "SQLiteText";
592
- data: string;
593
- driverParam: string;
594
- notNull: true;
595
- hasDefault: false;
596
- isPrimaryKey: false;
597
- isAutoincrement: false;
598
- hasRuntimeDefault: false;
599
- enumValues: [string, ...string[]];
600
- baseColumn: never;
601
- identity: undefined;
602
- generated: undefined;
603
- }, {}, {
604
- length: number | undefined;
605
- }>;
606
530
  status: import("drizzle-orm/sqlite-core").SQLiteColumn<{
607
531
  name: "status";
608
532
  tableName: "service_balance_redeem_codes";
@@ -759,8 +683,7 @@ export declare class BalanceService extends InstallableService {
759
683
  dialect: "sqlite";
760
684
  }>;
761
685
  };
762
- private readonly initAmount;
763
- private readonly unitName;
686
+ private readonly initMicrocredits;
764
687
  constructor(options?: BalanceServiceOptions);
765
688
  install(ctx: ServiceInstallContext): void;
766
689
  /**
@@ -775,14 +698,26 @@ export declare class BalanceService extends InstallableService {
775
698
  * 余额不足时会抛出 `402 insufficient balance`。
776
699
  */
777
700
  require(user_id: string, amount: number): Promise<BalanceAccount>;
701
+ /**
702
+ * 检查用户余额是否足够,入参单位为 microcredits。
703
+ */
704
+ requireMicrocredits(user_id: string, amount_microcredits: number): Promise<BalanceAccount>;
778
705
  /**
779
706
  * 给用户加余额,并写入 `add` 流水。
780
707
  */
781
708
  add(user_id: string, amount: number, extra?: BalanceExtra): Promise<BalanceAccount>;
709
+ /**
710
+ * 给用户加余额,入参单位为 microcredits。
711
+ */
712
+ addMicrocredits(user_id: string, amount_microcredits: number, extra?: BalanceExtra): Promise<BalanceAccount>;
782
713
  /**
783
714
  * 给用户扣余额,并写入 `sub` 流水。
784
715
  */
785
716
  sub(user_id: string, amount: number, extra?: BalanceExtra): Promise<BalanceAccount>;
717
+ /**
718
+ * 给用户扣余额,入参单位为 microcredits。
719
+ */
720
+ subMicrocredits(user_id: string, amount_microcredits: number, extra?: BalanceExtra): Promise<BalanceAccount>;
786
721
  /**
787
722
  * 查询某个用户的流水。
788
723
  */
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/balance/service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/balance/service.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,8 @@ import { InstallableService, httpError, } from "@downcity/city";
10
10
  import { rawAll, rawFirst, rawRun } from "./raw.js";
11
11
  import { registerBalanceRoutes } from "./routes.js";
12
12
  import { ACCOUNT_TABLE, LEDGER_TABLE, REDEEM_CODE_TABLE, TOPUP_TABLE, balanceAccounts, balanceLedger, balanceRedeemCodes, balanceTopups, } from "./schema.js";
13
- import { generateRedeemCode, hashRedeemCode, maskRedeemCode, mergeMetaJSON, normalizeLimit, normalizeNonNegativeInteger, normalizePositiveInteger, normalizeRedeemCode, normalizeRedeemCodeStatus, normalizeText, normalizeUserId, parseAccountRow, parseLedgerRow, parseMetaJSON, parseRedeemCodeRow, parseTopupRow, randomId, readRequired, stringifyMeta, } from "./utils.js";
13
+ import { generateRedeemCode, hashRedeemCode, maskRedeemCode, mergeMetaJSON, normalizeLimit, normalizeRedeemCode, normalizeRedeemCodeStatus, normalizeText, normalizeUserId, parseAccountRow, parseLedgerRow, parseMetaJSON, parseRedeemCodeRow, parseTopupRow, randomId, readRequired, stringifyMeta, } from "./utils.js";
14
+ import { microcreditsToCredits, microcreditsToUsdCents, readAmountMicrocredits, readNonNegativeAmountMicrocredits, } from "./amount.js";
14
15
  /**
15
16
  * Balance 服务实例。
16
17
  *
@@ -26,15 +27,17 @@ export class BalanceService extends InstallableService {
26
27
  topups: balanceTopups,
27
28
  redeem_codes: balanceRedeemCodes,
28
29
  };
29
- initAmount;
30
- unitName;
30
+ initMicrocredits;
31
31
  constructor(options = {}) {
32
32
  super();
33
- this.initAmount = normalizeNonNegativeInteger(options.init ?? 0, "init");
34
- this.unitName = String(options.unit ?? "credits").trim() || "credits";
33
+ this.initMicrocredits = readNonNegativeAmountMicrocredits({
34
+ amount: options.init ?? 0,
35
+ amount_microcredits: options.init_microcredits,
36
+ }, "init");
35
37
  this.instruction = [
36
38
  "提供用户级全局余额、余额流水、充值单与 redeem_code 能力。",
37
- `当前余额单位为 ${this.unitName},首次自动开户发放 ${this.initAmount} ${this.unitName}。`,
39
+ "`balance` API 字段即 microcredits 整数;`balance_microcredits` 是同值的显式别名。",
40
+ `当前余额以 microcredits 整数存储,首次自动开户发放 ${this.initMicrocredits} microcredits。`,
38
41
  "推荐在业务 hook 中调用 require/add/sub,把具体计费策略放在业务侧,而不是写死在服务内部。",
39
42
  "管理端可查询所有账户、流水、充值单与 redeem_code;用户侧可查询自己的余额、历史记录、充值单,并直接兑换 redeem_code。",
40
43
  ].join("\n");
@@ -58,11 +61,17 @@ export class BalanceService extends InstallableService {
58
61
  * 余额不足时会抛出 `402 insufficient balance`。
59
62
  */
60
63
  async require(user_id, amount) {
64
+ return await this.requireMicrocredits(user_id, readAmountMicrocredits({ amount }));
65
+ }
66
+ /**
67
+ * 检查用户余额是否足够,入参单位为 microcredits。
68
+ */
69
+ async requireMicrocredits(user_id, amount_microcredits) {
61
70
  const normalizedUserId = normalizeUserId(user_id);
62
- const normalizedAmount = normalizePositiveInteger(amount, "amount");
71
+ const normalizedAmount = readAmountMicrocredits({ amount_microcredits });
63
72
  const account = await this.read(normalizedUserId);
64
- if (account.balance < normalizedAmount) {
65
- throw httpError(402, `insufficient balance: need ${normalizedAmount}, current ${account.balance}`);
73
+ if (account.balance_microcredits < normalizedAmount) {
74
+ throw httpError(402, `insufficient balance: need ${normalizedAmount} microcredits, current ${account.balance_microcredits} microcredits`);
66
75
  }
67
76
  return account;
68
77
  }
@@ -70,13 +79,25 @@ export class BalanceService extends InstallableService {
70
79
  * 给用户加余额,并写入 `add` 流水。
71
80
  */
72
81
  async add(user_id, amount, extra = {}) {
73
- return await this.applyDelta(normalizeUserId(user_id), normalizePositiveInteger(amount, "amount"), "add", extra);
82
+ return await this.addMicrocredits(user_id, readAmountMicrocredits({ amount }), extra);
83
+ }
84
+ /**
85
+ * 给用户加余额,入参单位为 microcredits。
86
+ */
87
+ async addMicrocredits(user_id, amount_microcredits, extra = {}) {
88
+ return await this.applyDelta(normalizeUserId(user_id), readAmountMicrocredits({ amount_microcredits }), "add", extra);
74
89
  }
75
90
  /**
76
91
  * 给用户扣余额,并写入 `sub` 流水。
77
92
  */
78
93
  async sub(user_id, amount, extra = {}) {
79
- return await this.applyDelta(normalizeUserId(user_id), -normalizePositiveInteger(amount, "amount"), "sub", extra);
94
+ return await this.subMicrocredits(user_id, readAmountMicrocredits({ amount }), extra);
95
+ }
96
+ /**
97
+ * 给用户扣余额,入参单位为 microcredits。
98
+ */
99
+ async subMicrocredits(user_id, amount_microcredits, extra = {}) {
100
+ return await this.applyDelta(normalizeUserId(user_id), -readAmountMicrocredits({ amount_microcredits }), "sub", extra);
80
101
  }
81
102
  /**
82
103
  * 查询某个用户的流水。
@@ -104,13 +125,14 @@ export class BalanceService extends InstallableService {
104
125
  */
105
126
  async createTopup(user_id, amount, extra = {}) {
106
127
  const normalizedUserId = normalizeUserId(user_id);
107
- const normalizedAmount = normalizePositiveInteger(amount, "amount");
128
+ const normalizedAmount = readAmountMicrocredits({ amount });
108
129
  const now = new Date().toISOString();
109
130
  const topup = {
110
131
  topup_id: `topup_${randomId()}`,
111
132
  user_id: normalizedUserId,
112
- amount: normalizedAmount,
113
- unit: this.unitName,
133
+ amount: microcreditsToCredits(normalizedAmount),
134
+ amount_microcredits: normalizedAmount,
135
+ amount_usd_cents: microcreditsToUsdCents(normalizedAmount),
114
136
  status: "pending",
115
137
  note: normalizeText(extra.note),
116
138
  ref: normalizeText(extra.ref),
@@ -120,13 +142,12 @@ export class BalanceService extends InstallableService {
120
142
  };
121
143
  await this.ensureAccount(normalizedUserId);
122
144
  await rawRun(this.resolveRaw(), [
123
- `INSERT INTO ${TOPUP_TABLE} (topup_id, user_id, amount, unit, status, note, ref, metadata_json, created_at, updated_at)`,
124
- "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",
145
+ `INSERT INTO ${TOPUP_TABLE} (topup_id, user_id, amount_microcredits, status, note, ref, metadata_json, created_at, updated_at)`,
146
+ "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)",
125
147
  ].join(" "), [
126
148
  topup.topup_id,
127
149
  topup.user_id,
128
- topup.amount,
129
- topup.unit,
150
+ topup.amount_microcredits,
130
151
  topup.status,
131
152
  topup.note,
132
153
  topup.ref,
@@ -161,7 +182,7 @@ export class BalanceService extends InstallableService {
161
182
  if (changed === 0) {
162
183
  throw httpError(409, "topup is no longer pending");
163
184
  }
164
- await this.applyDelta(current.user_id, current.amount, "topup", {
185
+ await this.applyDelta(current.user_id, current.amount_microcredits, "topup", {
165
186
  note: normalizeText(extra.note) || current.note || "topup",
166
187
  ref: normalizeText(extra.ref) || topup_id,
167
188
  meta: {
@@ -202,7 +223,7 @@ export class BalanceService extends InstallableService {
202
223
  * 创建一个新的 redeem_code。
203
224
  */
204
225
  async createRedeemCode(input) {
205
- const amount = normalizePositiveInteger(input.amount, "amount");
226
+ const amount = readAmountMicrocredits(input, "amount");
206
227
  const now = new Date().toISOString();
207
228
  const code = input.code ? normalizeRedeemCode(input.code) : generateRedeemCode();
208
229
  const codeHash = await hashRedeemCode(code);
@@ -211,8 +232,8 @@ export class BalanceService extends InstallableService {
211
232
  }
212
233
  const redeemCode = {
213
234
  redeem_code_id: `rc_${randomId()}`,
214
- amount,
215
- unit: this.unitName,
235
+ amount: microcreditsToCredits(amount),
236
+ amount_microcredits: amount,
216
237
  status: "active",
217
238
  code_mask: maskRedeemCode(code),
218
239
  note: normalizeText(input.note),
@@ -224,14 +245,13 @@ export class BalanceService extends InstallableService {
224
245
  updated_at: now,
225
246
  };
226
247
  await rawRun(this.resolveRaw(), [
227
- `INSERT INTO ${REDEEM_CODE_TABLE} (redeem_code_id, code_hash, code_mask, amount, unit, status, note, ref, metadata_json, redeemed_by_user_id, redeemed_at, created_at, updated_at)`,
228
- "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",
248
+ `INSERT INTO ${REDEEM_CODE_TABLE} (redeem_code_id, code_hash, code_mask, amount_microcredits, status, note, ref, metadata_json, redeemed_by_user_id, redeemed_at, created_at, updated_at)`,
249
+ "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",
229
250
  ].join(" "), [
230
251
  redeemCode.redeem_code_id,
231
252
  codeHash,
232
253
  redeemCode.code_mask,
233
- redeemCode.amount,
234
- redeemCode.unit,
254
+ redeemCode.amount_microcredits,
235
255
  redeemCode.status,
236
256
  redeemCode.note,
237
257
  redeemCode.ref,
@@ -280,7 +300,7 @@ export class BalanceService extends InstallableService {
280
300
  const latest = await this.readRedeemCodeRequired(current.redeem_code_id);
281
301
  throw httpError(409, `redeem_code is already ${latest.status}`);
282
302
  }
283
- const account = await this.applyDelta(normalizedUserId, current.amount, "redeem", {
303
+ const account = await this.applyDelta(normalizedUserId, current.amount_microcredits, "redeem", {
284
304
  note: normalizeText(extra.note) || current.note || "redeem_code",
285
305
  ref: normalizeText(extra.ref) || current.redeem_code_id,
286
306
  meta: {
@@ -326,7 +346,7 @@ export class BalanceService extends InstallableService {
326
346
  */
327
347
  async listUsers(limit) {
328
348
  const rows = await rawAll(this.resolveRaw(), [
329
- `SELECT user_id, balance, unit, created_at, updated_at FROM ${ACCOUNT_TABLE}`,
349
+ `SELECT user_id, balance_microcredits, created_at, updated_at FROM ${ACCOUNT_TABLE}`,
330
350
  "ORDER BY updated_at DESC",
331
351
  "LIMIT ?",
332
352
  ].join(" "), [normalizeLimit(limit)]);
@@ -344,7 +364,7 @@ export class BalanceService extends InstallableService {
344
364
  })()
345
365
  : "";
346
366
  const rows = await rawAll(this.resolveRaw(), [
347
- `SELECT entry_id, user_id, kind, amount, balance_after, unit, note, ref, metadata_json, created_at FROM ${LEDGER_TABLE}`,
367
+ `SELECT entry_id, user_id, kind, amount_microcredits, balance_after_microcredits, note, ref, metadata_json, created_at FROM ${LEDGER_TABLE}`,
348
368
  where,
349
369
  "ORDER BY created_at DESC, rowid DESC",
350
370
  "LIMIT ?",
@@ -363,7 +383,7 @@ export class BalanceService extends InstallableService {
363
383
  })()
364
384
  : "";
365
385
  const rows = await rawAll(this.resolveRaw(), [
366
- `SELECT topup_id, user_id, amount, unit, status, note, ref, metadata_json, created_at, updated_at FROM ${TOPUP_TABLE}`,
386
+ `SELECT topup_id, user_id, amount_microcredits, status, note, ref, metadata_json, created_at, updated_at FROM ${TOPUP_TABLE}`,
367
387
  where,
368
388
  "ORDER BY created_at DESC",
369
389
  "LIMIT ?",
@@ -387,7 +407,7 @@ export class BalanceService extends InstallableService {
387
407
  }
388
408
  const where = clauses.length > 0 ? `WHERE ${clauses.join(" AND ")}` : "";
389
409
  const rows = await rawAll(this.resolveRaw(), [
390
- `SELECT redeem_code_id, amount, unit, status, code_mask, note, ref, metadata_json, redeemed_by_user_id, redeemed_at, created_at, updated_at FROM ${REDEEM_CODE_TABLE}`,
410
+ `SELECT redeem_code_id, amount_microcredits, status, code_mask, note, ref, metadata_json, redeemed_by_user_id, redeemed_at, created_at, updated_at FROM ${REDEEM_CODE_TABLE}`,
391
411
  where,
392
412
  "ORDER BY created_at DESC",
393
413
  "LIMIT ?",
@@ -409,7 +429,7 @@ export class BalanceService extends InstallableService {
409
429
  if (delta > 0) {
410
430
  await rawRun(this.resolveRaw(), [
411
431
  `UPDATE ${ACCOUNT_TABLE}`,
412
- "SET balance = balance + ?, updated_at = ?",
432
+ "SET balance_microcredits = balance_microcredits + ?, updated_at = ?",
413
433
  "WHERE user_id = ?",
414
434
  ].join(" "), [delta, now, user_id]);
415
435
  }
@@ -417,12 +437,12 @@ export class BalanceService extends InstallableService {
417
437
  const spend = Math.abs(delta);
418
438
  const changed = await rawRun(this.resolveRaw(), [
419
439
  `UPDATE ${ACCOUNT_TABLE}`,
420
- "SET balance = balance - ?, updated_at = ?",
421
- "WHERE user_id = ? AND balance >= ?",
440
+ "SET balance_microcredits = balance_microcredits - ?, updated_at = ?",
441
+ "WHERE user_id = ? AND balance_microcredits >= ?",
422
442
  ].join(" "), [spend, now, user_id, spend]);
423
443
  if (changed === 0) {
424
444
  const current = await this.readAccountRequired(user_id);
425
- throw httpError(402, `insufficient balance: need ${spend}, current ${current.balance}`);
445
+ throw httpError(402, `insufficient balance: need ${spend} microcredits, current ${current.balance_microcredits} microcredits`);
426
446
  }
427
447
  }
428
448
  const account = await this.readAccountRequired(user_id);
@@ -430,9 +450,10 @@ export class BalanceService extends InstallableService {
430
450
  entry_id: `bal_${randomId()}`,
431
451
  user_id,
432
452
  kind,
433
- amount: delta,
453
+ amount: microcreditsToCredits(delta),
454
+ amount_microcredits: delta,
434
455
  balance_after: account.balance,
435
- unit: account.unit,
456
+ balance_after_microcredits: account.balance_microcredits,
436
457
  note: normalizeText(extra.note),
437
458
  ref: normalizeText(extra.ref),
438
459
  metadata_json: stringifyMeta(extra.meta),
@@ -446,17 +467,18 @@ export class BalanceService extends InstallableService {
446
467
  async ensureAccount(user_id) {
447
468
  const now = new Date().toISOString();
448
469
  const inserted = await rawRun(this.resolveRaw(), [
449
- `INSERT OR IGNORE INTO ${ACCOUNT_TABLE} (user_id, balance, unit, created_at, updated_at)`,
450
- "VALUES (?, ?, ?, ?, ?)",
451
- ].join(" "), [user_id, this.initAmount, this.unitName, now, now]);
452
- if (inserted > 0 && this.initAmount > 0) {
470
+ `INSERT OR IGNORE INTO ${ACCOUNT_TABLE} (user_id, balance_microcredits, created_at, updated_at)`,
471
+ "VALUES (?, ?, ?, ?)",
472
+ ].join(" "), [user_id, this.initMicrocredits, now, now]);
473
+ if (inserted > 0 && this.initMicrocredits > 0) {
453
474
  await this.insertLedger({
454
475
  entry_id: `bal_${randomId()}`,
455
476
  user_id,
456
477
  kind: "init",
457
- amount: this.initAmount,
458
- balance_after: this.initAmount,
459
- unit: this.unitName,
478
+ amount: microcreditsToCredits(this.initMicrocredits),
479
+ amount_microcredits: this.initMicrocredits,
480
+ balance_after: this.initMicrocredits,
481
+ balance_after_microcredits: this.initMicrocredits,
460
482
  note: "initial balance",
461
483
  ref: "",
462
484
  metadata_json: "{}",
@@ -469,7 +491,7 @@ export class BalanceService extends InstallableService {
469
491
  */
470
492
  async readAccountRequired(user_id) {
471
493
  const row = await rawFirst(this.resolveRaw(), [
472
- `SELECT user_id, balance, unit, created_at, updated_at FROM ${ACCOUNT_TABLE}`,
494
+ `SELECT user_id, balance_microcredits, created_at, updated_at FROM ${ACCOUNT_TABLE}`,
473
495
  "WHERE user_id = ?",
474
496
  ].join(" "), [user_id]);
475
497
  if (!row) {
@@ -482,7 +504,7 @@ export class BalanceService extends InstallableService {
482
504
  */
483
505
  async readTopupRequired(topup_id) {
484
506
  const row = await rawFirst(this.resolveRaw(), [
485
- `SELECT topup_id, user_id, amount, unit, status, note, ref, metadata_json, created_at, updated_at FROM ${TOPUP_TABLE}`,
507
+ `SELECT topup_id, user_id, amount_microcredits, status, note, ref, metadata_json, created_at, updated_at FROM ${TOPUP_TABLE}`,
486
508
  "WHERE topup_id = ?",
487
509
  ].join(" "), [readRequired(topup_id, "topup_id")]);
488
510
  if (!row) {
@@ -495,7 +517,7 @@ export class BalanceService extends InstallableService {
495
517
  */
496
518
  async readRedeemCodeRequired(redeem_code_id) {
497
519
  const row = await rawFirst(this.resolveRaw(), [
498
- `SELECT redeem_code_id, amount, unit, status, code_mask, note, ref, metadata_json, redeemed_by_user_id, redeemed_at, created_at, updated_at FROM ${REDEEM_CODE_TABLE}`,
520
+ `SELECT redeem_code_id, amount_microcredits, status, code_mask, note, ref, metadata_json, redeemed_by_user_id, redeemed_at, created_at, updated_at FROM ${REDEEM_CODE_TABLE}`,
499
521
  "WHERE redeem_code_id = ?",
500
522
  ].join(" "), [readRequired(redeem_code_id, "redeem_code_id")]);
501
523
  if (!row) {
@@ -508,7 +530,7 @@ export class BalanceService extends InstallableService {
508
530
  */
509
531
  async readRedeemCodeByHash(codeHash) {
510
532
  const row = await rawFirst(this.resolveRaw(), [
511
- `SELECT redeem_code_id, code_hash, amount, unit, status, code_mask, note, ref, metadata_json, redeemed_by_user_id, redeemed_at, created_at, updated_at FROM ${REDEEM_CODE_TABLE}`,
533
+ `SELECT redeem_code_id, code_hash, amount_microcredits, status, code_mask, note, ref, metadata_json, redeemed_by_user_id, redeemed_at, created_at, updated_at FROM ${REDEEM_CODE_TABLE}`,
512
534
  "WHERE code_hash = ?",
513
535
  ].join(" "), [readRequired(codeHash, "code_hash")]);
514
536
  return row
@@ -523,15 +545,14 @@ export class BalanceService extends InstallableService {
523
545
  */
524
546
  async insertLedger(entry) {
525
547
  await rawRun(this.resolveRaw(), [
526
- `INSERT INTO ${LEDGER_TABLE} (entry_id, user_id, kind, amount, balance_after, unit, note, ref, metadata_json, created_at)`,
527
- "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",
548
+ `INSERT INTO ${LEDGER_TABLE} (entry_id, user_id, kind, amount_microcredits, balance_after_microcredits, note, ref, metadata_json, created_at)`,
549
+ "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)",
528
550
  ].join(" "), [
529
551
  entry.entry_id,
530
552
  entry.user_id,
531
553
  entry.kind,
532
- entry.amount,
533
- entry.balance_after,
534
- entry.unit,
554
+ entry.amount_microcredits,
555
+ entry.balance_after_microcredits,
535
556
  entry.note,
536
557
  entry.ref,
537
558
  entry.metadata_json,
@@ -1 +1 @@
1
- {"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/balance/service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/balance/service.ts"],"names":[],"mappings":"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"}