@r2wa-org/eden 0.0.48

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 (271) hide show
  1. package/README.md +28 -0
  2. package/dist/src/admin/index.d.ts +4793 -0
  3. package/dist/src/auth/better-auth.d.ts +2915 -0
  4. package/dist/src/auth/better-hooks.d.ts +16 -0
  5. package/dist/src/auth/db.schemas.d.ts +2076 -0
  6. package/dist/src/auth/permissions.d.ts +155 -0
  7. package/dist/src/auth/roles.d.ts +376 -0
  8. package/dist/src/auth/router.d.ts +385 -0
  9. package/dist/src/auth/schema.d.ts +1080 -0
  10. package/dist/src/bank-account/admin.router.d.ts +880 -0
  11. package/dist/src/bank-account/db.schemas.d.ts +1032 -0
  12. package/dist/src/bank-account/dto.schemas.d.ts +572 -0
  13. package/dist/src/bank-account/index.d.ts +8 -0
  14. package/dist/src/bank-account/permissions.d.ts +10 -0
  15. package/dist/src/bank-account/router.d.ts +680 -0
  16. package/dist/src/bank-account/schema.d.ts +535 -0
  17. package/dist/src/bank-account/seed.d.ts +4 -0
  18. package/dist/src/bank-account/service.d.ts +359 -0
  19. package/dist/src/check-in/admin.router.d.ts +533 -0
  20. package/dist/src/check-in/db.schemas.d.ts +312 -0
  21. package/dist/src/check-in/dto.schemas.d.ts +544 -0
  22. package/dist/src/check-in/errors/index.d.ts +13 -0
  23. package/dist/src/check-in/errors/locales/zh.d.ts +10 -0
  24. package/dist/src/check-in/index.d.ts +7 -0
  25. package/dist/src/check-in/permissions.d.ts +6 -0
  26. package/dist/src/check-in/router.d.ts +619 -0
  27. package/dist/src/check-in/schema.d.ts +168 -0
  28. package/dist/src/check-in/service.d.ts +99 -0
  29. package/dist/src/cors/index.d.ts +30 -0
  30. package/dist/src/cron/index.d.ts +76 -0
  31. package/dist/src/db/columns.helpers.d.ts +13 -0
  32. package/dist/src/db/enums.d.ts +1 -0
  33. package/dist/src/db/index.d.ts +4 -0
  34. package/dist/src/db/schemas.d.ts +24 -0
  35. package/dist/src/db/transaction.d.ts +3 -0
  36. package/dist/src/db/typebox.d.ts +19 -0
  37. package/dist/src/deposit/admin.router.d.ts +633 -0
  38. package/dist/src/deposit/db.schemas.d.ts +550 -0
  39. package/dist/src/deposit/dto.schemas.d.ts +707 -0
  40. package/dist/src/deposit/errors/index.d.ts +33 -0
  41. package/dist/src/deposit/errors/locales/zh.d.ts +18 -0
  42. package/dist/src/deposit/index.d.ts +7 -0
  43. package/dist/src/deposit/permissions.d.ts +9 -0
  44. package/dist/src/deposit/router.d.ts +621 -0
  45. package/dist/src/deposit/schema.d.ts +287 -0
  46. package/dist/src/deposit/service.d.ts +278 -0
  47. package/dist/src/dynamic-env/admin.router.d.ts +637 -0
  48. package/dist/src/dynamic-env/cache.d.ts +35 -0
  49. package/dist/src/dynamic-env/db.schemas.d.ts +182 -0
  50. package/dist/src/dynamic-env/dto.schema.d.ts +17 -0
  51. package/dist/src/dynamic-env/index.d.ts +3 -0
  52. package/dist/src/dynamic-env/schema.d.ts +96 -0
  53. package/dist/src/dynamic-env/service.d.ts +93 -0
  54. package/dist/src/eden/index.d.ts +57 -0
  55. package/dist/src/email/index.d.ts +2 -0
  56. package/dist/src/env/client.d.ts +2 -0
  57. package/dist/src/env/index.d.ts +2 -0
  58. package/dist/src/env/server.d.ts +50 -0
  59. package/dist/src/env/typebox-env.d.ts +7 -0
  60. package/dist/src/error/errorcode.d.ts +9 -0
  61. package/dist/src/error/index.d.ts +120 -0
  62. package/dist/src/error/locales/zh.d.ts +2 -0
  63. package/dist/src/error/messages.d.ts +10 -0
  64. package/dist/src/external/dto.schemas.d.ts +173 -0
  65. package/dist/src/external/errors/index.d.ts +13 -0
  66. package/dist/src/external/errors/locales/zh.d.ts +10 -0
  67. package/dist/src/external/index.d.ts +4 -0
  68. package/dist/src/external/router.d.ts +105 -0
  69. package/dist/src/external/service.d.ts +31 -0
  70. package/dist/src/file-storage/admin.router.d.ts +601 -0
  71. package/dist/src/file-storage/db.schemas.d.ts +1026 -0
  72. package/dist/src/file-storage/dto.schemas.d.ts +1238 -0
  73. package/dist/src/file-storage/errors/index.d.ts +19 -0
  74. package/dist/src/file-storage/errors/locales/zh.d.ts +18 -0
  75. package/dist/src/file-storage/index.d.ts +6 -0
  76. package/dist/src/file-storage/permissions.d.ts +5 -0
  77. package/dist/src/file-storage/router.d.ts +588 -0
  78. package/dist/src/file-storage/s3.client.d.ts +284 -0
  79. package/dist/src/file-storage/schema.d.ts +538 -0
  80. package/dist/src/file-storage/service.d.ts +264 -0
  81. package/dist/src/file-storage/share.router.d.ts +564 -0
  82. package/dist/src/index.d.ts +8664 -0
  83. package/dist/src/ledger/admin.router.d.ts +524 -0
  84. package/dist/src/ledger/db.schemas.d.ts +486 -0
  85. package/dist/src/ledger/dto.schemas.d.ts +160 -0
  86. package/dist/src/ledger/errors/index.d.ts +22 -0
  87. package/dist/src/ledger/errors/locales/zh.d.ts +14 -0
  88. package/dist/src/ledger/index.d.ts +6 -0
  89. package/dist/src/ledger/permissions.d.ts +8 -0
  90. package/dist/src/ledger/router.d.ts +486 -0
  91. package/dist/src/ledger/schema.d.ts +259 -0
  92. package/dist/src/ledger/service.d.ts +208 -0
  93. package/dist/src/nanoid/index.d.ts +2 -0
  94. package/dist/src/news/admin.router.d.ts +824 -0
  95. package/dist/src/news/db.schemas.d.ts +1150 -0
  96. package/dist/src/news/dto.schemas.d.ts +233 -0
  97. package/dist/src/news/errors/index.d.ts +20 -0
  98. package/dist/src/news/errors/locales/zh.d.ts +13 -0
  99. package/dist/src/news/index.d.ts +6 -0
  100. package/dist/src/news/permissions.d.ts +4 -0
  101. package/dist/src/news/router.d.ts +620 -0
  102. package/dist/src/news/schema.d.ts +616 -0
  103. package/dist/src/news/service.d.ts +495 -0
  104. package/dist/src/news-category/admin.router.d.ts +207 -0
  105. package/dist/src/news-category/constants.d.ts +1 -0
  106. package/dist/src/news-category/db.schemas.d.ts +324 -0
  107. package/dist/src/news-category/dto.schemas.d.ts +57 -0
  108. package/dist/src/news-category/errors/index.d.ts +19 -0
  109. package/dist/src/news-category/errors/locales/zh.d.ts +13 -0
  110. package/dist/src/news-category/index.d.ts +7 -0
  111. package/dist/src/news-category/permissions.d.ts +4 -0
  112. package/dist/src/news-category/router.d.ts +460 -0
  113. package/dist/src/news-category/schema.d.ts +173 -0
  114. package/dist/src/news-category/seed.d.ts +12 -0
  115. package/dist/src/news-category/service.d.ts +105 -0
  116. package/dist/src/notification/admin.router.d.ts +582 -0
  117. package/dist/src/notification/db.schemas.d.ts +624 -0
  118. package/dist/src/notification/dto.schemas.d.ts +457 -0
  119. package/dist/src/notification/errors/index.d.ts +19 -0
  120. package/dist/src/notification/errors/locales/zh.d.ts +13 -0
  121. package/dist/src/notification/index.d.ts +7 -0
  122. package/dist/src/notification/permissions.d.ts +6 -0
  123. package/dist/src/notification/router.d.ts +626 -0
  124. package/dist/src/notification/schema.d.ts +347 -0
  125. package/dist/src/notification/service.d.ts +195 -0
  126. package/dist/src/receipt-method/admin.router.d.ts +579 -0
  127. package/dist/src/receipt-method/db.schemas.d.ts +380 -0
  128. package/dist/src/receipt-method/dto.schemas.d.ts +418 -0
  129. package/dist/src/receipt-method/index.d.ts +7 -0
  130. package/dist/src/receipt-method/permissions.d.ts +4 -0
  131. package/dist/src/receipt-method/router.d.ts +602 -0
  132. package/dist/src/receipt-method/schema.d.ts +205 -0
  133. package/dist/src/receipt-method/service.d.ts +152 -0
  134. package/dist/src/referral/admin.router.d.ts +562 -0
  135. package/dist/src/referral/db.schemas.d.ts +420 -0
  136. package/dist/src/referral/dto.schemas.d.ts +665 -0
  137. package/dist/src/referral/errors/index.d.ts +14 -0
  138. package/dist/src/referral/errors/locales/zh.d.ts +13 -0
  139. package/dist/src/referral/index.d.ts +6 -0
  140. package/dist/src/referral/permissions.d.ts +8 -0
  141. package/dist/src/referral/router.d.ts +579 -0
  142. package/dist/src/referral/schema.d.ts +235 -0
  143. package/dist/src/referral/service.d.ts +42 -0
  144. package/dist/src/referral-depth-config/admin.router.d.ts +646 -0
  145. package/dist/src/referral-depth-config/db.schemas.d.ts +176 -0
  146. package/dist/src/referral-depth-config/dto.schemas.d.ts +208 -0
  147. package/dist/src/referral-depth-config/errors/index.d.ts +11 -0
  148. package/dist/src/referral-depth-config/errors/locales/zh.d.ts +10 -0
  149. package/dist/src/referral-depth-config/index.d.ts +5 -0
  150. package/dist/src/referral-depth-config/permissions.d.ts +8 -0
  151. package/dist/src/referral-depth-config/schema.d.ts +99 -0
  152. package/dist/src/referral-depth-config/service.d.ts +56 -0
  153. package/dist/src/server-test/errors/index.d.ts +10 -0
  154. package/dist/src/server-test/errors/locales/zh.d.ts +9 -0
  155. package/dist/src/server-test/index.d.ts +486 -0
  156. package/dist/src/shipping-address/admin.router.d.ts +507 -0
  157. package/dist/src/shipping-address/db.schemas.d.ts +278 -0
  158. package/dist/src/shipping-address/dto.schemas.d.ts +303 -0
  159. package/dist/src/shipping-address/index.d.ts +7 -0
  160. package/dist/src/shipping-address/permissions.d.ts +4 -0
  161. package/dist/src/shipping-address/router.d.ts +621 -0
  162. package/dist/src/shipping-address/schema.d.ts +150 -0
  163. package/dist/src/shipping-address/service.d.ts +109 -0
  164. package/dist/src/sms/index.d.ts +5 -0
  165. package/dist/src/subscription/admin.router.d.ts +818 -0
  166. package/dist/src/subscription/cron.d.ts +53 -0
  167. package/dist/src/subscription/db.schemas.d.ts +896 -0
  168. package/dist/src/subscription/dto.schemas.d.ts +1942 -0
  169. package/dist/src/subscription/errors/index.d.ts +21 -0
  170. package/dist/src/subscription/errors/locales/zh.d.ts +20 -0
  171. package/dist/src/subscription/index.d.ts +7 -0
  172. package/dist/src/subscription/permissions.d.ts +5 -0
  173. package/dist/src/subscription/router.d.ts +625 -0
  174. package/dist/src/subscription/schema.d.ts +475 -0
  175. package/dist/src/subscription/service.d.ts +306 -0
  176. package/dist/src/team/admin.router.d.ts +569 -0
  177. package/dist/src/team/dto.schemas.d.ts +2110 -0
  178. package/dist/src/team/errors/index.d.ts +12 -0
  179. package/dist/src/team/errors/locales/zh.d.ts +11 -0
  180. package/dist/src/team/index.d.ts +5 -0
  181. package/dist/src/team/permissions.d.ts +7 -0
  182. package/dist/src/team/router.d.ts +737 -0
  183. package/dist/src/team/service.d.ts +40 -0
  184. package/dist/src/transfer/admin.router.d.ts +595 -0
  185. package/dist/src/transfer/db.schemas.d.ts +318 -0
  186. package/dist/src/transfer/dto.schemas.d.ts +4209 -0
  187. package/dist/src/transfer/errors/index.d.ts +32 -0
  188. package/dist/src/transfer/errors/locales/zh.d.ts +19 -0
  189. package/dist/src/transfer/index.d.ts +8 -0
  190. package/dist/src/transfer/permissions.d.ts +8 -0
  191. package/dist/src/transfer/router.d.ts +597 -0
  192. package/dist/src/transfer/schema.d.ts +169 -0
  193. package/dist/src/transfer/service.d.ts +232 -0
  194. package/dist/src/user/admin.router.d.ts +827 -0
  195. package/dist/src/user/db.schemas.d.ts +1038 -0
  196. package/dist/src/user/dto.schemas.d.ts +1446 -0
  197. package/dist/src/user/errors/index.d.ts +38 -0
  198. package/dist/src/user/errors/locales/zh.d.ts +22 -0
  199. package/dist/src/user/index.d.ts +7 -0
  200. package/dist/src/user/permissions.d.ts +7 -0
  201. package/dist/src/user/router.d.ts +560 -0
  202. package/dist/src/user/schema.d.ts +541 -0
  203. package/dist/src/user/service.d.ts +294 -0
  204. package/dist/src/user-kyc/admin.router.d.ts +669 -0
  205. package/dist/src/user-kyc/db.schemas.d.ts +896 -0
  206. package/dist/src/user-kyc/dto.schemas.d.ts +939 -0
  207. package/dist/src/user-kyc/errors/index.d.ts +21 -0
  208. package/dist/src/user-kyc/errors/locales/zh.d.ts +14 -0
  209. package/dist/src/user-kyc/index.d.ts +8 -0
  210. package/dist/src/user-kyc/permissions.d.ts +6 -0
  211. package/dist/src/user-kyc/router.d.ts +602 -0
  212. package/dist/src/user-kyc/schema.d.ts +474 -0
  213. package/dist/src/user-kyc/service.d.ts +170 -0
  214. package/dist/src/user-security/admin.router.d.ts +493 -0
  215. package/dist/src/user-security/db.schemas.d.ts +414 -0
  216. package/dist/src/user-security/dto.schemas.d.ts +36 -0
  217. package/dist/src/user-security/index.d.ts +6 -0
  218. package/dist/src/user-security/router.d.ts +547 -0
  219. package/dist/src/user-security/schema.d.ts +215 -0
  220. package/dist/src/user-security/service.d.ts +51 -0
  221. package/dist/src/utils/date.d.ts +21 -0
  222. package/dist/src/utils/index.d.ts +4 -0
  223. package/dist/src/utils/order.d.ts +6 -0
  224. package/dist/src/utils/pagination.d.ts +113 -0
  225. package/dist/src/utils/password.d.ts +8 -0
  226. package/dist/src/wallet/admin.router.d.ts +616 -0
  227. package/dist/src/wallet/db.schemas.d.ts +278 -0
  228. package/dist/src/wallet/dto.schemas.d.ts +1690 -0
  229. package/dist/src/wallet/ensure.d.ts +11 -0
  230. package/dist/src/wallet/index.d.ts +6 -0
  231. package/dist/src/wallet/router.d.ts +654 -0
  232. package/dist/src/wallet/schema.d.ts +152 -0
  233. package/dist/src/wallet/service.d.ts +225 -0
  234. package/dist/src/wallet-import/admin.router.d.ts +690 -0
  235. package/dist/src/wallet-import/db.schemas.d.ts +1070 -0
  236. package/dist/src/wallet-import/dto.schemas.d.ts +1119 -0
  237. package/dist/src/wallet-import/errors/index.d.ts +17 -0
  238. package/dist/src/wallet-import/errors/locales/zh.d.ts +16 -0
  239. package/dist/src/wallet-import/index.d.ts +8 -0
  240. package/dist/src/wallet-import/permissions.d.ts +7 -0
  241. package/dist/src/wallet-import/schema.d.ts +566 -0
  242. package/dist/src/wallet-import/service.d.ts +101 -0
  243. package/dist/src/wallet-import/worker.d.ts +1 -0
  244. package/dist/src/wallet-transfer/dto.schemas.d.ts +64 -0
  245. package/dist/src/wallet-transfer/errors/index.d.ts +25 -0
  246. package/dist/src/wallet-transfer/errors/locales/zh.d.ts +16 -0
  247. package/dist/src/wallet-transfer/index.d.ts +4 -0
  248. package/dist/src/wallet-transfer/router.d.ts +465 -0
  249. package/dist/src/wallet-transfer/service.d.ts +26 -0
  250. package/dist/src/wallet-type/admin.router.d.ts +767 -0
  251. package/dist/src/wallet-type/constants.d.ts +4 -0
  252. package/dist/src/wallet-type/db.schemas.d.ts +794 -0
  253. package/dist/src/wallet-type/dto.schemas.d.ts +160 -0
  254. package/dist/src/wallet-type/errors/index.d.ts +25 -0
  255. package/dist/src/wallet-type/errors/locales/zh.d.ts +16 -0
  256. package/dist/src/wallet-type/index.d.ts +7 -0
  257. package/dist/src/wallet-type/permissions.d.ts +5 -0
  258. package/dist/src/wallet-type/schema.d.ts +408 -0
  259. package/dist/src/wallet-type/seed.d.ts +4 -0
  260. package/dist/src/wallet-type/service.d.ts +208 -0
  261. package/dist/src/withdraw/admin.router.d.ts +654 -0
  262. package/dist/src/withdraw/db.schemas.d.ts +516 -0
  263. package/dist/src/withdraw/dto.schemas.d.ts +816 -0
  264. package/dist/src/withdraw/errors/index.d.ts +41 -0
  265. package/dist/src/withdraw/errors/locales/zh.d.ts +22 -0
  266. package/dist/src/withdraw/index.d.ts +7 -0
  267. package/dist/src/withdraw/permissions.d.ts +9 -0
  268. package/dist/src/withdraw/router.d.ts +522 -0
  269. package/dist/src/withdraw/schema.d.ts +272 -0
  270. package/dist/src/withdraw/service.d.ts +143 -0
  271. package/package.json +19 -0
