@downcity/services 0.1.69 → 0.1.73

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 (46) hide show
  1. package/bin/balance/index.d.ts +2 -2
  2. package/bin/balance/index.d.ts.map +1 -1
  3. package/bin/balance/index.js +1 -1
  4. package/bin/balance/index.js.map +1 -1
  5. package/bin/balance/routes.d.ts.map +1 -1
  6. package/bin/balance/routes.js +36 -0
  7. package/bin/balance/routes.js.map +1 -1
  8. package/bin/balance/schema.d.ts +161 -0
  9. package/bin/balance/schema.d.ts.map +1 -1
  10. package/bin/balance/schema.js +38 -0
  11. package/bin/balance/schema.js.map +1 -1
  12. package/bin/balance/service.d.ts +171 -1
  13. package/bin/balance/service.d.ts.map +1 -1
  14. package/bin/balance/service.js +77 -5
  15. package/bin/balance/service.js.map +1 -1
  16. package/bin/balance/types.d.ts +81 -1
  17. package/bin/balance/types.d.ts.map +1 -1
  18. package/bin/balance/utils.d.ts +5 -1
  19. package/bin/balance/utils.d.ts.map +1 -1
  20. package/bin/balance/utils.js +17 -0
  21. package/bin/balance/utils.js.map +1 -1
  22. package/bin/index.d.ts +3 -5
  23. package/bin/index.d.ts.map +1 -1
  24. package/bin/index.js +2 -3
  25. package/bin/index.js.map +1 -1
  26. package/package.json +2 -2
  27. package/bin/billing/index.d.ts +0 -7
  28. package/bin/billing/index.d.ts.map +0 -1
  29. package/bin/billing/index.js +0 -6
  30. package/bin/billing/index.js.map +0 -1
  31. package/bin/billing/routes.d.ts +0 -14
  32. package/bin/billing/routes.d.ts.map +0 -1
  33. package/bin/billing/routes.js +0 -61
  34. package/bin/billing/routes.js.map +0 -1
  35. package/bin/billing/schema.d.ts +0 -582
  36. package/bin/billing/schema.d.ts.map +0 -1
  37. package/bin/billing/schema.js +0 -81
  38. package/bin/billing/schema.js.map +0 -1
  39. package/bin/billing/service.d.ts +0 -623
  40. package/bin/billing/service.d.ts.map +0 -1
  41. package/bin/billing/service.js +0 -486
  42. package/bin/billing/service.js.map +0 -1
  43. package/bin/billing/types.d.ts +0 -226
  44. package/bin/billing/types.d.ts.map +0 -1
  45. package/bin/billing/types.js +0 -10
  46. package/bin/billing/types.js.map +0 -1
@@ -2,8 +2,8 @@
2
2
  * balance 服务子模块公共入口。
3
3
  */
4
4
  export { BalanceService } from "./service.js";
5
- export { balanceAccounts, balanceLedger, balanceRedeemCodes, balanceTopups, } from "./schema.js";
6
- export type { BalanceAccount, BalanceCreditsConversion, BalanceCreateRedeemCodeInput, BalanceExtra, BalanceHistoryQuery, BalanceLedgerEntry, BalanceLedgerKind, BalanceServiceOptions, BalanceRedeemCode, BalanceRedeemCodeIssueResult, BalanceRedeemCodeQuery, BalanceRedeemCodeRedeemResult, BalanceRedeemCodeStatus, BalanceTopup, BalanceTopupQuery, BalanceTopupStatus, BalanceUserBalance, } from "./types.js";
5
+ export { balanceAccounts, balanceCharges, balanceLedger, balanceRedeemCodes, balanceTopups, } from "./schema.js";
6
+ export type { BalanceAccount, BalanceCharge, BalanceChargeInput, BalanceChargeQuery, BalanceChargeStatus, BalanceCreditsConversion, BalanceCreateRedeemCodeInput, BalanceExtra, BalanceHistoryQuery, BalanceLedgerEntry, BalanceLedgerKind, BalanceServiceOptions, BalanceRedeemCode, BalanceRedeemCodeIssueResult, BalanceRedeemCodeQuery, BalanceRedeemCodeRedeemResult, BalanceRedeemCodeStatus, BalanceTopup, BalanceTopupQuery, BalanceTopupStatus, BalanceUserBalance, } from "./types.js";
7
7
  export { CREDIT_DECIMAL_PLACES, MICROCREDITS_PER_CREDIT, } from "../types/Amount.js";
