@r2wa-org/eden 0.0.68 → 0.0.70

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.
@@ -1277,6 +1277,8 @@ export declare const adminRouter: Elysia<"/admin", {
1277
1277
  body: {
1278
1278
  description?: string | null | undefined;
1279
1279
  status?: "active" | "draft" | "paused" | "ended" | undefined;
1280
+ allowPurchase?: boolean | undefined;
1281
+ isHot?: boolean | undefined;
1280
1282
  name: string;
1281
1283
  productCategoryKey: "gold" | "gov_bond" | "real_estate" | "corporate_credit";
1282
1284
  targetAssetId: string;
@@ -1304,6 +1306,8 @@ export declare const adminRouter: Elysia<"/admin", {
1304
1306
  receiveAccountTypeId: string;
1305
1307
  minPayAmount: string;
1306
1308
  settlementMode: "available" | "locked";
1309
+ allowPurchase: boolean;
1310
+ isHot: boolean;
1307
1311
  targetAsset: {
1308
1312
  symbol: string;
1309
1313
  id: string;
@@ -1364,6 +1368,8 @@ export declare const adminRouter: Elysia<"/admin", {
1364
1368
  receiveAccountTypeId?: string | undefined;
1365
1369
  minPayAmount?: string | undefined;
1366
1370
  settlementMode?: "available" | "locked" | undefined;
1371
+ allowPurchase?: boolean | undefined;
1372
+ isHot?: boolean | undefined;
1367
1373
  };
1368
1374
  params: {
1369
1375
  id: string;
@@ -1385,6 +1391,8 @@ export declare const adminRouter: Elysia<"/admin", {
1385
1391
  receiveAccountTypeId: string;
1386
1392
  minPayAmount: string;
1387
1393
  settlementMode: "available" | "locked";
1394
+ allowPurchase: boolean;
1395
+ isHot: boolean;
1388
1396
  targetAsset: {
1389
1397
  symbol: string;
1390
1398
  id: string;
@@ -1457,6 +1465,8 @@ export declare const adminRouter: Elysia<"/admin", {
1457
1465
  receiveAccountTypeId: string;
1458
1466
  minPayAmount: string;
1459
1467
  settlementMode: "available" | "locked";
1468
+ allowPurchase: boolean;
1469
+ isHot: boolean;
1460
1470
  targetAsset: {
1461
1471
  symbol: string;
1462
1472
  id: string;
@@ -1530,6 +1540,8 @@ export declare const adminRouter: Elysia<"/admin", {
1530
1540
  receiveAccountTypeId: string;
1531
1541
  minPayAmount: string;
1532
1542
  settlementMode: "available" | "locked";
1543
+ allowPurchase: boolean;
1544
+ isHot: boolean;
1533
1545
  targetAsset: {
1534
1546
  symbol: string;
1535
1547
  id: string;
@@ -1603,6 +1615,8 @@ export declare const adminRouter: Elysia<"/admin", {
1603
1615
  receiveAccountTypeId: string;
1604
1616
  minPayAmount: string;
1605
1617
  settlementMode: "available" | "locked";
1618
+ allowPurchase: boolean;
1619
+ isHot: boolean;
1606
1620
  targetAsset: {
1607
1621
  symbol: string;
1608
1622
  id: string;
@@ -1675,6 +1689,8 @@ export declare const adminRouter: Elysia<"/admin", {
1675
1689
  receiveAccountTypeId: string;
1676
1690
  minPayAmount: string;
1677
1691
  settlementMode: "available" | "locked";
1692
+ allowPurchase: boolean;
1693
+ isHot: boolean;
1678
1694
  targetAsset: {
1679
1695
  symbol: string;
1680
1696
  id: string;
@@ -1736,6 +1752,8 @@ export declare const adminRouter: Elysia<"/admin", {
1736
1752
  payAccountTypeId?: string | undefined;
1737
1753
  receiveAccountTypeId?: string | undefined;
1738
1754
  settlementMode?: "available" | "locked" | undefined;
1755
+ allowPurchase?: boolean | undefined;
1756
+ isHot?: boolean | undefined;
1739
1757
  limit?: number | undefined;
1740
1758
  offset?: number | undefined;
1741
1759
  pageSize?: number | undefined;
@@ -1762,6 +1780,8 @@ export declare const adminRouter: Elysia<"/admin", {
1762
1780
  receiveAccountTypeId: string;
1763
1781
  minPayAmount: string;
1764
1782
  settlementMode: "available" | "locked";
1783
+ allowPurchase: boolean;
1784
+ isHot: boolean;
1765
1785
  targetAsset: {
1766
1786
  symbol: string;
1767
1787
  id: string;
@@ -6364,10 +6384,10 @@ export declare const adminRouter: Elysia<"/admin", {
6364
6384
  scope?: string[] | undefined;
6365
6385
  status?: "archived" | "draft" | "published" | undefined;
6366
6386
  sortOrder?: number | undefined;
6387
+ isHot?: boolean | undefined;
6367
6388
  summary?: string | null | undefined;
6368
6389
  categoryId?: string | undefined;
6369
6390
  isPinned?: boolean | undefined;
6370
- isHot?: boolean | undefined;
6371
6391
  hasVideo?: boolean | undefined;
6372
6392
  requireReadConfirmation?: boolean | undefined;
6373
6393
  externalUrl?: string | null | undefined;
@@ -6422,13 +6442,13 @@ export declare const adminRouter: Elysia<"/admin", {
6422
6442
  deletedAt: Date | null;
6423
6443
  status: "archived" | "draft" | "published";
6424
6444
  sortOrder: number;
6445
+ isHot: boolean;
6425
6446
  createdBy: string;
6426
6447
  title: string;
6427
6448
  content: string;
6428
6449
  summary: string | null;
6429
6450
  categoryId: string;
6430
6451
  isPinned: boolean;
6431
- isHot: boolean;
6432
6452
  hasVideo: boolean;
6433
6453
  requireReadConfirmation: boolean;
6434
6454
  externalUrl: string | null;
@@ -6490,13 +6510,13 @@ export declare const adminRouter: Elysia<"/admin", {
6490
6510
  deletedAt: Date | null;
6491
6511
  status: "archived" | "draft" | "published";
6492
6512
  sortOrder: number;
6513
+ isHot: boolean;
6493
6514
  createdBy: string;
6494
6515
  title: string;
6495
6516
  content: string;
6496
6517
  summary: string | null;
6497
6518
  categoryId: string;
6498
6519
  isPinned: boolean;
6499
- isHot: boolean;
6500
6520
  hasVideo: boolean;
6501
6521
  requireReadConfirmation: boolean;
6502
6522
  externalUrl: string | null;
@@ -6572,12 +6592,12 @@ export declare const adminRouter: Elysia<"/admin", {
6572
6592
  scope?: string[] | undefined;
6573
6593
  status?: "archived" | "draft" | "published" | undefined;
6574
6594
  sortOrder?: number | undefined;
6595
+ isHot?: boolean | undefined;
6575
6596
  title?: string | undefined;
6576
6597
  content?: string | undefined;
6577
6598
  summary?: string | null | undefined;
6578
6599
  categoryId?: string | undefined;
6579
6600
  isPinned?: boolean | undefined;
6580
- isHot?: boolean | undefined;
6581
6601
  hasVideo?: boolean | undefined;
6582
6602
  requireReadConfirmation?: boolean | undefined;
6583
6603
  externalUrl?: string | null | undefined;
@@ -53,6 +53,8 @@ export declare const assetConvertProductAdminResponseSchema: import("@sinclair/t
53
53
  available: "available";
54
54
  locked: "locked";
55
55
  }>;
56
+ allowPurchase: import("@sinclair/typebox").TBoolean;
57
+ isHot: import("@sinclair/typebox").TBoolean;
56
58
  targetAsset: import("@sinclair/typebox").TObject<{
57
59
  symbol: import("@sinclair/typebox").TString;
58
60
  id: import("@sinclair/typebox").TString;
@@ -260,6 +262,8 @@ export declare const assetConvertProductCreateSchema: import("@sinclair/typebox"
260
262
  paused: "paused";
261
263
  ended: "ended";
262
264
  }>>;
265
+ allowPurchase: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
266
+ isHot: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
263
267
  }>;
264
268
  export type AssetConvertProductCreateInputType = typeof assetConvertProductCreateSchema.static;
265
269
  export declare const assetConvertProductUpdateSchema: import("@sinclair/typebox").TObject<{
@@ -286,6 +290,8 @@ export declare const assetConvertProductUpdateSchema: import("@sinclair/typebox"
286
290
  paused: "paused";
287
291
  ended: "ended";
288
292
  }>>;
293
+ allowPurchase: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
294
+ isHot: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
289
295
  }>;
290
296
  export type AssetConvertProductUpdateInputType = typeof assetConvertProductUpdateSchema.static;
291
297
  export declare const assetConvertProductListQuerySchema: import("@sinclair/typebox").TObject<{
@@ -311,6 +317,8 @@ export declare const assetConvertProductListQuerySchema: import("@sinclair/typeb
311
317
  available: "available";
312
318
  locked: "locked";
313
319
  }>>;
320
+ allowPurchase: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
321
+ isHot: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
314
322
  createdAtStart: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TDate>;
315
323
  createdAtEnd: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TDate>;
316
324
  updatedAtStart: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TDate>;
@@ -349,6 +357,8 @@ export declare const assetConvertProductListResponseSchema: import("@sinclair/ty
349
357
  available: "available";
350
358
  locked: "locked";
351
359
  }>;
360
+ allowPurchase: import("@sinclair/typebox").TBoolean;
361
+ isHot: import("@sinclair/typebox").TBoolean;
352
362
  targetAsset: import("@sinclair/typebox").TObject<{
353
363
  symbol: import("@sinclair/typebox").TString;
354
364
  id: import("@sinclair/typebox").TString;
@@ -386,6 +386,8 @@ export declare const assetConvertProductAdminRouter: Elysia<"/asset_convert_prod
386
386
  body: {
387
387
  description?: string | null | undefined;
388
388
  status?: "active" | "draft" | "paused" | "ended" | undefined;
389
+ allowPurchase?: boolean | undefined;
390
+ isHot?: boolean | undefined;
389
391
  name: string;
390
392
  productCategoryKey: "gold" | "gov_bond" | "real_estate" | "corporate_credit";
391
393
  targetAssetId: string;
@@ -413,6 +415,8 @@ export declare const assetConvertProductAdminRouter: Elysia<"/asset_convert_prod
413
415
  receiveAccountTypeId: string;
414
416
  minPayAmount: string;
415
417
  settlementMode: "available" | "locked";
418
+ allowPurchase: boolean;
419
+ isHot: boolean;
416
420
  targetAsset: {
417
421
  symbol: string;
418
422
  id: string;
@@ -473,6 +477,8 @@ export declare const assetConvertProductAdminRouter: Elysia<"/asset_convert_prod
473
477
  receiveAccountTypeId?: string | undefined;
474
478
  minPayAmount?: string | undefined;
475
479
  settlementMode?: "available" | "locked" | undefined;
480
+ allowPurchase?: boolean | undefined;
481
+ isHot?: boolean | undefined;
476
482
  };
477
483
  params: {
478
484
  id: string;
@@ -494,6 +500,8 @@ export declare const assetConvertProductAdminRouter: Elysia<"/asset_convert_prod
494
500
  receiveAccountTypeId: string;
495
501
  minPayAmount: string;
496
502
  settlementMode: "available" | "locked";
503
+ allowPurchase: boolean;
504
+ isHot: boolean;
497
505
  targetAsset: {
498
506
  symbol: string;
499
507
  id: string;
@@ -566,6 +574,8 @@ export declare const assetConvertProductAdminRouter: Elysia<"/asset_convert_prod
566
574
  receiveAccountTypeId: string;
567
575
  minPayAmount: string;
568
576
  settlementMode: "available" | "locked";
577
+ allowPurchase: boolean;
578
+ isHot: boolean;
569
579
  targetAsset: {
570
580
  symbol: string;
571
581
  id: string;
@@ -639,6 +649,8 @@ export declare const assetConvertProductAdminRouter: Elysia<"/asset_convert_prod
639
649
  receiveAccountTypeId: string;
640
650
  minPayAmount: string;
641
651
  settlementMode: "available" | "locked";
652
+ allowPurchase: boolean;
653
+ isHot: boolean;
642
654
  targetAsset: {
643
655
  symbol: string;
644
656
  id: string;
@@ -712,6 +724,8 @@ export declare const assetConvertProductAdminRouter: Elysia<"/asset_convert_prod
712
724
  receiveAccountTypeId: string;
713
725
  minPayAmount: string;
714
726
  settlementMode: "available" | "locked";
727
+ allowPurchase: boolean;
728
+ isHot: boolean;
715
729
  targetAsset: {
716
730
  symbol: string;
717
731
  id: string;
@@ -784,6 +798,8 @@ export declare const assetConvertProductAdminRouter: Elysia<"/asset_convert_prod
784
798
  receiveAccountTypeId: string;
785
799
  minPayAmount: string;
786
800
  settlementMode: "available" | "locked";
801
+ allowPurchase: boolean;
802
+ isHot: boolean;
787
803
  targetAsset: {
788
804
  symbol: string;
789
805
  id: string;
@@ -845,6 +861,8 @@ export declare const assetConvertProductAdminRouter: Elysia<"/asset_convert_prod
845
861
  payAccountTypeId?: string | undefined;
846
862
  receiveAccountTypeId?: string | undefined;
847
863
  settlementMode?: "available" | "locked" | undefined;
864
+ allowPurchase?: boolean | undefined;
865
+ isHot?: boolean | undefined;
848
866
  limit?: number | undefined;
849
867
  offset?: number | undefined;
850
868
  pageSize?: number | undefined;
@@ -871,6 +889,8 @@ export declare const assetConvertProductAdminRouter: Elysia<"/asset_convert_prod
871
889
  receiveAccountTypeId: string;
872
890
  minPayAmount: string;
873
891
  settlementMode: "available" | "locked";
892
+ allowPurchase: boolean;
893
+ isHot: boolean;
874
894
  targetAsset: {
875
895
  symbol: string;
876
896
  id: string;
@@ -7,6 +7,7 @@ export declare abstract class AdminAssetConvertProductService {
7
7
  private static ensureValidTimeRange;
8
8
  private static assertStatusTransitionAllowed;
9
9
  private static ensureProductReferencesValid;
10
+ private static ensureProductPriceReadyForActivation;
10
11
  static createProduct(input: AssetConvertProductCreateInputType): Promise<{
11
12
  targetAsset: {
12
13
  symbol: string;
@@ -97,6 +98,8 @@ export declare abstract class AdminAssetConvertProductService {
97
98
  receiveAccountTypeId: string;
98
99
  minPayAmount: string;
99
100
  settlementMode: "available" | "locked";
101
+ allowPurchase: boolean;
102
+ isHot: boolean;
100
103
  }>;
101
104
  static updateProduct(productId: string, input: AssetConvertProductUpdateInputType): Promise<{
102
105
  id: string;
@@ -112,6 +115,8 @@ export declare abstract class AdminAssetConvertProductService {
112
115
  receiveAccountTypeId: string;
113
116
  minPayAmount: string;
114
117
  settlementMode: "available" | "locked";
118
+ allowPurchase: boolean;
119
+ isHot: boolean;
115
120
  targetAsset: {
116
121
  symbol: string;
117
122
  id: string;
@@ -155,6 +160,8 @@ export declare abstract class AdminAssetConvertProductService {
155
160
  receiveAccountTypeId: string;
156
161
  minPayAmount: string;
157
162
  settlementMode: "available" | "locked";
163
+ allowPurchase: boolean;
164
+ isHot: boolean;
158
165
  targetAsset: {
159
166
  symbol: string;
160
167
  id: string;
@@ -198,6 +205,8 @@ export declare abstract class AdminAssetConvertProductService {
198
205
  receiveAccountTypeId: string;
199
206
  minPayAmount: string;
200
207
  settlementMode: "available" | "locked";
208
+ allowPurchase: boolean;
209
+ isHot: boolean;
201
210
  targetAsset: {
202
211
  symbol: string;
203
212
  id: string;
@@ -241,6 +250,8 @@ export declare abstract class AdminAssetConvertProductService {
241
250
  receiveAccountTypeId: string;
242
251
  minPayAmount: string;
243
252
  settlementMode: "available" | "locked";
253
+ allowPurchase: boolean;
254
+ isHot: boolean;
244
255
  targetAsset: {
245
256
  symbol: string;
246
257
  id: string;
@@ -284,6 +295,8 @@ export declare abstract class AdminAssetConvertProductService {
284
295
  receiveAccountTypeId: string;
285
296
  minPayAmount: string;
286
297
  settlementMode: "available" | "locked";
298
+ allowPurchase: boolean;
299
+ isHot: boolean;
287
300
  targetAsset: {
288
301
  symbol: string;
289
302
  id: string;
@@ -328,6 +341,8 @@ export declare abstract class AdminAssetConvertProductService {
328
341
  receiveAccountTypeId: string;
329
342
  minPayAmount: string;
330
343
  settlementMode: "available" | "locked";
344
+ allowPurchase: boolean;
345
+ isHot: boolean;
331
346
  targetAsset: {
332
347
  symbol: string;
333
348
  id: string;
@@ -220,6 +220,40 @@ export declare const assetConvertProductSelectSchema: import("drizzle-typebox").
220
220
  identity: undefined;
221
221
  generated: undefined;
222
222
  }, {}, {}>;
223
+ allowPurchase: import("drizzle-orm/pg-core").PgColumn<{
224
+ name: "allow_purchase";
225
+ tableName: "asset_convert_product";
226
+ dataType: "boolean";
227
+ columnType: "PgBoolean";
228
+ data: boolean;
229
+ driverParam: boolean;
230
+ notNull: true;
231
+ hasDefault: true;
232
+ isPrimaryKey: false;
233
+ isAutoincrement: false;
234
+ hasRuntimeDefault: false;
235
+ enumValues: undefined;
236
+ baseColumn: never;
237
+ identity: undefined;
238
+ generated: undefined;
239
+ }, {}, {}>;
240
+ isHot: import("drizzle-orm/pg-core").PgColumn<{
241
+ name: "is_hot";
242
+ tableName: "asset_convert_product";
243
+ dataType: "boolean";
244
+ columnType: "PgBoolean";
245
+ data: boolean;
246
+ driverParam: boolean;
247
+ notNull: true;
248
+ hasDefault: true;
249
+ isPrimaryKey: false;
250
+ isAutoincrement: false;
251
+ hasRuntimeDefault: false;
252
+ enumValues: undefined;
253
+ baseColumn: never;
254
+ identity: undefined;
255
+ generated: undefined;
256
+ }, {}, {}>;
223
257
  }, undefined>;
224
258
  export type AssetConvertProductSelectSchemaType = typeof assetConvertProductSelectSchema.static;
225
259
  export declare const assetConvertProductInsertSchema: import("drizzle-typebox").BuildSchema<"insert", {
@@ -444,6 +478,40 @@ export declare const assetConvertProductInsertSchema: import("drizzle-typebox").
444
478
  identity: undefined;
445
479
  generated: undefined;
446
480
  }, {}, {}>;
481
+ allowPurchase: import("drizzle-orm/pg-core").PgColumn<{
482
+ name: "allow_purchase";
483
+ tableName: "asset_convert_product";
484
+ dataType: "boolean";
485
+ columnType: "PgBoolean";
486
+ data: boolean;
487
+ driverParam: boolean;
488
+ notNull: true;
489
+ hasDefault: true;
490
+ isPrimaryKey: false;
491
+ isAutoincrement: false;
492
+ hasRuntimeDefault: false;
493
+ enumValues: undefined;
494
+ baseColumn: never;
495
+ identity: undefined;
496
+ generated: undefined;
497
+ }, {}, {}>;
498
+ isHot: import("drizzle-orm/pg-core").PgColumn<{
499
+ name: "is_hot";
500
+ tableName: "asset_convert_product";
501
+ dataType: "boolean";
502
+ columnType: "PgBoolean";
503
+ data: boolean;
504
+ driverParam: boolean;
505
+ notNull: true;
506
+ hasDefault: true;
507
+ isPrimaryKey: false;
508
+ isAutoincrement: false;
509
+ hasRuntimeDefault: false;
510
+ enumValues: undefined;
511
+ baseColumn: never;
512
+ identity: undefined;
513
+ generated: undefined;
514
+ }, {}, {}>;
447
515
  }, undefined>;
448
516
  export type AssetConvertProductInsertSchemaType = typeof assetConvertProductInsertSchema.static;
449
517
  export declare const assetConvertOrderSelectSchema: import("drizzle-typebox").BuildSchema<"select", {
@@ -2,6 +2,7 @@ export * from "./locales/zh";
2
2
  export declare const AssetConvertProductErrorCodes: {
3
3
  readonly ASSET_CONVERT_PRODUCT_NOT_FOUND: "ASSET_CONVERT_PRODUCT_NOT_FOUND";
4
4
  readonly ASSET_CONVERT_PRODUCT_STATUS_INVALID: "ASSET_CONVERT_PRODUCT_STATUS_INVALID";
5
+ readonly ASSET_CONVERT_PRODUCT_PURCHASE_NOT_ALLOWED: "ASSET_CONVERT_PRODUCT_PURCHASE_NOT_ALLOWED";
5
6
  readonly ASSET_CONVERT_PRODUCT_STATUS_TRANSITION_INVALID: "ASSET_CONVERT_PRODUCT_STATUS_TRANSITION_INVALID";
6
7
  readonly ASSET_CONVERT_PRODUCT_PRICE_NOT_FOUND: "ASSET_CONVERT_PRODUCT_PRICE_NOT_FOUND";
7
8
  readonly ASSET_CONVERT_PRODUCT_ASSET_NOT_FOUND: "ASSET_CONVERT_PRODUCT_ASSET_NOT_FOUND";
@@ -1,6 +1,7 @@
1
1
  export declare const zh: {
2
2
  ASSET_CONVERT_PRODUCT_NOT_FOUND: string;
3
3
  ASSET_CONVERT_PRODUCT_STATUS_INVALID: string;
4
+ ASSET_CONVERT_PRODUCT_PURCHASE_NOT_ALLOWED: string;
4
5
  ASSET_CONVERT_PRODUCT_STATUS_TRANSITION_INVALID: string;
5
6
  ASSET_CONVERT_PRODUCT_PRICE_NOT_FOUND: string;
6
7
  ASSET_CONVERT_PRODUCT_ASSET_NOT_FOUND: string;
@@ -246,6 +246,40 @@ export declare const assetConvertProduct: import("drizzle-orm/pg-core").PgTableW
246
246
  identity: undefined;
247
247
  generated: undefined;
248
248
  }, {}, {}>;
249
+ allowPurchase: import("drizzle-orm/pg-core").PgColumn<{
250
+ name: "allow_purchase";
251
+ tableName: "asset_convert_product";
252
+ dataType: "boolean";
253
+ columnType: "PgBoolean";
254
+ data: boolean;
255
+ driverParam: boolean;
256
+ notNull: true;
257
+ hasDefault: true;
258
+ isPrimaryKey: false;
259
+ isAutoincrement: false;
260
+ hasRuntimeDefault: false;
261
+ enumValues: undefined;
262
+ baseColumn: never;
263
+ identity: undefined;
264
+ generated: undefined;
265
+ }, {}, {}>;
266
+ isHot: import("drizzle-orm/pg-core").PgColumn<{
267
+ name: "is_hot";
268
+ tableName: "asset_convert_product";
269
+ dataType: "boolean";
270
+ columnType: "PgBoolean";
271
+ data: boolean;
272
+ driverParam: boolean;
273
+ notNull: true;
274
+ hasDefault: true;
275
+ isPrimaryKey: false;
276
+ isAutoincrement: false;
277
+ hasRuntimeDefault: false;
278
+ enumValues: undefined;
279
+ baseColumn: never;
280
+ identity: undefined;
281
+ generated: undefined;
282
+ }, {}, {}>;
249
283
  };
250
284
  dialect: "pg";
251
285
  }>;
@@ -5,6 +5,7 @@ export declare const assetConvertProductListQuerySchema: import("@sinclair/typeb
5
5
  real_estate: "real_estate";
6
6
  corporate_credit: "corporate_credit";
7
7
  }>>;
8
+ isHot: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
8
9
  limit: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
9
10
  offset: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
10
11
  pageSize: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
@@ -38,6 +39,8 @@ export declare const assetConvertProductListItemResponseSchema: import("@sinclai
38
39
  available: "available";
39
40
  locked: "locked";
40
41
  }>;
42
+ allowPurchase: import("@sinclair/typebox").TBoolean;
43
+ isHot: import("@sinclair/typebox").TBoolean;
41
44
  targetAsset: import("@sinclair/typebox").TObject<{
42
45
  symbol: import("@sinclair/typebox").TString;
43
46
  id: import("@sinclair/typebox").TString;
@@ -120,6 +123,8 @@ export declare const assetConvertProductListResponseSchema: import("@sinclair/ty
120
123
  available: "available";
121
124
  locked: "locked";
122
125
  }>;
126
+ allowPurchase: import("@sinclair/typebox").TBoolean;
127
+ isHot: import("@sinclair/typebox").TBoolean;
123
128
  targetAsset: import("@sinclair/typebox").TObject<{
124
129
  symbol: import("@sinclair/typebox").TString;
125
130
  id: import("@sinclair/typebox").TString;
@@ -210,6 +215,8 @@ export declare const assetConvertProductResponseSchema: import("@sinclair/typebo
210
215
  available: "available";
211
216
  locked: "locked";
212
217
  }>;
218
+ allowPurchase: import("@sinclair/typebox").TBoolean;
219
+ isHot: import("@sinclair/typebox").TBoolean;
213
220
  targetAsset: import("@sinclair/typebox").TObject<{
214
221
  symbol: import("@sinclair/typebox").TString;
215
222
  id: import("@sinclair/typebox").TString;
@@ -387,6 +387,7 @@ export declare const assetConvertProductRouter: Elysia<"/asset_convert_product",
387
387
  params: {};
388
388
  query: {
389
389
  productCategoryKey?: "gold" | "gov_bond" | "real_estate" | "corporate_credit" | undefined;
390
+ isHot?: boolean | undefined;
390
391
  limit?: number | undefined;
391
392
  offset?: number | undefined;
392
393
  pageSize?: number | undefined;
@@ -420,6 +421,8 @@ export declare const assetConvertProductRouter: Elysia<"/asset_convert_product",
420
421
  receiveAccountTypeId: string;
421
422
  minPayAmount: string;
422
423
  settlementMode: "available" | "locked";
424
+ allowPurchase: boolean;
425
+ isHot: boolean;
423
426
  targetAsset: {
424
427
  symbol: string;
425
428
  id: string;
@@ -512,6 +515,8 @@ export declare const assetConvertProductRouter: Elysia<"/asset_convert_product",
512
515
  receiveAccountTypeId: string;
513
516
  minPayAmount: string;
514
517
  settlementMode: "available" | "locked";
518
+ allowPurchase: boolean;
519
+ isHot: boolean;
515
520
  targetAsset: {
516
521
  symbol: string;
517
522
  id: string;
@@ -18,8 +18,11 @@ declare abstract class BaseUserAssetConvertProductService {
18
18
  receiveAccountTypeId: string;
19
19
  minPayAmount: string;
20
20
  settlementMode: "available" | "locked";
21
+ allowPurchase: boolean;
22
+ isHot: boolean;
21
23
  }>;
22
24
  protected static assertProductActive(product: typeof assetConvertProduct.$inferSelect): void;
25
+ protected static assertProductPurchaseAllowed(product: typeof assetConvertProduct.$inferSelect): void;
23
26
  protected static ensureProductPayAmount(productMinPayAmount: string, payAmount: Decimal): void;
24
27
  protected static calcTargetAmount(payAmount: Decimal, price: string): string;
25
28
  protected static getLatestProductPrice(tx: TransactionTx, product: typeof assetConvertProduct.$inferSelect): Promise<{
@@ -167,6 +170,8 @@ export declare abstract class UserAssetConvertProductService extends BaseUserAss
167
170
  receiveAccountTypeId: string;
168
171
  minPayAmount: string;
169
172
  settlementMode: "available" | "locked";
173
+ allowPurchase: boolean;
174
+ isHot: boolean;
170
175
  }[];
171
176
  pagination: {
172
177
  pageSize: number;
@@ -281,6 +286,8 @@ export declare abstract class UserAssetConvertProductService extends BaseUserAss
281
286
  receiveAccountTypeId: string;
282
287
  minPayAmount: string;
283
288
  settlementMode: "available" | "locked";
289
+ allowPurchase: boolean;
290
+ isHot: boolean;
284
291
  }>;
285
292
  static createOrder(userId: string, input: AssetConvertOrderCreateInputType): Promise<{
286
293
  id: string;
@@ -1600,6 +1600,8 @@ declare const app: Elysia<"/api", {
1600
1600
  body: {
1601
1601
  description?: string | null | undefined;
1602
1602
  status?: "active" | "draft" | "paused" | "ended" | undefined;
1603
+ allowPurchase?: boolean | undefined;
1604
+ isHot?: boolean | undefined;
1603
1605
  name: string;
1604
1606
  productCategoryKey: "gold" | "gov_bond" | "real_estate" | "corporate_credit";
1605
1607
  targetAssetId: string;
@@ -1627,6 +1629,8 @@ declare const app: Elysia<"/api", {
1627
1629
  receiveAccountTypeId: string;
1628
1630
  minPayAmount: string;
1629
1631
  settlementMode: "available" | "locked";
1632
+ allowPurchase: boolean;
1633
+ isHot: boolean;
1630
1634
  targetAsset: {
1631
1635
  symbol: string;
1632
1636
  id: string;
@@ -1687,6 +1691,8 @@ declare const app: Elysia<"/api", {
1687
1691
  receiveAccountTypeId?: string | undefined;
1688
1692
  minPayAmount?: string | undefined;
1689
1693
  settlementMode?: "available" | "locked" | undefined;
1694
+ allowPurchase?: boolean | undefined;
1695
+ isHot?: boolean | undefined;
1690
1696
  };
1691
1697
  params: {
1692
1698
  id: string;
@@ -1708,6 +1714,8 @@ declare const app: Elysia<"/api", {
1708
1714
  receiveAccountTypeId: string;
1709
1715
  minPayAmount: string;
1710
1716
  settlementMode: "available" | "locked";
1717
+ allowPurchase: boolean;
1718
+ isHot: boolean;
1711
1719
  targetAsset: {
1712
1720
  symbol: string;
1713
1721
  id: string;
@@ -1780,6 +1788,8 @@ declare const app: Elysia<"/api", {
1780
1788
  receiveAccountTypeId: string;
1781
1789
  minPayAmount: string;
1782
1790
  settlementMode: "available" | "locked";
1791
+ allowPurchase: boolean;
1792
+ isHot: boolean;
1783
1793
  targetAsset: {
1784
1794
  symbol: string;
1785
1795
  id: string;
@@ -1853,6 +1863,8 @@ declare const app: Elysia<"/api", {
1853
1863
  receiveAccountTypeId: string;
1854
1864
  minPayAmount: string;
1855
1865
  settlementMode: "available" | "locked";
1866
+ allowPurchase: boolean;
1867
+ isHot: boolean;
1856
1868
  targetAsset: {
1857
1869
  symbol: string;
1858
1870
  id: string;
@@ -1926,6 +1938,8 @@ declare const app: Elysia<"/api", {
1926
1938
  receiveAccountTypeId: string;
1927
1939
  minPayAmount: string;
1928
1940
  settlementMode: "available" | "locked";
1941
+ allowPurchase: boolean;
1942
+ isHot: boolean;
1929
1943
  targetAsset: {
1930
1944
  symbol: string;
1931
1945
  id: string;
@@ -1998,6 +2012,8 @@ declare const app: Elysia<"/api", {
1998
2012
  receiveAccountTypeId: string;
1999
2013
  minPayAmount: string;
2000
2014
  settlementMode: "available" | "locked";
2015
+ allowPurchase: boolean;
2016
+ isHot: boolean;
2001
2017
  targetAsset: {
2002
2018
  symbol: string;
2003
2019
  id: string;
@@ -2059,6 +2075,8 @@ declare const app: Elysia<"/api", {
2059
2075
  payAccountTypeId?: string | undefined;
2060
2076
  receiveAccountTypeId?: string | undefined;
2061
2077
  settlementMode?: "available" | "locked" | undefined;
2078
+ allowPurchase?: boolean | undefined;
2079
+ isHot?: boolean | undefined;
2062
2080
  limit?: number | undefined;
2063
2081
  offset?: number | undefined;
2064
2082
  pageSize?: number | undefined;
@@ -2085,6 +2103,8 @@ declare const app: Elysia<"/api", {
2085
2103
  receiveAccountTypeId: string;
2086
2104
  minPayAmount: string;
2087
2105
  settlementMode: "available" | "locked";
2106
+ allowPurchase: boolean;
2107
+ isHot: boolean;
2088
2108
  targetAsset: {
2089
2109
  symbol: string;
2090
2110
  id: string;
@@ -6687,10 +6707,10 @@ declare const app: Elysia<"/api", {
6687
6707
  scope?: string[] | undefined;
6688
6708
  status?: "archived" | "draft" | "published" | undefined;
6689
6709
  sortOrder?: number | undefined;
6710
+ isHot?: boolean | undefined;
6690
6711
  summary?: string | null | undefined;
6691
6712
  categoryId?: string | undefined;
6692
6713
  isPinned?: boolean | undefined;
6693
- isHot?: boolean | undefined;
6694
6714
  hasVideo?: boolean | undefined;
6695
6715
  requireReadConfirmation?: boolean | undefined;
6696
6716
  externalUrl?: string | null | undefined;
@@ -6745,13 +6765,13 @@ declare const app: Elysia<"/api", {
6745
6765
  deletedAt: Date | null;
6746
6766
  status: "archived" | "draft" | "published";
6747
6767
  sortOrder: number;
6768
+ isHot: boolean;
6748
6769
  createdBy: string;
6749
6770
  title: string;
6750
6771
  content: string;
6751
6772
  summary: string | null;
6752
6773
  categoryId: string;
6753
6774
  isPinned: boolean;
6754
- isHot: boolean;
6755
6775
  hasVideo: boolean;
6756
6776
  requireReadConfirmation: boolean;
6757
6777
  externalUrl: string | null;
@@ -6813,13 +6833,13 @@ declare const app: Elysia<"/api", {
6813
6833
  deletedAt: Date | null;
6814
6834
  status: "archived" | "draft" | "published";
6815
6835
  sortOrder: number;
6836
+ isHot: boolean;
6816
6837
  createdBy: string;
6817
6838
  title: string;
6818
6839
  content: string;
6819
6840
  summary: string | null;
6820
6841
  categoryId: string;
6821
6842
  isPinned: boolean;
6822
- isHot: boolean;
6823
6843
  hasVideo: boolean;
6824
6844
  requireReadConfirmation: boolean;
6825
6845
  externalUrl: string | null;
@@ -6895,12 +6915,12 @@ declare const app: Elysia<"/api", {
6895
6915
  scope?: string[] | undefined;
6896
6916
  status?: "archived" | "draft" | "published" | undefined;
6897
6917
  sortOrder?: number | undefined;
6918
+ isHot?: boolean | undefined;
6898
6919
  title?: string | undefined;
6899
6920
  content?: string | undefined;
6900
6921
  summary?: string | null | undefined;
6901
6922
  categoryId?: string | undefined;
6902
6923
  isPinned?: boolean | undefined;
6903
- isHot?: boolean | undefined;
6904
6924
  hasVideo?: boolean | undefined;
6905
6925
  requireReadConfirmation?: boolean | undefined;
6906
6926
  externalUrl?: string | null | undefined;
@@ -9306,6 +9326,7 @@ declare const app: Elysia<"/api", {
9306
9326
  params: {};
9307
9327
  query: {
9308
9328
  productCategoryKey?: "gold" | "gov_bond" | "real_estate" | "corporate_credit" | undefined;
9329
+ isHot?: boolean | undefined;
9309
9330
  limit?: number | undefined;
9310
9331
  offset?: number | undefined;
9311
9332
  pageSize?: number | undefined;
@@ -9339,6 +9360,8 @@ declare const app: Elysia<"/api", {
9339
9360
  receiveAccountTypeId: string;
9340
9361
  minPayAmount: string;
9341
9362
  settlementMode: "available" | "locked";
9363
+ allowPurchase: boolean;
9364
+ isHot: boolean;
9342
9365
  targetAsset: {
9343
9366
  symbol: string;
9344
9367
  id: string;
@@ -9431,6 +9454,8 @@ declare const app: Elysia<"/api", {
9431
9454
  receiveAccountTypeId: string;
9432
9455
  minPayAmount: string;
9433
9456
  settlementMode: "available" | "locked";
9457
+ allowPurchase: boolean;
9458
+ isHot: boolean;
9434
9459
  targetAsset: {
9435
9460
  symbol: string;
9436
9461
  id: string;
@@ -13054,13 +13079,13 @@ declare const app: Elysia<"/api", {
13054
13079
  scope: string[];
13055
13080
  status: "archived" | "draft" | "published";
13056
13081
  sortOrder: number;
13082
+ isHot: boolean;
13057
13083
  createdBy: string;
13058
13084
  title: string;
13059
13085
  content: string;
13060
13086
  summary: string | null;
13061
13087
  categoryId: string;
13062
13088
  isPinned: boolean;
13063
- isHot: boolean;
13064
13089
  hasVideo: boolean;
13065
13090
  requireReadConfirmation: boolean;
13066
13091
  externalUrl: string | null;
@@ -13112,13 +13137,13 @@ declare const app: Elysia<"/api", {
13112
13137
  scope: string[];
13113
13138
  status: "archived" | "draft" | "published";
13114
13139
  sortOrder: number;
13140
+ isHot: boolean;
13115
13141
  createdBy: string;
13116
13142
  title: string;
13117
13143
  content: string;
13118
13144
  summary: string | null;
13119
13145
  categoryId: string;
13120
13146
  isPinned: boolean;
13121
- isHot: boolean;
13122
13147
  hasVideo: boolean;
13123
13148
  requireReadConfirmation: boolean;
13124
13149
  externalUrl: string | null;
@@ -13186,13 +13211,13 @@ declare const app: Elysia<"/api", {
13186
13211
  scope: string[];
13187
13212
  status: "archived" | "draft" | "published";
13188
13213
  sortOrder: number;
13214
+ isHot: boolean;
13189
13215
  createdBy: string;
13190
13216
  title: string;
13191
13217
  content: string;
13192
13218
  summary: string | null;
13193
13219
  categoryId: string;
13194
13220
  isPinned: boolean;
13195
- isHot: boolean;
13196
13221
  hasVideo: boolean;
13197
13222
  requireReadConfirmation: boolean;
13198
13223
  externalUrl: string | null;
@@ -10,13 +10,13 @@ export declare const newsSelectModel: import("@sinclair/typebox").TObject<{
10
10
  published: "published";
11
11
  }>;
12
12
  sortOrder: import("@sinclair/typebox").TInteger;
13
+ isHot: import("@sinclair/typebox").TBoolean;
13
14
  createdBy: import("@sinclair/typebox").TString;
14
15
  title: import("@sinclair/typebox").TString;
15
16
  content: import("@sinclair/typebox").TString;
16
17
  summary: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
17
18
  categoryId: import("@sinclair/typebox").TString;
18
19
  isPinned: import("@sinclair/typebox").TBoolean;
19
- isHot: import("@sinclair/typebox").TBoolean;
20
20
  hasVideo: import("@sinclair/typebox").TBoolean;
21
21
  requireReadConfirmation: import("@sinclair/typebox").TBoolean;
22
22
  externalUrl: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
@@ -38,13 +38,13 @@ export declare const newsListItemModel: import("@sinclair/typebox").TObject<{
38
38
  draft: "draft";
39
39
  published: "published";
40
40
  }>;
41
+ isHot: import("@sinclair/typebox").TBoolean;
41
42
  createdBy: import("@sinclair/typebox").TString;
42
43
  title: import("@sinclair/typebox").TString;
43
44
  content: import("@sinclair/typebox").TString;
44
45
  summary: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
45
46
  categoryId: import("@sinclair/typebox").TString;
46
47
  isPinned: import("@sinclair/typebox").TBoolean;
47
- isHot: import("@sinclair/typebox").TBoolean;
48
48
  hasVideo: import("@sinclair/typebox").TBoolean;
49
49
  requireReadConfirmation: import("@sinclair/typebox").TBoolean;
50
50
  externalUrl: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
@@ -70,13 +70,13 @@ export declare const newsListResponse: import("@sinclair/typebox").TObject<{
70
70
  draft: "draft";
71
71
  published: "published";
72
72
  }>;
73
+ isHot: import("@sinclair/typebox").TBoolean;
73
74
  createdBy: import("@sinclair/typebox").TString;
74
75
  title: import("@sinclair/typebox").TString;
75
76
  content: import("@sinclair/typebox").TString;
76
77
  summary: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
77
78
  categoryId: import("@sinclair/typebox").TString;
78
79
  isPinned: import("@sinclair/typebox").TBoolean;
79
- isHot: import("@sinclair/typebox").TBoolean;
80
80
  hasVideo: import("@sinclair/typebox").TBoolean;
81
81
  requireReadConfirmation: import("@sinclair/typebox").TBoolean;
82
82
  externalUrl: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
@@ -105,12 +105,12 @@ export declare const newsCreateModel: import("@sinclair/typebox").TObject<{
105
105
  published: "published";
106
106
  }>>;
107
107
  sortOrder: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TInteger>;
108
+ isHot: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
108
109
  title: import("@sinclair/typebox").TString;
109
110
  content: import("@sinclair/typebox").TString;
110
111
  summary: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>>;
111
112
  categoryId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
112
113
  isPinned: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
113
- isHot: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
114
114
  hasVideo: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
115
115
  requireReadConfirmation: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
116
116
  externalUrl: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>>;
@@ -128,12 +128,12 @@ export declare const newsUpdateModel: import("@sinclair/typebox").TObject<{
128
128
  published: "published";
129
129
  }>>;
130
130
  sortOrder: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TInteger>;
131
+ isHot: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
131
132
  title: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
132
133
  content: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
133
134
  summary: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>>;
134
135
  categoryId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
135
136
  isPinned: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
136
- isHot: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
137
137
  hasVideo: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
138
138
  requireReadConfirmation: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
139
139
  externalUrl: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>>;
@@ -387,10 +387,10 @@ export declare const newsAdminRouter: Elysia<"/news", {
387
387
  scope?: string[] | undefined;
388
388
  status?: "archived" | "draft" | "published" | undefined;
389
389
  sortOrder?: number | undefined;
390
+ isHot?: boolean | undefined;
390
391
  summary?: string | null | undefined;
391
392
  categoryId?: string | undefined;
392
393
  isPinned?: boolean | undefined;
393
- isHot?: boolean | undefined;
394
394
  hasVideo?: boolean | undefined;
395
395
  requireReadConfirmation?: boolean | undefined;
396
396
  externalUrl?: string | null | undefined;
@@ -445,13 +445,13 @@ export declare const newsAdminRouter: Elysia<"/news", {
445
445
  deletedAt: Date | null;
446
446
  status: "archived" | "draft" | "published";
447
447
  sortOrder: number;
448
+ isHot: boolean;
448
449
  createdBy: string;
449
450
  title: string;
450
451
  content: string;
451
452
  summary: string | null;
452
453
  categoryId: string;
453
454
  isPinned: boolean;
454
- isHot: boolean;
455
455
  hasVideo: boolean;
456
456
  requireReadConfirmation: boolean;
457
457
  externalUrl: string | null;
@@ -513,13 +513,13 @@ export declare const newsAdminRouter: Elysia<"/news", {
513
513
  deletedAt: Date | null;
514
514
  status: "archived" | "draft" | "published";
515
515
  sortOrder: number;
516
+ isHot: boolean;
516
517
  createdBy: string;
517
518
  title: string;
518
519
  content: string;
519
520
  summary: string | null;
520
521
  categoryId: string;
521
522
  isPinned: boolean;
522
- isHot: boolean;
523
523
  hasVideo: boolean;
524
524
  requireReadConfirmation: boolean;
525
525
  externalUrl: string | null;
@@ -595,12 +595,12 @@ export declare const newsAdminRouter: Elysia<"/news", {
595
595
  scope?: string[] | undefined;
596
596
  status?: "archived" | "draft" | "published" | undefined;
597
597
  sortOrder?: number | undefined;
598
+ isHot?: boolean | undefined;
598
599
  title?: string | undefined;
599
600
  content?: string | undefined;
600
601
  summary?: string | null | undefined;
601
602
  categoryId?: string | undefined;
602
603
  isPinned?: boolean | undefined;
603
- isHot?: boolean | undefined;
604
604
  hasVideo?: boolean | undefined;
605
605
  requireReadConfirmation?: boolean | undefined;
606
606
  externalUrl?: string | null | undefined;
@@ -10,13 +10,13 @@ export declare abstract class AdminNewsService extends BaseNewsService {
10
10
  deletedAt: Date | null;
11
11
  status: "archived" | "draft" | "published";
12
12
  sortOrder: number;
13
+ isHot: boolean;
13
14
  createdBy: string;
14
15
  title: string;
15
16
  content: string;
16
17
  summary: string | null;
17
18
  categoryId: string;
18
19
  isPinned: boolean;
19
- isHot: boolean;
20
20
  hasVideo: boolean;
21
21
  requireReadConfirmation: boolean;
22
22
  externalUrl: string | null;
@@ -61,13 +61,13 @@ export declare abstract class AdminNewsService extends BaseNewsService {
61
61
  deletedAt: Date | null;
62
62
  status: "archived" | "draft" | "published";
63
63
  sortOrder: number;
64
+ isHot: boolean;
64
65
  createdBy: string;
65
66
  title: string;
66
67
  content: string;
67
68
  summary: string | null;
68
69
  categoryId: string;
69
70
  isPinned: boolean;
70
- isHot: boolean;
71
71
  hasVideo: boolean;
72
72
  requireReadConfirmation: boolean;
73
73
  externalUrl: string | null;
@@ -129,13 +129,13 @@ export declare abstract class AdminNewsService extends BaseNewsService {
129
129
  deletedAt: Date | null;
130
130
  status: "archived" | "draft" | "published";
131
131
  sortOrder: number;
132
+ isHot: boolean;
132
133
  createdBy: string;
133
134
  title: string;
134
135
  content: string;
135
136
  summary: string | null;
136
137
  categoryId: string;
137
138
  isPinned: boolean;
138
- isHot: boolean;
139
139
  hasVideo: boolean;
140
140
  requireReadConfirmation: boolean;
141
141
  externalUrl: string | null;
@@ -10,13 +10,13 @@ export declare const newsSelectModel: import("@sinclair/typebox").TObject<{
10
10
  published: "published";
11
11
  }>;
12
12
  sortOrder: import("@sinclair/typebox").TInteger;
13
+ isHot: import("@sinclair/typebox").TBoolean;
13
14
  createdBy: import("@sinclair/typebox").TString;
14
15
  title: import("@sinclair/typebox").TString;
15
16
  content: import("@sinclair/typebox").TString;
16
17
  summary: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
17
18
  categoryId: import("@sinclair/typebox").TString;
18
19
  isPinned: import("@sinclair/typebox").TBoolean;
19
- isHot: import("@sinclair/typebox").TBoolean;
20
20
  hasVideo: import("@sinclair/typebox").TBoolean;
21
21
  requireReadConfirmation: import("@sinclair/typebox").TBoolean;
22
22
  externalUrl: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
@@ -38,13 +38,13 @@ export declare const newsListItemModel: import("@sinclair/typebox").TObject<{
38
38
  draft: "draft";
39
39
  published: "published";
40
40
  }>;
41
+ isHot: import("@sinclair/typebox").TBoolean;
41
42
  createdBy: import("@sinclair/typebox").TString;
42
43
  title: import("@sinclair/typebox").TString;
43
44
  content: import("@sinclair/typebox").TString;
44
45
  summary: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
45
46
  categoryId: import("@sinclair/typebox").TString;
46
47
  isPinned: import("@sinclair/typebox").TBoolean;
47
- isHot: import("@sinclair/typebox").TBoolean;
48
48
  hasVideo: import("@sinclair/typebox").TBoolean;
49
49
  requireReadConfirmation: import("@sinclair/typebox").TBoolean;
50
50
  externalUrl: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
@@ -70,13 +70,13 @@ export declare const newsListResponse: import("@sinclair/typebox").TObject<{
70
70
  draft: "draft";
71
71
  published: "published";
72
72
  }>;
73
+ isHot: import("@sinclair/typebox").TBoolean;
73
74
  createdBy: import("@sinclair/typebox").TString;
74
75
  title: import("@sinclair/typebox").TString;
75
76
  content: import("@sinclair/typebox").TString;
76
77
  summary: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
77
78
  categoryId: import("@sinclair/typebox").TString;
78
79
  isPinned: import("@sinclair/typebox").TBoolean;
79
- isHot: import("@sinclair/typebox").TBoolean;
80
80
  hasVideo: import("@sinclair/typebox").TBoolean;
81
81
  requireReadConfirmation: import("@sinclair/typebox").TBoolean;
82
82
  externalUrl: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
@@ -123,13 +123,13 @@ export declare const newsDetailResponse: import("@sinclair/typebox").TObject<{
123
123
  draft: "draft";
124
124
  published: "published";
125
125
  }>;
126
+ isHot: import("@sinclair/typebox").TBoolean;
126
127
  createdBy: import("@sinclair/typebox").TString;
127
128
  title: import("@sinclair/typebox").TString;
128
129
  content: import("@sinclair/typebox").TString;
129
130
  summary: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
130
131
  categoryId: import("@sinclair/typebox").TString;
131
132
  isPinned: import("@sinclair/typebox").TBoolean;
132
- isHot: import("@sinclair/typebox").TBoolean;
133
133
  hasVideo: import("@sinclair/typebox").TBoolean;
134
134
  requireReadConfirmation: import("@sinclair/typebox").TBoolean;
135
135
  externalUrl: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
@@ -159,13 +159,13 @@ export declare const pendingConfirmationsResponse: import("@sinclair/typebox").T
159
159
  draft: "draft";
160
160
  published: "published";
161
161
  }>;
162
+ isHot: import("@sinclair/typebox").TBoolean;
162
163
  createdBy: import("@sinclair/typebox").TString;
163
164
  title: import("@sinclair/typebox").TString;
164
165
  content: import("@sinclair/typebox").TString;
165
166
  summary: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
166
167
  categoryId: import("@sinclair/typebox").TString;
167
168
  isPinned: import("@sinclair/typebox").TBoolean;
168
- isHot: import("@sinclair/typebox").TBoolean;
169
169
  hasVideo: import("@sinclair/typebox").TBoolean;
170
170
  requireReadConfirmation: import("@sinclair/typebox").TBoolean;
171
171
  externalUrl: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
@@ -408,13 +408,13 @@ export declare const newsRouter: Elysia<"/news", {
408
408
  scope: string[];
409
409
  status: "archived" | "draft" | "published";
410
410
  sortOrder: number;
411
+ isHot: boolean;
411
412
  createdBy: string;
412
413
  title: string;
413
414
  content: string;
414
415
  summary: string | null;
415
416
  categoryId: string;
416
417
  isPinned: boolean;
417
- isHot: boolean;
418
418
  hasVideo: boolean;
419
419
  requireReadConfirmation: boolean;
420
420
  externalUrl: string | null;
@@ -466,13 +466,13 @@ export declare const newsRouter: Elysia<"/news", {
466
466
  scope: string[];
467
467
  status: "archived" | "draft" | "published";
468
468
  sortOrder: number;
469
+ isHot: boolean;
469
470
  createdBy: string;
470
471
  title: string;
471
472
  content: string;
472
473
  summary: string | null;
473
474
  categoryId: string;
474
475
  isPinned: boolean;
475
- isHot: boolean;
476
476
  hasVideo: boolean;
477
477
  requireReadConfirmation: boolean;
478
478
  externalUrl: string | null;
@@ -540,13 +540,13 @@ export declare const newsRouter: Elysia<"/news", {
540
540
  scope: string[];
541
541
  status: "archived" | "draft" | "published";
542
542
  sortOrder: number;
543
+ isHot: boolean;
543
544
  createdBy: string;
544
545
  title: string;
545
546
  content: string;
546
547
  summary: string | null;
547
548
  categoryId: string;
548
549
  isPinned: boolean;
549
- isHot: boolean;
550
550
  hasVideo: boolean;
551
551
  requireReadConfirmation: boolean;
552
552
  externalUrl: string | null;
@@ -11,13 +11,13 @@ export declare abstract class UserNewsService extends BaseNewsService {
11
11
  deletedAt: Date | null;
12
12
  status: "archived" | "draft" | "published";
13
13
  sortOrder: number;
14
+ isHot: boolean;
14
15
  createdBy: string;
15
16
  title: string;
16
17
  content: string;
17
18
  summary: string | null;
18
19
  categoryId: string;
19
20
  isPinned: boolean;
20
- isHot: boolean;
21
21
  hasVideo: boolean;
22
22
  requireReadConfirmation: boolean;
23
23
  externalUrl: string | null;
@@ -59,13 +59,13 @@ export declare abstract class UserNewsService extends BaseNewsService {
59
59
  deletedAt: Date | null;
60
60
  status: "archived" | "draft" | "published";
61
61
  sortOrder: number;
62
+ isHot: boolean;
62
63
  createdBy: string;
63
64
  title: string;
64
65
  content: string;
65
66
  summary: string | null;
66
67
  categoryId: string;
67
68
  isPinned: boolean;
68
- isHot: boolean;
69
69
  hasVideo: boolean;
70
70
  requireReadConfirmation: boolean;
71
71
  externalUrl: string | null;
@@ -126,13 +126,13 @@ export declare abstract class UserNewsService extends BaseNewsService {
126
126
  deletedAt: Date | null;
127
127
  status: "archived" | "draft" | "published";
128
128
  sortOrder: number;
129
+ isHot: boolean;
129
130
  createdBy: string;
130
131
  title: string;
131
132
  content: string;
132
133
  summary: string | null;
133
134
  categoryId: string;
134
135
  isPinned: boolean;
135
- isHot: boolean;
136
136
  hasVideo: boolean;
137
137
  requireReadConfirmation: boolean;
138
138
  externalUrl: string | null;
@@ -199,13 +199,13 @@ export declare abstract class UserNewsService extends BaseNewsService {
199
199
  deletedAt: Date | null;
200
200
  status: "archived" | "draft" | "published";
201
201
  sortOrder: number;
202
+ isHot: boolean;
202
203
  createdBy: string;
203
204
  title: string;
204
205
  content: string;
205
206
  summary: string | null;
206
207
  categoryId: string;
207
208
  isPinned: boolean;
208
- isHot: boolean;
209
209
  hasVideo: boolean;
210
210
  requireReadConfirmation: boolean;
211
211
  externalUrl: string | null;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@r2wa-org/eden",
3
- "version": "0.0.68",
3
+ "version": "0.0.70",
4
4
  "description": "Elysia API type definitions for Eden Treaty",
5
5
  "types": "./dist/src/index.d.ts",
6
6
  "files": [