@@ -0,0 +1,495 @@
1
+ import type { NewsCreateInput, NewsListQuery, NewsUpdateInput } from "./dto.schemas";
2
+ /**
3
+ * 管理侧新闻服务
4
+ */
5
+ export declare abstract class AdminNewsService {
6
+ /**
7
+ * 创建新闻
8
+ */
9
+ static createNews(data: NewsCreateInput, createdBy: string): Promise<{
10
+ id: string;
11
+ createdAt: Date;
12
+ updatedAt: Date;
13
+ expiresAt: Date | null;
14
+ scope: string[];
15
+ deletedAt: Date | null;
16
+ status: "archived" | "draft" | "published";
17
+ sortOrder: number;
18
+ createdBy: string;
19
+ title: string;
20
+ content: string;
21
+ summary: string | null;
22
+ categoryId: string;
23
+ isPinned: boolean;
24
+ isHot: boolean;
25
+ hasVideo: boolean;
26
+ requireReadConfirmation: boolean;
27
+ externalUrl: string | null;
28
+ viewCount: number;
29
+ publishedAt: Date | null;
30
+ thumbnailId: string | null;
31
+ attachmentIds: string[] | null;
32
+ } | undefined>;
33
+ /**
34
+ * 更新新闻
35
+ */
36
+ static updateNews(id: string, data: NewsUpdateInput): Promise<{
37
+ deletedAt: Date | null;
38
+ createdAt: Date;
39
+ updatedAt: Date;
40
+ id: string;
41
+ title: string;
42
+ summary: string | null;
43
+ content: string;
44
+ categoryId: string;
45
+ status: "archived" | "draft" | "published";
46
+ scope: string[];
47
+ isPinned: boolean;
48
+ isHot: boolean;
49
+ hasVideo: boolean;
50
+ sortOrder: number;
51
+ requireReadConfirmation: boolean;
52
+ externalUrl: string | null;
53
+ viewCount: number;
54
+ publishedAt: Date | null;
55
+ expiresAt: Date | null;
56
+ thumbnailId: string | null;
57
+ attachmentIds: string[] | null;
58
+ createdBy: string;
59
+ } | undefined>;
60
+ /**
61
+ * 删除新闻(软删除)
62
+ */
63
+ static deleteNews(id: string): Promise<{
64
+ success: boolean;
65
+ }>;
66
+ /**
67
+ * 获取新闻详情
68
+ */
69
+ static getNews(id: string): Promise<{
70
+ id: string;
71
+ createdAt: Date;
72
+ updatedAt: Date;
73
+ expiresAt: Date | null;
74
+ scope: string[];
75
+ deletedAt: Date | null;
76
+ status: "archived" | "draft" | "published";
77
+ sortOrder: number;
78
+ createdBy: string;
79
+ title: string;
80
+ content: string;
81
+ summary: string | null;
82
+ categoryId: string;
83
+ isPinned: boolean;
84
+ isHot: boolean;
85
+ hasVideo: boolean;
86
+ requireReadConfirmation: boolean;
87
+ externalUrl: string | null;
88
+ viewCount: number;
89
+ publishedAt: Date | null;
90
+ thumbnailId: string | null;
91
+ attachmentIds: string[] | null;
92
+ category: {
93
+ id: string;
94
+ name: string;
95
+ createdAt: Date;
96
+ updatedAt: Date;
97
+ description: string | null;
98
+ isActive: boolean;
99
+ sortOrder: number;
100
+ slug: string | null;
101
+ icon: string | null;
102
+ };
103
+ thumbnail: {
104
+ id: string;
105
+ createdAt: Date;
106
+ updatedAt: Date;
107
+ deletedAt: Date | null;
108
+ fileName: string | null;
109
+ fileSize: number | null;
110
+ mimeType: string | null;
111
+ fileExtension: string | null;
112
+ fileHash: string | null;
113
+ s3Bucket: string;
114
+ s3Key: string;
115
+ s3Region: string;
116
+ s3ETag: string | null;
117
+ businessType: "other" | "kyc_document" | "contract" | "financial_report" | "wallet_import" | "avatar" | "cover_image" | "notification_attachment" | "transaction_receipt" | "export_report" | "bank_verification" | "news_attachment";
118
+ businessId: string | null;
119
+ businessMetadata: string | null;
120
+ ownerId: string;
121
+ accessControl: "private" | "restricted" | "public" | null;
122
+ status: "uploading" | "active" | "archived" | "pending_deletion" | null;
123
+ publicUrl: string | null;
124
+ thumbnailUrl: string | null;
125
+ archivedAt: Date | null;
126
+ uploadCompletedAt: Date | null;
127
+ uploadIpAddress: string | null;
128
+ downloadCount: number | null;
129
+ lastDownloadedAt: Date | null;
130
+ isVerified: boolean | null;
131
+ verifiedBy: string | null;
132
+ verifiedAt: Date | null;
133
+ verificationNote: string | null;
134
+ } | null;
135
+ }>;
136
+ /**
137
+ * 获取新闻列表(带分页)
138
+ */
139
+ static listNews(filters?: NewsListQuery): Promise<{
140
+ data: {
141
+ id: string;
142
+ createdAt: Date;
143
+ updatedAt: Date;
144
+ expiresAt: Date | null;
145
+ scope: string[];
146
+ deletedAt: Date | null;
147
+ status: "archived" | "draft" | "published";
148
+ sortOrder: number;
149
+ createdBy: string;
150
+ title: string;
151
+ content: string;
152
+ summary: string | null;
153
+ categoryId: string;
154
+ isPinned: boolean;
155
+ isHot: boolean;
156
+ hasVideo: boolean;
157
+ requireReadConfirmation: boolean;
158
+ externalUrl: string | null;
159
+ viewCount: number;
160
+ publishedAt: Date | null;
161
+ thumbnailId: string | null;
162
+ attachmentIds: string[] | null;
163
+ category: {
164
+ id: string;
165
+ name: string;
166
+ createdAt: Date;
167
+ updatedAt: Date;
168
+ description: string | null;
169
+ isActive: boolean;
170
+ sortOrder: number;
171
+ slug: string | null;
172
+ icon: string | null;
173
+ };
174
+ }[];
175
+ pagination: {
176
+ pageSize: number;
177
+ pageIndex: number;
178
+ total: number;
179
+ totalPages: number;
180
+ hasNextPage: boolean;
181
+ };
182
+ }>;
183
+ /**
184
+ * 置顶/取消置顶新闻
185
+ */
186
+ static togglePin(id: string, isPinned: boolean, sortOrder?: number): Promise<{
187
+ deletedAt: Date | null;
188
+ createdAt: Date;
189
+ updatedAt: Date;
190
+ id: string;
191
+ title: string;
192
+ summary: string | null;
193
+ content: string;
194
+ categoryId: string;
195
+ status: "archived" | "draft" | "published";
196
+ scope: string[];
197
+ isPinned: boolean;
198
+ isHot: boolean;
199
+ hasVideo: boolean;
200
+ sortOrder: number;
201
+ requireReadConfirmation: boolean;
202
+ externalUrl: string | null;
203
+ viewCount: number;
204
+ publishedAt: Date | null;
205
+ expiresAt: Date | null;
206
+ thumbnailId: string | null;
207
+ attachmentIds: string[] | null;
208
+ createdBy: string;
209
+ } | undefined>;
210
+ /**
211
+ * 标记/取消热点新闻
212
+ */
213
+ static toggleHot(id: string, isHot: boolean): Promise<{
214
+ deletedAt: Date | null;
215
+ createdAt: Date;
216
+ updatedAt: Date;
217
+ id: string;
218
+ title: string;
219
+ summary: string | null;
220
+ content: string;
221
+ categoryId: string;
222
+ status: "archived" | "draft" | "published";
223
+ scope: string[];
224
+ isPinned: boolean;
225
+ isHot: boolean;
226
+ hasVideo: boolean;
227
+ sortOrder: number;
228
+ requireReadConfirmation: boolean;
229
+ externalUrl: string | null;
230
+ viewCount: number;
231
+ publishedAt: Date | null;
232
+ expiresAt: Date | null;
233
+ thumbnailId: string | null;
234
+ attachmentIds: string[] | null;
235
+ createdBy: string;
236
+ } | undefined>;
237
+ /**
238
+ * 获取新闻统计
239
+ */
240
+ static getNewsStats(): Promise<{
241
+ total: number;
242
+ published: number;
243
+ pinned: number;
244
+ requireConfirmation: number;
245
+ }>;
246
+ }
247
+ /**
248
+ * 用户侧新闻服务
249
+ */
250
+ export declare abstract class UserNewsService {
251
+ /**
252
+ * 获取已发布的新闻列表
253
+ */
254
+ static listPublishedNews(filters?: NewsListQuery, userId?: string): Promise<{
255
+ data: {
256
+ id: string;
257
+ createdAt: Date;
258
+ updatedAt: Date;
259
+ expiresAt: Date | null;
260
+ scope: string[];
261
+ deletedAt: Date | null;
262
+ status: "archived" | "draft" | "published";
263
+ sortOrder: number;
264
+ createdBy: string;
265
+ title: string;
266
+ content: string;
267
+ summary: string | null;
268
+ categoryId: string;
269
+ isPinned: boolean;
270
+ isHot: boolean;
271
+ hasVideo: boolean;
272
+ requireReadConfirmation: boolean;
273
+ externalUrl: string | null;
274
+ viewCount: number;
275
+ publishedAt: Date | null;
276
+ thumbnailId: string | null;
277
+ attachmentIds: string[] | null;
278
+ category: {
279
+ id: string;
280
+ name: string;
281
+ createdAt: Date;
282
+ updatedAt: Date;
283
+ description: string | null;
284
+ isActive: boolean;
285
+ sortOrder: number;
286
+ slug: string | null;
287
+ icon: string | null;
288
+ };
289
+ thumbnail: {
290
+ id: string;
291
+ fileName: string | null;
292
+ publicUrl: string | null;
293
+ } | null;
294
+ }[];
295
+ pagination: {
296
+ pageSize: number;
297
+ pageIndex: number;
298
+ total: number;
299
+ totalPages: number;
300
+ hasNextPage: boolean;
301
+ };
302
+ }>;
303
+ /**
304
+ * 获取新闻详情(自动记录阅读)
305
+ */
306
+ static getNewsDetail(id: string, userId?: string): Promise<{
307
+ id: string;
308
+ createdAt: Date;
309
+ updatedAt: Date;
310
+ expiresAt: Date | null;
311
+ scope: string[];
312
+ deletedAt: Date | null;
313
+ status: "archived" | "draft" | "published";
314
+ sortOrder: number;
315
+ createdBy: string;
316
+ title: string;
317
+ content: string;
318
+ summary: string | null;
319
+ categoryId: string;
320
+ isPinned: boolean;
321
+ isHot: boolean;
322
+ hasVideo: boolean;
323
+ requireReadConfirmation: boolean;
324
+ externalUrl: string | null;
325
+ viewCount: number;
326
+ publishedAt: Date | null;
327
+ thumbnailId: string | null;
328
+ attachmentIds: string[] | null;
329
+ category: {
330
+ id: string;
331
+ name: string;
332
+ createdAt: Date;
333
+ updatedAt: Date;
334
+ description: string | null;
335
+ isActive: boolean;
336
+ sortOrder: number;
337
+ slug: string | null;
338
+ icon: string | null;
339
+ };
340
+ thumbnail: {
341
+ id: string;
342
+ createdAt: Date;
343
+ updatedAt: Date;
344
+ deletedAt: Date | null;
345
+ fileName: string | null;
346
+ fileSize: number | null;
347
+ mimeType: string | null;
348
+ fileExtension: string | null;
349
+ fileHash: string | null;
350
+ s3Bucket: string;
351
+ s3Key: string;
352
+ s3Region: string;
353
+ s3ETag: string | null;
354
+ businessType: "other" | "kyc_document" | "contract" | "financial_report" | "wallet_import" | "avatar" | "cover_image" | "notification_attachment" | "transaction_receipt" | "export_report" | "bank_verification" | "news_attachment";
355
+ businessId: string | null;
356
+ businessMetadata: string | null;
357
+ ownerId: string;
358
+ accessControl: "private" | "restricted" | "public" | null;
359
+ status: "uploading" | "active" | "archived" | "pending_deletion" | null;
360
+ publicUrl: string | null;
361
+ thumbnailUrl: string | null;
362
+ archivedAt: Date | null;
363
+ uploadCompletedAt: Date | null;
364
+ uploadIpAddress: string | null;
365
+ downloadCount: number | null;
366
+ lastDownloadedAt: Date | null;
367
+ isVerified: boolean | null;
368
+ verifiedBy: string | null;
369
+ verifiedAt: Date | null;
370
+ verificationNote: string | null;
371
+ } | null;
372
+ } | {
373
+ hasConfirmed: boolean;
374
+ id: string;
375
+ createdAt: Date;
376
+ updatedAt: Date;
377
+ expiresAt: Date | null;
378
+ scope: string[];
379
+ deletedAt: Date | null;
380
+ status: "archived" | "draft" | "published";
381
+ sortOrder: number;
382
+ createdBy: string;
383
+ title: string;
384
+ content: string;
385
+ summary: string | null;
386
+ categoryId: string;
387
+ isPinned: boolean;
388
+ isHot: boolean;
389
+ hasVideo: boolean;
390
+ requireReadConfirmation: boolean;
391
+ externalUrl: string | null;
392
+ viewCount: number;
393
+ publishedAt: Date | null;
394
+ thumbnailId: string | null;
395
+ attachmentIds: string[] | null;
396
+ category: {
397
+ id: string;
398
+ name: string;
399
+ createdAt: Date;
400
+ updatedAt: Date;
401
+ description: string | null;
402
+ isActive: boolean;
403
+ sortOrder: number;
404
+ slug: string | null;
405
+ icon: string | null;
406
+ };
407
+ thumbnail: {
408
+ id: string;
409
+ createdAt: Date;
410
+ updatedAt: Date;
411
+ deletedAt: Date | null;
412
+ fileName: string | null;
413
+ fileSize: number | null;
414
+ mimeType: string | null;
415
+ fileExtension: string | null;
416
+ fileHash: string | null;
417
+ s3Bucket: string;
418
+ s3Key: string;
419
+ s3Region: string;
420
+ s3ETag: string | null;
421
+ businessType: "other" | "kyc_document" | "contract" | "financial_report" | "wallet_import" | "avatar" | "cover_image" | "notification_attachment" | "transaction_receipt" | "export_report" | "bank_verification" | "news_attachment";
422
+ businessId: string | null;
423
+ businessMetadata: string | null;
424
+ ownerId: string;
425
+ accessControl: "private" | "restricted" | "public" | null;
426
+ status: "uploading" | "active" | "archived" | "pending_deletion" | null;
427
+ publicUrl: string | null;
428
+ thumbnailUrl: string | null;
429
+ archivedAt: Date | null;
430
+ uploadCompletedAt: Date | null;
431
+ uploadIpAddress: string | null;
432
+ downloadCount: number | null;
433
+ lastDownloadedAt: Date | null;
434
+ isVerified: boolean | null;
435
+ verifiedBy: string | null;
436
+ verifiedAt: Date | null;
437
+ verificationNote: string | null;
438
+ } | null;
439
+ }>;
440
+ /**
441
+ * 确认已读重要公告
442
+ */
443
+ static confirmRead(newsId: string, userId: string): Promise<{
444
+ id: string;
445
+ userId: string;
446
+ newsId: string;
447
+ confirmedAt: Date;
448
+ } | undefined>;
449
+ /**
450
+ * 获取待确认的重要公告
451
+ */
452
+ static getPendingConfirmations(userId: string): Promise<{
453
+ id: string;
454
+ createdAt: Date;
455
+ updatedAt: Date;
456
+ expiresAt: Date | null;
457
+ scope: string[];
458
+ deletedAt: Date | null;
459
+ status: "archived" | "draft" | "published";
460
+ sortOrder: number;
461
+ createdBy: string;
462
+ title: string;
463
+ content: string;
464
+ summary: string | null;
465
+ categoryId: string;
466
+ isPinned: boolean;
467
+ isHot: boolean;
468
+ hasVideo: boolean;
469
+ requireReadConfirmation: boolean;
470
+ externalUrl: string | null;
471
+ viewCount: number;
472
+ publishedAt: Date | null;
473
+ thumbnailId: string | null;
474
+ attachmentIds: string[] | null;
475
+ category: {
476
+ id: string;
477
+ name: string;
478
+ createdAt: Date;
479
+ updatedAt: Date;
480
+ description: string | null;
481
+ isActive: boolean;
482
+ sortOrder: number;
483
+ slug: string | null;
484
+ icon: string | null;
485
+ };
486
+ }[]>;
487
+ /**
488
+ * 记录阅读日志
489
+ */
490
+ private static recordReadLog;
491
+ /**
492
+ * 增加阅读数
493
+ */
494
+ private static incrementViewCount;
495
+ }
@@ -0,0 +1,207 @@
1
+ import Elysia from "elysia";
2
+ /**
3
+ * 管理端新闻分类路由
4
+ */
5
+ export declare const newsCategoryAdminRouter: Elysia<"/news_categories", {
6
+ decorator: {};
7
+ store: {};
8
+ derive: {};
9
+ resolve: {};
10
+ }, {
11
+ typebox: {};
12
+ error: {};
13
+ }, {
14
+ schema: {};
15
+ standaloneSchema: {};
16
+ macro: {};
17
+ macroFn: {};
18
+ parser: {};
19
+ response: {};
20
+ }, {
21
+ news_categories: {
22
+ post: {
23
+ body: {
24
+ description?: string | null | undefined;
25
+ isActive?: boolean | undefined;
26
+ sortOrder?: number | undefined;
27
+ slug?: string | null | undefined;
28
+ icon?: string | null | undefined;
29
+ name: string;
30
+ };
31
+ params: {};
32
+ query: unknown;
33
+ headers: unknown;
34
+ response: {
35
+ 200: {
36
+ id: string;
37
+ name: string;
38
+ createdAt: Date;
39
+ updatedAt: Date;
40
+ description: string | null;
41
+ isActive: boolean;
42
+ sortOrder: number;
43
+ slug: string | null;
44
+ icon: string | null;
45
+ };
46
+ 422: {
47
+ type: "validation";
48
+ on: string;
49
+ summary?: string;
50
+ message?: string;
51
+ found?: unknown;
52
+ property?: string;
53
+ expected?: string;
54
+ };
55
+ };
56
+ };
57
+ };
58
+ } & {
59
+ news_categories: {
60
+ get: {
61
+ body: unknown;
62
+ params: {};
63
+ query: {
64
+ isActive?: boolean | undefined;
65
+ limit?: number | undefined;
66
+ offset?: number | undefined;
67
+ pageSize?: number | undefined;
68
+ pageIndex?: number | undefined;
69
+ };
70
+ headers: unknown;
71
+ response: {
72
+ 200: {
73
+ data: {
74
+ id: string;
75
+ name: string;
76
+ description: string | null;
77
+ isActive: boolean;
78
+ sortOrder: number;
79
+ slug: string | null;
80
+ icon: string | null;
81
+ }[];
82
+ pagination: {
83
+ total: number;
84
+ pageSize: number;
85
+ pageIndex: number;
86
+ totalPages: number;
87
+ hasNextPage: boolean;
88
+ };
89
+ };
90
+ 422: {
91
+ type: "validation";
92
+ on: string;
93
+ summary?: string;
94
+ message?: string;
95
+ found?: unknown;
96
+ property?: string;
97
+ expected?: string;
98
+ };
99
+ };
100
+ };
101
+ };
102
+ } & {
103
+ news_categories: {
104
+ ":id": {
105
+ get: {
106
+ body: unknown;
107
+ params: {
108
+ id: string;
109
+ };
110
+ query: unknown;
111
+ headers: unknown;
112
+ response: {
113
+ 200: {
114
+ id: string;
115
+ name: string;
116
+ createdAt: Date;
117
+ updatedAt: Date;
118
+ description: string | null;
119
+ isActive: boolean;
120
+ sortOrder: number;
121
+ slug: string | null;
122
+ icon: string | null;
123
+ };
124
+ 422: {
125
+ type: "validation";
126
+ on: string;
127
+ summary?: string;
128
+ message?: string;
129
+ found?: unknown;
130
+ property?: string;
131
+ expected?: string;
132
+ };
133
+ };
134
+ };
135
+ };
136
+ };
137
+ } & {
138
+ news_categories: {
139
+ ":id": {
140
+ patch: {
141
+ body: {
142
+ name?: string | undefined;
143
+ description?: string | null | undefined;
144
+ isActive?: boolean | undefined;
145
+ sortOrder?: number | undefined;
146
+ slug?: string | null | undefined;
147
+ icon?: string | null | undefined;
148
+ };
149
+ params: {
150
+ id: string;
151
+ };
152
+ query: unknown;
153
+ headers: unknown;
154
+ response: {
155
+ 422: {
156
+ type: "validation";
157
+ on: string;
158
+ summary?: string;
159
+ message?: string;
160
+ found?: unknown;
161
+ property?: string;
162
+ expected?: string;
163
+ };
164
+ };
165
+ };
166
+ };
167
+ };
168
+ } & {
169
+ news_categories: {
170
+ ":id": {
171
+ delete: {
172
+ body: unknown;
173
+ params: {
174
+ id: string;
175
+ };
176
+ query: unknown;
177
+ headers: unknown;
178
+ response: {
179
+ 200: {
180
+ success: boolean;
181
+ };
182
+ 422: {
183
+ type: "validation";
184
+ on: string;
185
+ summary?: string;
186
+ message?: string;
187
+ found?: unknown;
188
+ property?: string;
189
+ expected?: string;
190
+ };
191
+ };
192
+ };
193
+ };
194
+ };
195
+ }, {
196
+ derive: {};
197
+ resolve: {};
198
+ schema: {};
199
+ standaloneSchema: {};
200
+ response: {};
201
+ }, {
202
+ derive: {};
203
+ resolve: {};
204
+ schema: {};
205
+ standaloneSchema: {};
206
+ response: {};
207
+ }>;
@@ -0,0 +1 @@
1
+ export declare const defaultNewsCategoriesId = "019bc914-6d3e-7000-984e-9ecf25fa8857";