8
8
  export type { Credits, Microcredits, } from "../types/Amount.js";
9
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/balance/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EACL,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,aAAa,GACd,MAAM,aAAa,CAAC;AAErB,YAAY,EACV,cAAc,EACd,wBAAwB,EACxB,4BAA4B,EAC5B,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,iBAAiB,EACjB,4BAA4B,EAC5B,sBAAsB,EACtB,6BAA6B,EAC7B,uBAAuB,EACvB,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,OAAO,EACP,YAAY,GACb,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/balance/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EACL,eAAe,EACf,cAAc,EACd,aAAa,EACb,kBAAkB,EAClB,aAAa,GACd,MAAM,aAAa,CAAC;AAErB,YAAY,EACV,cAAc,EACd,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,wBAAwB,EACxB,4BAA4B,EAC5B,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,iBAAiB,EACjB,4BAA4B,EAC5B,sBAAsB,EACtB,6BAA6B,EAC7B,uBAAuB,EACvB,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,OAAO,EACP,YAAY,GACb,MAAM,oBAAoB,CAAC"}
@@ -2,6 +2,6 @@
2
2
  * balance 服务子模块公共入口。
3
3
  */
4
4
  export { BalanceService } from "./service.js";
5
- export { balanceAccounts, balanceLedger, balanceRedeemCodes, balanceTopups, } from "./schema.js";
5
+ export { balanceAccounts, balanceCharges, balanceLedger, balanceRedeemCodes, balanceTopups, } from "./schema.js";
6
6
  export { CREDIT_DECIMAL_PLACES, MICROCREDITS_PER_CREDIT, } from "../types/Amount.js";
7
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/balance/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EACL,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,aAAa,GACd,MAAM,aAAa,CAAC;AAsBrB,OAAO,EACL,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/balance/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EACL,eAAe,EACf,cAAc,EACd,aAAa,EACb,kBAAkB,EAClB,aAAa,GACd,MAAM,aAAa,CAAC;AA0BrB,OAAO,EACL,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,oBAAoB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/balance/routes.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAuB,MAAM,gBAAgB,CAAC;AACjF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAmEnD;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,EAAE,qBAAqB,GAAG,IAAI,CAoK/F"}
1
+ {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/balance/routes.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAuB,MAAM,gBAAgB,CAAC;AACjF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AA6EnD;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,EAAE,qBAAqB,GAAG,IAAI,CA2M/F"}
@@ -25,6 +25,17 @@ export function registerBalanceRoutes(service, ctx) {
25
25
  return c.jsonResponse({ items: await service.history(readUserId(c), input.limit) });
26
26
  },
27
27
  });
28
+ ctx.route({
29
+ method: "GET",
30
+ path: "/charges/me",
31
+ auth: ["user"],
32
+ handler: async (c) => {
33
+ const input = await c.json();
34
+ return c.jsonResponse({
35
+ items: await service.listCharges({ user_id: readUserId(c), limit: input.limit }),
36
+ });
37
+ },
38
+ });
28
39
  ctx.route({
29
40
  method: "GET",
30
41
  path: "/topups/me",
@@ -72,6 +83,15 @@ export function registerBalanceRoutes(service, ctx) {
72
83
  return c.jsonResponse({ items: await service.listHistory(input) });
73
84
  },
74
85
  });
86
+ ctx.route({
87
+ method: "GET",
88
+ path: "/charges",
89
+ auth: ["admin"],
90
+ handler: async (c) => {
91
+ const input = await c.json();
92
+ return c.jsonResponse({ items: await service.listCharges(input) });
93
+ },
94
+ });
75
95
  ctx.route({
76
96
  method: "GET",
77
97
  path: "/topups",
@@ -114,6 +134,22 @@ export function registerBalanceRoutes(service, ctx) {
114
134
  return c.jsonResponse(await service.sub(readRequired(body.user_id, "user_id"), Number(body.amount), body));
115
135
  },
116
136
  });
