@downcity/services 0.1.48 → 0.1.50

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.
@@ -0,0 +1,378 @@
1
+ /**
2
+ * Creem 一次性充值服务数据库 schema。
3
+ *
4
+ * 关键说明(中文)
5
+ * - 本服务只管理 Creem 支付侧事实,不直接维护余额账本
6
+ * - 真正的钱包账户、充值单与流水仍然由 balance 服务负责
7
+ * - 这里的表只负责记录 Creem 支付映射与 webhook 事件
8
+ */
9
+ /**
10
+ * Creem 支付记录表。
11
+ *
12
+ * 关键说明(中文)
13
+ * - 一条记录对应一次 topup 的 Creem 支付尝试
14
+ * - `topup_id` 连接 balance 服务里的充值单
15
+ * - `checkout_url` 允许前端重试取回已创建的 Checkout 链接
16
+ */
17
+ export declare const creemPayments: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
18
+ name: "service_creem_payments";
19
+ schema: undefined;
20
+ columns: {
21
+ payment_id: import("drizzle-orm/sqlite-core").SQLiteColumn<{
22
+ name: "payment_id";
23
+ tableName: "service_creem_payments";
24
+ dataType: "string";
25
+ columnType: "SQLiteText";
26
+ data: string;
27
+ driverParam: string;
28
+ notNull: true;
29
+ hasDefault: false;
30
+ isPrimaryKey: true;
31
+ isAutoincrement: false;
32
+ hasRuntimeDefault: false;
33
+ enumValues: [string, ...string[]];
34
+ baseColumn: never;
35
+ identity: undefined;
36
+ generated: undefined;
37
+ }, {}, {
38
+ length: number | undefined;
39
+ }>;
40
+ topup_id: import("drizzle-orm/sqlite-core").SQLiteColumn<{
41
+ name: "topup_id";
42
+ tableName: "service_creem_payments";
43
+ dataType: "string";
44
+ columnType: "SQLiteText";
45
+ data: string;
46
+ driverParam: string;
47
+ notNull: true;
48
+ hasDefault: false;
49
+ isPrimaryKey: false;
50
+ isAutoincrement: false;
51
+ hasRuntimeDefault: false;
52
+ enumValues: [string, ...string[]];
53
+ baseColumn: never;
54
+ identity: undefined;
55
+ generated: undefined;
56
+ }, {}, {
57
+ length: number | undefined;
58
+ }>;
59
+ user_id: import("drizzle-orm/sqlite-core").SQLiteColumn<{
60
+ name: "user_id";
61
+ tableName: "service_creem_payments";
62
+ dataType: "string";
63
+ columnType: "SQLiteText";
64
+ data: string;
65
+ driverParam: string;
66
+ notNull: true;
67
+ hasDefault: false;
68
+ isPrimaryKey: false;
69
+ isAutoincrement: false;
70
+ hasRuntimeDefault: false;
71
+ enumValues: [string, ...string[]];
72
+ baseColumn: never;
73
+ identity: undefined;
74
+ generated: undefined;
75
+ }, {}, {
76
+ length: number | undefined;
77
+ }>;
78
+ creem_checkout_id: import("drizzle-orm/sqlite-core").SQLiteColumn<{
79
+ name: "creem_checkout_id";
80
+ tableName: "service_creem_payments";
81
+ dataType: "string";
82
+ columnType: "SQLiteText";
83
+ data: string;
84
+ driverParam: string;
85
+ notNull: true;
86
+ hasDefault: false;
87
+ isPrimaryKey: false;
88
+ isAutoincrement: false;
89
+ hasRuntimeDefault: false;
90
+ enumValues: [string, ...string[]];
91
+ baseColumn: never;
92
+ identity: undefined;
93
+ generated: undefined;
94
+ }, {}, {
95
+ length: number | undefined;
96
+ }>;
97
+ creem_order_id: import("drizzle-orm/sqlite-core").SQLiteColumn<{
98
+ name: "creem_order_id";
99
+ tableName: "service_creem_payments";
100
+ dataType: "string";
101
+ columnType: "SQLiteText";
102
+ data: string;
103
+ driverParam: string;
104
+ notNull: true;
105
+ hasDefault: false;
106
+ isPrimaryKey: false;
107
+ isAutoincrement: false;
108
+ hasRuntimeDefault: false;
109
+ enumValues: [string, ...string[]];
110
+ baseColumn: never;
111
+ identity: undefined;
112
+ generated: undefined;
113
+ }, {}, {
114
+ length: number | undefined;
115
+ }>;
116
+ amount: import("drizzle-orm/sqlite-core").SQLiteColumn<{
117
+ name: "amount";
118
+ tableName: "service_creem_payments";
119
+ dataType: "number";
120
+ columnType: "SQLiteInteger";
121
+ data: number;
122
+ driverParam: number;
123
+ notNull: true;
124
+ hasDefault: false;
125
+ isPrimaryKey: false;
126
+ isAutoincrement: false;
127
+ hasRuntimeDefault: false;
128
+ enumValues: undefined;
129
+ baseColumn: never;
130
+ identity: undefined;
131
+ generated: undefined;
132
+ }, {}, {}>;
133
+ currency: import("drizzle-orm/sqlite-core").SQLiteColumn<{
134
+ name: "currency";
135
+ tableName: "service_creem_payments";
136
+ dataType: "string";
137
+ columnType: "SQLiteText";
138
+ data: string;
139
+ driverParam: string;
140
+ notNull: true;
141
+ hasDefault: false;
142
+ isPrimaryKey: false;
143
+ isAutoincrement: false;
144
+ hasRuntimeDefault: false;
145
+ enumValues: [string, ...string[]];
146
+ baseColumn: never;
147
+ identity: undefined;
148
+ generated: undefined;
149
+ }, {}, {
150
+ length: number | undefined;
151
+ }>;
152
+ status: import("drizzle-orm/sqlite-core").SQLiteColumn<{
153
+ name: "status";
154
+ tableName: "service_creem_payments";
155
+ dataType: "string";
156
+ columnType: "SQLiteText";
157
+ data: string;
158
+ driverParam: string;
159
+ notNull: true;
160
+ hasDefault: false;
161
+ isPrimaryKey: false;
162
+ isAutoincrement: false;
163
+ hasRuntimeDefault: false;
164
+ enumValues: [string, ...string[]];
165
+ baseColumn: never;
166
+ identity: undefined;
167
+ generated: undefined;
168
+ }, {}, {
169
+ length: number | undefined;
170
+ }>;
171
+ checkout_url: import("drizzle-orm/sqlite-core").SQLiteColumn<{
172
+ name: "checkout_url";
173
+ tableName: "service_creem_payments";
174
+ dataType: "string";
175
+ columnType: "SQLiteText";
176
+ data: string;
177
+ driverParam: string;
178
+ notNull: true;
179
+ hasDefault: false;
180
+ isPrimaryKey: false;
181
+ isAutoincrement: false;
182
+ hasRuntimeDefault: false;
183
+ enumValues: [string, ...string[]];
184
+ baseColumn: never;
185
+ identity: undefined;
186
+ generated: undefined;
187
+ }, {}, {
188
+ length: number | undefined;
189
+ }>;
190
+ metadata_json: import("drizzle-orm/sqlite-core").SQLiteColumn<{
191
+ name: "metadata_json";
192
+ tableName: "service_creem_payments";
193
+ dataType: "string";
194
+ columnType: "SQLiteText";
195
+ data: string;
196
+ driverParam: string;
197
+ notNull: true;
198
+ hasDefault: false;
199
+ isPrimaryKey: false;
200
+ isAutoincrement: false;
201
+ hasRuntimeDefault: false;
202
+ enumValues: [string, ...string[]];
203
+ baseColumn: never;
204
+ identity: undefined;
205
+ generated: undefined;
206
+ }, {}, {
207
+ length: number | undefined;
208
+ }>;
209
+ created_at: import("drizzle-orm/sqlite-core").SQLiteColumn<{
210
+ name: "created_at";
211
+ tableName: "service_creem_payments";
212
+ dataType: "string";
213
+ columnType: "SQLiteText";
214
+ data: string;
215
+ driverParam: string;
216
+ notNull: true;
217
+ hasDefault: false;
218
+ isPrimaryKey: false;
219
+ isAutoincrement: false;
220
+ hasRuntimeDefault: false;
221
+ enumValues: [string, ...string[]];
222
+ baseColumn: never;
223
+ identity: undefined;
224
+ generated: undefined;
225
+ }, {}, {
226
+ length: number | undefined;
227
+ }>;
228
+ updated_at: import("drizzle-orm/sqlite-core").SQLiteColumn<{
229
+ name: "updated_at";
230
+ tableName: "service_creem_payments";
231
+ dataType: "string";
232
+ columnType: "SQLiteText";
233
+ data: string;
234
+ driverParam: string;
235
+ notNull: true;
236
+ hasDefault: false;
237
+ isPrimaryKey: false;
238
+ isAutoincrement: false;
239
+ hasRuntimeDefault: false;
240
+ enumValues: [string, ...string[]];
241
+ baseColumn: never;
242
+ identity: undefined;
243
+ generated: undefined;
244
+ }, {}, {
245
+ length: number | undefined;
246
+ }>;
247
+ };
248
+ dialect: "sqlite";
249
+ }>;
250
+ /**
251
+ * Creem webhook 事件表。
252
+ *
253
+ * 关键说明(中文)
254
+ * - `event_id` 作为 webhook 幂等键
255
+ * - `sync_status` 用于区分已应用、忽略和失败的事件
256
+ */
257
+ export declare const creemEvents: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
258
+ name: "service_creem_events";
259
+ schema: undefined;
260
+ columns: {
261
+ event_id: import("drizzle-orm/sqlite-core").SQLiteColumn<{
262
+ name: "event_id";
263
+ tableName: "service_creem_events";
264
+ dataType: "string";
265
+ columnType: "SQLiteText";
266
+ data: string;
267
+ driverParam: string;
268
+ notNull: true;
269
+ hasDefault: false;
270
+ isPrimaryKey: true;
271
+ isAutoincrement: false;
272
+ hasRuntimeDefault: false;
273
+ enumValues: [string, ...string[]];
274
+ baseColumn: never;
275
+ identity: undefined;
276
+ generated: undefined;
277
+ }, {}, {
278
+ length: number | undefined;
279
+ }>;
280
+ type: import("drizzle-orm/sqlite-core").SQLiteColumn<{
281
+ name: "type";
282
+ tableName: "service_creem_events";
283
+ dataType: "string";
284
+ columnType: "SQLiteText";
285
+ data: string;
286
+ driverParam: string;
287
+ notNull: true;
288
+ hasDefault: false;
289
+ isPrimaryKey: false;
290
+ isAutoincrement: false;
291
+ hasRuntimeDefault: false;
292
+ enumValues: [string, ...string[]];
293
+ baseColumn: never;
294
+ identity: undefined;
295
+ generated: undefined;
296
+ }, {}, {
297
+ length: number | undefined;
298
+ }>;
299
+ payload_json: import("drizzle-orm/sqlite-core").SQLiteColumn<{
300
+ name: "payload_json";
301
+ tableName: "service_creem_events";
302
+ dataType: "string";
303
+ columnType: "SQLiteText";
304
+ data: string;
305
+ driverParam: string;
306
+ notNull: true;
307
+ hasDefault: false;
308
+ isPrimaryKey: false;
309
+ isAutoincrement: false;
310
+ hasRuntimeDefault: false;
311
+ enumValues: [string, ...string[]];
312
+ baseColumn: never;
313
+ identity: undefined;
314
+ generated: undefined;
315
+ }, {}, {
316
+ length: number | undefined;
317
+ }>;
318
+ sync_status: import("drizzle-orm/sqlite-core").SQLiteColumn<{
319
+ name: "sync_status";
320
+ tableName: "service_creem_events";
321
+ dataType: "string";
322
+ columnType: "SQLiteText";
323
+ data: string;
324
+ driverParam: string;
325
+ notNull: true;
326
+ hasDefault: false;
327
+ isPrimaryKey: false;
328
+ isAutoincrement: false;
329
+ hasRuntimeDefault: false;
330
+ enumValues: [string, ...string[]];
331
+ baseColumn: never;
332
+ identity: undefined;
333
+ generated: undefined;
334
+ }, {}, {
335
+ length: number | undefined;
336
+ }>;
337
+ sync_error: import("drizzle-orm/sqlite-core").SQLiteColumn<{
338
+ name: "sync_error";
339
+ tableName: "service_creem_events";
340
+ dataType: "string";
341
+ columnType: "SQLiteText";
342
+ data: string;
343
+ driverParam: string;
344
+ notNull: true;
345
+ hasDefault: false;
346
+ isPrimaryKey: false;
347
+ isAutoincrement: false;
348
+ hasRuntimeDefault: false;
349
+ enumValues: [string, ...string[]];
350
+ baseColumn: never;
351
+ identity: undefined;
352
+ generated: undefined;
353
+ }, {}, {
354
+ length: number | undefined;
355
+ }>;
356
+ created_at: import("drizzle-orm/sqlite-core").SQLiteColumn<{
357
+ name: "created_at";
358
+ tableName: "service_creem_events";
359
+ dataType: "string";
360
+ columnType: "SQLiteText";
361
+ data: string;
362
+ driverParam: string;
363
+ notNull: true;
364
+ hasDefault: false;
365
+ isPrimaryKey: false;
366
+ isAutoincrement: false;
367
+ hasRuntimeDefault: false;
368
+ enumValues: [string, ...string[]];
369
+ baseColumn: never;
370
+ identity: undefined;
371
+ generated: undefined;
372
+ }, {}, {
373
+ length: number | undefined;
374
+ }>;
375
+ };
376
+ dialect: "sqlite";
377
+ }>;
378
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/payment-creem/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAaxB,CAAC;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAOtB,CAAC"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Creem 一次性充值服务数据库 schema。
3
+ *
4
+ * 关键说明(中文)
5
+ * - 本服务只管理 Creem 支付侧事实,不直接维护余额账本
6
+ * - 真正的钱包账户、充值单与流水仍然由 balance 服务负责
7
+ * - 这里的表只负责记录 Creem 支付映射与 webhook 事件
8
+ */
9
+ import { integer, sqliteTable, text } from "drizzle-orm/sqlite-core";
10
+ /**
11
+ * Creem 支付记录表。
12
+ *
13
+ * 关键说明(中文)
14
+ * - 一条记录对应一次 topup 的 Creem 支付尝试
15
+ * - `topup_id` 连接 balance 服务里的充值单
16
+ * - `checkout_url` 允许前端重试取回已创建的 Checkout 链接
17
+ */
18
+ export const creemPayments = sqliteTable("service_creem_payments", {
19
+ payment_id: text("payment_id").primaryKey(),
20
+ topup_id: text("topup_id").notNull(),
21
+ user_id: text("user_id").notNull(),
22
+ creem_checkout_id: text("creem_checkout_id").notNull(),
23
+ creem_order_id: text("creem_order_id").notNull(),
24
+ amount: integer("amount").notNull(),
25
+ currency: text("currency").notNull(),
26
+ status: text("status").notNull(),
27
+ checkout_url: text("checkout_url").notNull(),
28
+ metadata_json: text("metadata_json").notNull(),
29
+ created_at: text("created_at").notNull(),
30
+ updated_at: text("updated_at").notNull(),
31
+ });
32
+ /**
33
+ * Creem webhook 事件表。
34
+ *
35
+ * 关键说明(中文)
36
+ * - `event_id` 作为 webhook 幂等键
37
+ * - `sync_status` 用于区分已应用、忽略和失败的事件
38
+ */
39
+ export const creemEvents = sqliteTable("service_creem_events", {
40
+ event_id: text("event_id").primaryKey(),
41
+ type: text("type").notNull(),
42
+ payload_json: text("payload_json").notNull(),
43
+ sync_status: text("sync_status").notNull(),
44
+ sync_error: text("sync_error").notNull(),
45
+ created_at: text("created_at").notNull(),
46
+ });
47
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/payment-creem/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAErE;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,WAAW,CAAC,wBAAwB,EAAE;IACjE,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,UAAU,EAAE;IAC3C,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE;IACpC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE;IAClC,iBAAiB,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC,OAAO,EAAE;IACtD,cAAc,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,OAAO,EAAE;IAChD,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE;IACnC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE;IACpC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE;IAChC,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,OAAO,EAAE;IAC5C,aAAa,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,OAAO,EAAE;IAC9C,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE;IACxC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE;CACzC,CAAC,CAAC;AAEH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,WAAW,CAAC,sBAAsB,EAAE;IAC7D,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,UAAU,EAAE;IACvC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE;IAC5B,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,OAAO,EAAE;IAC5C,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,EAAE;IAC1C,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE;IACxC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE;CACzC,CAAC,CAAC"}