137
+ ctx.route({
138
+ method: "POST",
139
+ path: "/charge",
140
+ auth: ["admin"],
141
+ handler: async (c) => {
142
+ const body = await c.json();
143
+ return c.jsonResponse(await service.charge({
144
+ user_id: readRequired(body.user_id, "user_id"),
145
+ amount_microcredits: Number(body.amount_microcredits),
146
+ note: body.note,
147
+ ref: body.ref,
148
+ meta: body.meta,
149
+ metadata: body.metadata,
150
+ }));
151
+ },
152
+ });
117
153
  ctx.route({
118
154
  method: "POST",
119
155
  path: "/topups/finish",
@@ -1 +1 @@
1
- {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/balance/routes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/balance/routes.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,7 @@ export declare const ACCOUNT_TABLE = "service_balance_accounts";
9
9
  export declare const LEDGER_TABLE = "service_balance_ledger";
10
10
  export declare const TOPUP_TABLE = "service_balance_topups";
11
11
  export declare const REDEEM_CODE_TABLE = "service_balance_redeem_codes";
12
+ export declare const CHARGE_TABLE = "service_balance_charges";
12
13
  /**
13
14
  * SQLite 余额账户表。
14
15
  */
@@ -685,4 +686,164 @@ export declare const balanceRedeemCodes: import("drizzle-orm/sqlite-core").SQLit
685
686
  };
686
687
  dialect: "sqlite";
687
688
  }>;
689
+ /**
690
+ * SQLite 通用扣费记录表。
691
+ */
692
+ export declare const balanceCharges: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
693
+ name: "service_balance_charges";
694
+ schema: undefined;
695
+ columns: {
696
+ charge_id: import("drizzle-orm/sqlite-core").SQLiteColumn<{
697
+ name: "charge_id";
698
+ tableName: "service_balance_charges";
699
+ dataType: "string";
700
+ columnType: "SQLiteText";
701
+ data: string;
702
+ driverParam: string;
703
+ notNull: true;
704
+ hasDefault: false;
705
+ isPrimaryKey: true;
706
+ isAutoincrement: false;
707
+ hasRuntimeDefault: false;
708
+ enumValues: [string, ...string[]];
709
+ baseColumn: never;
710
+ identity: undefined;
711
+ generated: undefined;
712
+ }, {}, {
713
+ length: number | undefined;
714
+ }>;
715
+ user_id: import("drizzle-orm/sqlite-core").SQLiteColumn<{
716
+ name: "user_id";
717
+ tableName: "service_balance_charges";
718
+ dataType: "string";
719
+ columnType: "SQLiteText";
720
+ data: string;
721
+ driverParam: string;
722
+ notNull: true;
723
+ hasDefault: false;
724
+ isPrimaryKey: false;
725
+ isAutoincrement: false;
726
+ hasRuntimeDefault: false;
727
+ enumValues: [string, ...string[]];
728
+ baseColumn: never;
729
+ identity: undefined;
730
+ generated: undefined;
731
+ }, {}, {
732
+ length: number | undefined;
733
+ }>;
734
+ amount_microcredits: import("drizzle-orm/sqlite-core").SQLiteColumn<{
735
+ name: "amount_microcredits";
736
+ tableName: "service_balance_charges";
737
+ dataType: "number";
738
+ columnType: "SQLiteInteger";
739
+ data: number;
740
+ driverParam: number;
741
+ notNull: true;
742
+ hasDefault: false;
743
+ isPrimaryKey: false;
744
+ isAutoincrement: false;
745
+ hasRuntimeDefault: false;
746
+ enumValues: undefined;
747
+ baseColumn: never;
748
+ identity: undefined;
749
+ generated: undefined;
750
+ }, {}, {}>;
751
+ status: import("drizzle-orm/sqlite-core").SQLiteColumn<{
752
+ name: "status";
753
+ tableName: "service_balance_charges";
754
+ dataType: "string";
755
+ columnType: "SQLiteText";
756
+ data: string;
757
+ driverParam: string;
758
+ notNull: true;
759
+ hasDefault: false;
760
+ isPrimaryKey: false;
761
+ isAutoincrement: false;
762
+ hasRuntimeDefault: false;
763
+ enumValues: [string, ...string[]];
764
+ baseColumn: never;
765
+ identity: undefined;
766
+ generated: undefined;
767
+ }, {}, {
768
+ length: number | undefined;
769
+ }>;
770
+ note: import("drizzle-orm/sqlite-core").SQLiteColumn<{
771
+ name: "note";
772
+ tableName: "service_balance_charges";
773
+ dataType: "string";
774
+ columnType: "SQLiteText";
775
+ data: string;
776
+ driverParam: string;
777
+ notNull: true;
778
+ hasDefault: false;
779
+ isPrimaryKey: false;
780
+ isAutoincrement: false;
781
+ hasRuntimeDefault: false;
782
+ enumValues: [string, ...string[]];
783
+ baseColumn: never;
784
+ identity: undefined;
785
+ generated: undefined;
786
+ }, {}, {
787
+ length: number | undefined;
788
+ }>;
789
+ ref: import("drizzle-orm/sqlite-core").SQLiteColumn<{
790
+ name: "ref";
791
+ tableName: "service_balance_charges";
792
+ dataType: "string";
793
+ columnType: "SQLiteText";
794
+ data: string;
795
+ driverParam: string;
796
+ notNull: true;
797
+ hasDefault: false;
798
+ isPrimaryKey: false;
799
+ isAutoincrement: false;
800
+ hasRuntimeDefault: false;
801
+ enumValues: [string, ...string[]];
802
+ baseColumn: never;
803
+ identity: undefined;
804
+ generated: undefined;
805
+ }, {}, {
806
+ length: number | undefined;
807
+ }>;
808
+ metadata_json: import("drizzle-orm/sqlite-core").SQLiteColumn<{
809
+ name: "metadata_json";
810
+ tableName: "service_balance_charges";
811
+ dataType: "string";
812
+ columnType: "SQLiteText";
813
+ data: string;
814
+ driverParam: string;
815
+ notNull: true;
816
+ hasDefault: false;
817
+ isPrimaryKey: false;
818
+ isAutoincrement: false;
819
+ hasRuntimeDefault: false;
820
+ enumValues: [string, ...string[]];
821
+ baseColumn: never;
822
+ identity: undefined;
823
+ generated: undefined;
824
+ }, {}, {
825
+ length: number | undefined;
826
+ }>;
827
+ created_at: import("drizzle-orm/sqlite-core").SQLiteColumn<{
828
+ name: "created_at";
829
+ tableName: "service_balance_charges";
830
+ dataType: "string";
831
+ columnType: "SQLiteText";
832
+ data: string;
833
+ driverParam: string;
834
+ notNull: true;
835
+ hasDefault: false;
836
+ isPrimaryKey: false;
837
+ isAutoincrement: false;
838
+ hasRuntimeDefault: false;
839
+ enumValues: [string, ...string[]];
840
+ baseColumn: never;
841
+ identity: undefined;
842
+ generated: undefined;
843
+ }, {}, {
844
+ length: number | undefined;
845
+ }>;
846
+ };
847
+ dialect: "sqlite";
848
+ }>;
688
849
  //# sourceMappingURL=schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/balance/schema.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,eAAO,MAAM,aAAa,6BAA6B,CAAC;AACxD,eAAO,MAAM,YAAY,2BAA2B,CAAC;AACrD,eAAO,MAAM,WAAW,2BAA2B,CAAC;AACpD,eAAO,MAAM,iBAAiB,iCAAiC,CAAC;AAEhE;;GAEG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoB1B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6CxB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6CxB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4D7B,CAAC"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/balance/schema.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,eAAO,MAAM,aAAa,6BAA6B,CAAC;AACxD,eAAO,MAAM,YAAY,2BAA2B,CAAC;AACrD,eAAO,MAAM,WAAW,2BAA2B,CAAC;AACpD,eAAO,MAAM,iBAAiB,iCAAiC,CAAC;AAChE,eAAO,MAAM,YAAY,4BAA4B,CAAC;AAEtD;;GAEG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoB1B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6CxB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6CxB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4D7B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwCzB,CAAC"}
@@ -10,6 +10,7 @@ export const ACCOUNT_TABLE = "service_balance_accounts";
10
10
  export const LEDGER_TABLE = "service_balance_ledger";
11
11
  export const TOPUP_TABLE = "service_balance_topups";
12
12
  export const REDEEM_CODE_TABLE = "service_balance_redeem_codes";
13
+ export const CHARGE_TABLE = "service_balance_charges";
13
14
  /**
14
15
  * SQLite 余额账户表。
15
16
  */
@@ -166,4 +167,41 @@ export const balanceRedeemCodes = sqliteTable(REDEEM_CODE_TABLE, {
166
167
  */
167
168
  updated_at: text("updated_at").notNull(),
168
169
  });
170
+ /**
171
+ * SQLite 通用扣费记录表。
172
+ */
173
+ export const balanceCharges = sqliteTable(CHARGE_TABLE, {
174
+ /**
175
+ * 扣费记录 ID。
176
+ */
177
+ charge_id: text("charge_id").primaryKey(),
178
+ /**
179
+ * 用户 ID。
180
+ */
181
+ user_id: text("user_id").notNull(),
182
+ /**
183
+ * 扣费金额,单位为 microcredits。
184
+ */
185
+ amount_microcredits: integer("amount_microcredits").notNull(),
186
+ /**
187
+ * 扣费状态。
188
+ */
189
+ status: text("status").notNull(),
190
+ /**
191
+ * 可读说明。
192
+ */
193
+ note: text("note").notNull(),
194
+ /**
195
+ * 外部引用 ID。
196
+ */
197
+ ref: text("ref").notNull(),
198
+ /**
199
+ * 扩展字段 JSON。
200
+ */
201
+ metadata_json: text("metadata_json").notNull(),
202
+ /**
203
+ * 创建时间。
204
+ */
205
+ created_at: text("created_at").notNull(),
206
+ });
169
207
  //# sourceMappingURL=schema.js.map
@@ -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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"}
@@ -7,7 +7,7 @@
7
7
  * - 真正的计费策略应由业务方在 hook 中直接调用本服务
8
8
  */
9
9
  import { InstallableService, type ServiceInstallContext } from "@downcity/city";
10
- import type { BalanceAccount, BalanceCreateRedeemCodeInput, BalanceExtra, BalanceHistoryQuery, BalanceLedgerEntry, BalanceServiceOptions, BalanceRedeemCode, BalanceRedeemCodeIssueResult, BalanceRedeemCodeQuery, BalanceRedeemCodeRedeemResult, BalanceTopup, BalanceTopupQuery } from "./types.js";
10
+ import type { BalanceAccount, BalanceCharge, BalanceChargeInput, BalanceChargeQuery, BalanceCreateRedeemCodeInput, BalanceExtra, BalanceHistoryQuery, BalanceLedgerEntry, BalanceServiceOptions, BalanceRedeemCode, BalanceRedeemCodeIssueResult, BalanceRedeemCodeQuery, BalanceRedeemCodeRedeemResult, BalanceTopup, BalanceTopupQuery } from "./types.js";
11
11
  /**
12
12
  * Balance 服务实例。
13
13
  *
@@ -682,6 +682,163 @@ export declare class BalanceService extends InstallableService {
682
682
  };
683
683
  dialect: "sqlite";
684
684
  }>;
685
+ charges: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
686
+ name: "service_balance_charges";
687
+ schema: undefined;
688
+ columns: {
689
+ charge_id: import("drizzle-orm/sqlite-core").SQLiteColumn<{
690
+ name: "charge_id";
691
+ tableName: "service_balance_charges";
692
+ dataType: "string";
693
+ columnType: "SQLiteText";
694
+ data: string;
695
+ driverParam: string;
696
+ notNull: true;
697
+ hasDefault: false;
698
+ isPrimaryKey: true;
699
+ isAutoincrement: false;
700
+ hasRuntimeDefault: false;
701
+ enumValues: [string, ...string[]];
702
+ baseColumn: never;
703
+ identity: undefined;
704
+ generated: undefined;
705
+ }, {}, {
706
+ length: number | undefined;
707
+ }>;
708
+ user_id: import("drizzle-orm/sqlite-core").SQLiteColumn<{
709
+ name: "user_id";
710
+ tableName: "service_balance_charges";
711
+ dataType: "string";
712
+ columnType: "SQLiteText";
713
+ data: string;
714
+ driverParam: string;
715
+ notNull: true;
716
+ hasDefault: false;
717
+ isPrimaryKey: false;
718
+ isAutoincrement: false;
719
+ hasRuntimeDefault: false;
720
+ enumValues: [string, ...string[]];
721
+ baseColumn: never;
722
+ identity: undefined;
723
+ generated: undefined;
724
+ }, {}, {
725
+ length: number | undefined;
726
+ }>;
727
+ amount_microcredits: import("drizzle-orm/sqlite-core").SQLiteColumn<{
728
+ name: "amount_microcredits";
729
+ tableName: "service_balance_charges";
730
+ dataType: "number";
731
+ columnType: "SQLiteInteger";
732
+ data: number;
733
+ driverParam: number;
734
+ notNull: true;
735
+ hasDefault: false;
736
+ isPrimaryKey: false;
737
+ isAutoincrement: false;
738
+ hasRuntimeDefault: false;
739
+ enumValues: undefined;
740
+ baseColumn: never;
741
+ identity: undefined;
742
+ generated: undefined;
743
+ }, {}, {}>;
744
+ status: import("drizzle-orm/sqlite-core").SQLiteColumn<{
745
+ name: "status";
746
+ tableName: "service_balance_charges";
747
+ dataType: "string";
748
+ columnType: "SQLiteText";
749
+ data: string;
750
+ driverParam: string;
751
+ notNull: true;
752
+ hasDefault: false;
753
+ isPrimaryKey: false;
754
+ isAutoincrement: false;
755
+ hasRuntimeDefault: false;
756
+ enumValues: [string, ...string[]];
757
+ baseColumn: never;
758
+ identity: undefined;
759
+ generated: undefined;
760
+ }, {}, {
761
+ length: number | undefined;
762
+ }>;
763
+ note: import("drizzle-orm/sqlite-core").SQLiteColumn<{
764
+ name: "note";
765
+ tableName: "service_balance_charges";
766
+ dataType: "string";
767
+ columnType: "SQLiteText";
768
+ data: string;
769
+ driverParam: string;
770
+ notNull: true;
771
+ hasDefault: false;
772
+ isPrimaryKey: false;
773
+ isAutoincrement: false;
774
+ hasRuntimeDefault: false;
775
+ enumValues: [string, ...string[]];
776
+ baseColumn: never;
777
+ identity: undefined;
778
+ generated: undefined;
779
+ }, {}, {
780
+ length: number | undefined;
781
+ }>;
782
+ ref: import("drizzle-orm/sqlite-core").SQLiteColumn<{
783
+ name: "ref";
784
+ tableName: "service_balance_charges";
785
+ dataType: "string";
786
+ columnType: "SQLiteText";
787
+ data: string;
788
+ driverParam: string;
789
+ notNull: true;
790
+ hasDefault: false;
791
+ isPrimaryKey: false;
792
+ isAutoincrement: false;
793
+ hasRuntimeDefault: false;
794
+ enumValues: [string, ...string[]];
795
+ baseColumn: never;
796
+ identity: undefined;
797
+ generated: undefined;
798
+ }, {}, {
799
+ length: number | undefined;
800
+ }>;
801
+ metadata_json: import("drizzle-orm/sqlite-core").SQLiteColumn<{
802
+ name: "metadata_json";
803
+ tableName: "service_balance_charges";
804
+ dataType: "string";
805
+ columnType: "SQLiteText";
806
+ data: string;
807
+ driverParam: string;
808
+ notNull: true;
809
+ hasDefault: false;
810
+ isPrimaryKey: false;
811
+ isAutoincrement: false;
812
+ hasRuntimeDefault: false;
813
+ enumValues: [string, ...string[]];
814
+ baseColumn: never;
815
+ identity: undefined;
816
+ generated: undefined;
817
+ }, {}, {
818
+ length: number | undefined;
819
+ }>;
820
+ created_at: import("drizzle-orm/sqlite-core").SQLiteColumn<{
821
+ name: "created_at";
822
+ tableName: "service_balance_charges";
823
+ dataType: "string";
824
+ columnType: "SQLiteText";
825
+ data: string;
826
+ driverParam: string;
827
+ notNull: true;
828
+ hasDefault: false;
829
+ isPrimaryKey: false;
830
+ isAutoincrement: false;
831
+ hasRuntimeDefault: false;
832
+ enumValues: [string, ...string[]];
833
+ baseColumn: never;
834
+ identity: undefined;
835
+ generated: undefined;
836
+ }, {}, {
837
+ length: number | undefined;
838
+ }>;
839
+ };
840
+ dialect: "sqlite";
841
+ }>;
685
842
  };
686
843
  private readonly initMicrocredits;
687
844
  constructor(options?: BalanceServiceOptions);
@@ -718,6 +875,15 @@ export declare class BalanceService extends InstallableService {
718
875
  * 给用户扣余额,入参单位为 microcredits。
719
876
  */
720
877
  subMicrocredits(user_id: string, amount_microcredits: number, extra?: BalanceExtra): Promise<BalanceAccount>;
878
+ /**
879
+ * 执行一笔通用扣费,并写入扣费记录与余额流水。
880
+ *
881
+ * 关键说明(中文)
882
+ * - BalanceService 不理解 AI、订单、插件等业务语义
883
+ * - 业务侧应该先自行计算扣费金额,再把审计字段放入 metadata
884
+ * - 扣款失败时抛出 402,不会写入 charge 记录
885
+ */
886
+ charge(input: BalanceChargeInput): Promise<BalanceCharge>;
721
887
  /**
722
888
  * 查询某个用户的流水。
723
889
  */
@@ -772,6 +938,10 @@ export declare class BalanceService extends InstallableService {
772
938
  * 列出 redeem_code。
773
939
  */
774
940
  listRedeemCodes(query?: BalanceRedeemCodeQuery): Promise<BalanceRedeemCode[]>;
941
+ /**
942
+ * 列出通用扣费记录。
943
+ */
944
+ listCharges(query?: BalanceChargeQuery): Promise<BalanceCharge[]>;
775
945
  /**
776
946
  * 关键说明(中文)
777
947
  * - 正数表示加款,负数表示扣款
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/balance/service.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,kBAAkB,EAElB,KAAK,qBAAqB,EAC3B,MAAM,gBAAgB,CAAC;AAaxB,OAAO,KAAK,EACV,cAAc,EACd,4BAA4B,EAC5B,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,EAElB,qBAAqB,EACrB,iBAAiB,EACjB,4BAA4B,EAC5B,sBAAsB,EACtB,6BAA6B,EAC7B,YAAY,EACZ,iBAAiB,EAClB,MAAM,YAAY,CAAC;AAkCpB;;;;GAIG;AACH,qBAAa,cAAe,SAAQ,kBAAkB;IACpD,QAAQ,CAAC,EAAE,aAAa;IACxB,QAAQ,CAAC,IAAI,aAAa;IAC1B,QAAQ,CAAC,OAAO,WAAW;IAC3B,QAAQ,CAAC,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAKb;IAEF,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;gBAE9B,OAAO,GAAE,qBAA0B;IAe/C,OAAO,CAAC,GAAG,EAAE,qBAAqB,GAAG,IAAI;IAIzC;;;;OAIG;IACG,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAMpD;;;;OAIG;IACG,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAIvE;;OAEG;IACG,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAYhG;;OAEG;IACG,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,GAAE,YAAiB,GAAG,OAAO,CAAC,cAAc,CAAC;IAI7F;;OAEG;IACG,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,KAAK,GAAE,YAAiB,GAAG,OAAO,CAAC,cAAc,CAAC;IAItH;;OAEG;IACG,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,GAAE,YAAiB,GAAG,OAAO,CAAC,cAAc,CAAC;IAI7F;;OAEG;IACG,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,KAAK,GAAE,YAAiB,GAAG,OAAO,CAAC,cAAc,CAAC;IAItH;;OAEG;IACG,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAOtF;;;;;;OAMG;IACG,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAIxD;;;;OAIG;IACG,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,GAAE,YAAiB,GAAG,OAAO,CAAC,YAAY,CAAC;IAoC/G;;OAEG;IACG,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,GAAE,YAAiB,GAAG,OAAO,CAAC,YAAY,CAAC;IAsCpF;;OAEG;IACG,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,GAAE,YAAiB,GAAG,OAAO,CAAC,YAAY,CAAC;IA2BpF;;OAEG;IACG,gBAAgB,CAAC,KAAK,EAAE,4BAA4B,GAAG,OAAO,CAAC,4BAA4B,CAAC;IAgDlG;;OAEG;IACG,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,GAAE,YAAiB,GAAG,OAAO,CAAC,6BAA6B,CAAC;IAqDlH;;OAEG;IACG,iBAAiB,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,GAAE,YAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA2BrG;;OAEG;IACG,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IASnE;;OAEG;IACG,WAAW,CAAC,KAAK,GAAE,mBAAwB,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAkBjF;;OAEG;IACG,UAAU,CAAC,KAAK,GAAE,iBAAsB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAkBxE;;OAEG;IACG,eAAe,CAAC,KAAK,GAAE,sBAA2B,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAyBvF;;;;;OAKG;YACW,UAAU;IAgDxB;;OAEG;YACW,aAAa;IAsB3B;;OAEG;YACW,mBAAmB;IAajC;;OAEG;YACW,iBAAiB;IAa/B;;OAEG;YACW,sBAAsB;IAapC;;OAEG;YACW,oBAAoB;IAclC;;OAEG;YACW,YAAY;IAiB1B;;OAEG;IACH,OAAO,CAAC,UAAU;CAMnB"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/balance/service.ts"],"names":[],"mappings":"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"}