@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,4793 @@
1
+ import Elysia from "elysia";
2
+ export declare const adminRouter: Elysia<"/admin", {
3
+ decorator: {};
4
+ store: {};
5
+ derive: {};
6
+ resolve: {};
7
+ }, {
8
+ typebox: {};
9
+ error: {};
10
+ }, {
11
+ schema: {};
12
+ standaloneSchema: {};
13
+ macro: {};
14
+ macroFn: {};
15
+ parser: {};
16
+ response: {};
17
+ } & {
18
+ schema: {};
19
+ standaloneSchema: {};
20
+ macro: Partial<{
21
+ readonly auth: boolean;
22
+ readonly admin: boolean;
23
+ }>;
24
+ macroFn: {
25
+ readonly auth: {
26
+ readonly resolve: ({ status, request: { headers } }: {
27
+ body: unknown;
28
+ query: Record<string, string>;
29
+ params: {};
30
+ headers: Record<string, string | undefined>;
31
+ cookie: Record<string, import("elysia").Cookie<unknown>>;
32
+ server: import("elysia/universal/server").Server | null;
33
+ redirect: import("elysia").redirect;
34
+ set: {
35
+ headers: import("elysia").HTTPHeaders;
36
+ status?: number | keyof import("elysia").StatusMap;
37
+ redirect?: string;
38
+ cookie?: Record<string, import("elysia/cookies").ElysiaCookie>;
39
+ };
40
+ path: string;
41
+ route: string;
42
+ request: Request;
43
+ store: {};
44
+ status: <const Code extends number | keyof import("elysia").StatusMap, const T = Code extends 100 | 500 | 200 | 400 | 422 | 101 | 102 | 103 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 300 | 301 | 302 | 303 | 304 | 307 | 308 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 421 | 423 | 424 | 425 | 426 | 428 | 429 | 431 | 451 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 510 | 511 | 420 ? {
45
+ readonly 100: "Continue";
46
+ readonly 101: "Switching Protocols";
47
+ readonly 102: "Processing";
48
+ readonly 103: "Early Hints";
49
+ readonly 200: "OK";
50
+ readonly 201: "Created";
51
+ readonly 202: "Accepted";
52
+ readonly 203: "Non-Authoritative Information";
53
+ readonly 204: "No Content";
54
+ readonly 205: "Reset Content";
55
+ readonly 206: "Partial Content";
56
+ readonly 207: "Multi-Status";
57
+ readonly 208: "Already Reported";
58
+ readonly 300: "Multiple Choices";
59
+ readonly 301: "Moved Permanently";
60
+ readonly 302: "Found";
61
+ readonly 303: "See Other";
62
+ readonly 304: "Not Modified";
63
+ readonly 307: "Temporary Redirect";
64
+ readonly 308: "Permanent Redirect";
65
+ readonly 400: "Bad Request";
66
+ readonly 401: "Unauthorized";
67
+ readonly 402: "Payment Required";
68
+ readonly 403: "Forbidden";
69
+ readonly 404: "Not Found";
70
+ readonly 405: "Method Not Allowed";
71
+ readonly 406: "Not Acceptable";
72
+ readonly 407: "Proxy Authentication Required";
73
+ readonly 408: "Request Timeout";
74
+ readonly 409: "Conflict";
75
+ readonly 410: "Gone";
76
+ readonly 411: "Length Required";
77
+ readonly 412: "Precondition Failed";
78
+ readonly 413: "Payload Too Large";
79
+ readonly 414: "URI Too Long";
80
+ readonly 415: "Unsupported Media Type";
81
+ readonly 416: "Range Not Satisfiable";
82
+ readonly 417: "Expectation Failed";
83
+ readonly 418: "I'm a teapot";
84
+ readonly 420: "Enhance Your Calm";
85
+ readonly 421: "Misdirected Request";
86
+ readonly 422: "Unprocessable Content";
87
+ readonly 423: "Locked";
88
+ readonly 424: "Failed Dependency";
89
+ readonly 425: "Too Early";
90
+ readonly 426: "Upgrade Required";
91
+ readonly 428: "Precondition Required";
92
+ readonly 429: "Too Many Requests";
93
+ readonly 431: "Request Header Fields Too Large";
94
+ readonly 451: "Unavailable For Legal Reasons";
95
+ readonly 500: "Internal Server Error";
96
+ readonly 501: "Not Implemented";
97
+ readonly 502: "Bad Gateway";
98
+ readonly 503: "Service Unavailable";
99
+ readonly 504: "Gateway Timeout";
100
+ readonly 505: "HTTP Version Not Supported";
101
+ readonly 506: "Variant Also Negotiates";
102
+ readonly 507: "Insufficient Storage";
103
+ readonly 508: "Loop Detected";
104
+ readonly 510: "Not Extended";
105
+ readonly 511: "Network Authentication Required";
106
+ }[Code] : Code>(code: Code, response?: T) => import("elysia").ElysiaCustomStatusResponse<Code, T, Code extends "Continue" | "Switching Protocols" | "Processing" | "Early Hints" | "OK" | "Created" | "Accepted" | "Non-Authoritative Information" | "No Content" | "Reset Content" | "Partial Content" | "Multi-Status" | "Already Reported" | "Multiple Choices" | "Moved Permanently" | "Found" | "See Other" | "Not Modified" | "Temporary Redirect" | "Permanent Redirect" | "Bad Request" | "Unauthorized" | "Payment Required" | "Forbidden" | "Not Found" | "Method Not Allowed" | "Not Acceptable" | "Proxy Authentication Required" | "Request Timeout" | "Conflict" | "Gone" | "Length Required" | "Precondition Failed" | "Payload Too Large" | "URI Too Long" | "Unsupported Media Type" | "Range Not Satisfiable" | "Expectation Failed" | "I'm a teapot" | "Enhance Your Calm" | "Misdirected Request" | "Unprocessable Content" | "Locked" | "Failed Dependency" | "Too Early" | "Upgrade Required" | "Precondition Required" | "Too Many Requests" | "Request Header Fields Too Large" | "Unavailable For Legal Reasons" | "Internal Server Error" | "Not Implemented" | "Bad Gateway" | "Service Unavailable" | "Gateway Timeout" | "HTTP Version Not Supported" | "Variant Also Negotiates" | "Insufficient Storage" | "Loop Detected" | "Not Extended" | "Network Authentication Required" ? {
107
+ readonly Continue: 100;
108
+ readonly "Switching Protocols": 101;
109
+ readonly Processing: 102;
110
+ readonly "Early Hints": 103;
111
+ readonly OK: 200;
112
+ readonly Created: 201;
113
+ readonly Accepted: 202;
114
+ readonly "Non-Authoritative Information": 203;
115
+ readonly "No Content": 204;
116
+ readonly "Reset Content": 205;
117
+ readonly "Partial Content": 206;
118
+ readonly "Multi-Status": 207;
119
+ readonly "Already Reported": 208;
120
+ readonly "Multiple Choices": 300;
121
+ readonly "Moved Permanently": 301;
122
+ readonly Found: 302;
123
+ readonly "See Other": 303;
124
+ readonly "Not Modified": 304;
125
+ readonly "Temporary Redirect": 307;
126
+ readonly "Permanent Redirect": 308;
127
+ readonly "Bad Request": 400;
128
+ readonly Unauthorized: 401;
129
+ readonly "Payment Required": 402;
130
+ readonly Forbidden: 403;
131
+ readonly "Not Found": 404;
132
+ readonly "Method Not Allowed": 405;
133
+ readonly "Not Acceptable": 406;
134
+ readonly "Proxy Authentication Required": 407;
135
+ readonly "Request Timeout": 408;
136
+ readonly Conflict: 409;
137
+ readonly Gone: 410;
138
+ readonly "Length Required": 411;
139
+ readonly "Precondition Failed": 412;
140
+ readonly "Payload Too Large": 413;
141
+ readonly "URI Too Long": 414;
142
+ readonly "Unsupported Media Type": 415;
143
+ readonly "Range Not Satisfiable": 416;
144
+ readonly "Expectation Failed": 417;
145
+ readonly "I'm a teapot": 418;
146
+ readonly "Enhance Your Calm": 420;
147
+ readonly "Misdirected Request": 421;
148
+ readonly "Unprocessable Content": 422;
149
+ readonly Locked: 423;
150
+ readonly "Failed Dependency": 424;
151
+ readonly "Too Early": 425;
152
+ readonly "Upgrade Required": 426;
153
+ readonly "Precondition Required": 428;
154
+ readonly "Too Many Requests": 429;
155
+ readonly "Request Header Fields Too Large": 431;
156
+ readonly "Unavailable For Legal Reasons": 451;
157
+ readonly "Internal Server Error": 500;
158
+ readonly "Not Implemented": 501;
159
+ readonly "Bad Gateway": 502;
160
+ readonly "Service Unavailable": 503;
161
+ readonly "Gateway Timeout": 504;
162
+ readonly "HTTP Version Not Supported": 505;
163
+ readonly "Variant Also Negotiates": 506;
164
+ readonly "Insufficient Storage": 507;
165
+ readonly "Loop Detected": 508;
166
+ readonly "Not Extended": 510;
167
+ readonly "Network Authentication Required": 511;
168
+ }[Code] : Code>;
169
+ }) => Promise<import("elysia").ElysiaCustomStatusResponse<401, any, 401> | {
170
+ user: {
171
+ id: string;
172
+ createdAt: Date;
173
+ updatedAt: Date;
174
+ email: string;
175
+ emailVerified: boolean;
176
+ name: string;
177
+ image?: string | null | undefined | undefined;
178
+ phoneNumber?: string | null | undefined;
179
+ phoneNumberVerified?: boolean | null | undefined;
180
+ twoFactorEnabled: boolean | null | undefined;
181
+ username?: string | null | undefined;
182
+ displayUsername?: string | null | undefined;
183
+ banned: boolean | null | undefined;
184
+ role?: string | null | undefined;
185
+ banReason?: string | null | undefined;
186
+ banExpires?: Date | null | undefined;
187
+ };
188
+ session: {
189
+ id: string;
190
+ createdAt: Date;
191
+ updatedAt: Date;
192
+ userId: string;
193
+ expiresAt: Date;
194
+ token: string;
195
+ ipAddress?: string | null | undefined | undefined;
196
+ userAgent?: string | null | undefined | undefined;
197
+ impersonatedBy?: string | null | undefined;
198
+ };
199
+ }>;
200
+ };
201
+ readonly admin: {
202
+ readonly resolve: ({ status, request: { headers } }: {
203
+ body: unknown;
204
+ query: Record<string, string>;
205
+ params: {};
206
+ headers: Record<string, string | undefined>;
207
+ cookie: Record<string, import("elysia").Cookie<unknown>>;
208
+ server: import("elysia/universal/server").Server | null;
209
+ redirect: import("elysia").redirect;
210
+ set: {
211
+ headers: import("elysia").HTTPHeaders;
212
+ status?: number | keyof import("elysia").StatusMap;
213
+ redirect?: string;
214
+ cookie?: Record<string, import("elysia/cookies").ElysiaCookie>;
215
+ };
216
+ path: string;
217
+ route: string;
218
+ request: Request;
219
+ store: {};
220
+ status: <const Code extends number | keyof import("elysia").StatusMap, const T = Code extends 100 | 500 | 200 | 400 | 422 | 101 | 102 | 103 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 300 | 301 | 302 | 303 | 304 | 307 | 308 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 421 | 423 | 424 | 425 | 426 | 428 | 429 | 431 | 451 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 510 | 511 | 420 ? {
221
+ readonly 100: "Continue";
222
+ readonly 101: "Switching Protocols";
223
+ readonly 102: "Processing";
224
+ readonly 103: "Early Hints";
225
+ readonly 200: "OK";
226
+ readonly 201: "Created";
227
+ readonly 202: "Accepted";
228
+ readonly 203: "Non-Authoritative Information";
229
+ readonly 204: "No Content";
230
+ readonly 205: "Reset Content";
231
+ readonly 206: "Partial Content";
232
+ readonly 207: "Multi-Status";
233
+ readonly 208: "Already Reported";
234
+ readonly 300: "Multiple Choices";
235
+ readonly 301: "Moved Permanently";
236
+ readonly 302: "Found";
237
+ readonly 303: "See Other";
238
+ readonly 304: "Not Modified";
239
+ readonly 307: "Temporary Redirect";
240
+ readonly 308: "Permanent Redirect";
241
+ readonly 400: "Bad Request";
242
+ readonly 401: "Unauthorized";
243
+ readonly 402: "Payment Required";
244
+ readonly 403: "Forbidden";
245
+ readonly 404: "Not Found";
246
+ readonly 405: "Method Not Allowed";
247
+ readonly 406: "Not Acceptable";
248
+ readonly 407: "Proxy Authentication Required";
249
+ readonly 408: "Request Timeout";
250
+ readonly 409: "Conflict";
251
+ readonly 410: "Gone";
252
+ readonly 411: "Length Required";
253
+ readonly 412: "Precondition Failed";
254
+ readonly 413: "Payload Too Large";
255
+ readonly 414: "URI Too Long";
256
+ readonly 415: "Unsupported Media Type";
257
+ readonly 416: "Range Not Satisfiable";
258
+ readonly 417: "Expectation Failed";
259
+ readonly 418: "I'm a teapot";
260
+ readonly 420: "Enhance Your Calm";
261
+ readonly 421: "Misdirected Request";
262
+ readonly 422: "Unprocessable Content";
263
+ readonly 423: "Locked";
264
+ readonly 424: "Failed Dependency";
265
+ readonly 425: "Too Early";
266
+ readonly 426: "Upgrade Required";
267
+ readonly 428: "Precondition Required";
268
+ readonly 429: "Too Many Requests";
269
+ readonly 431: "Request Header Fields Too Large";
270
+ readonly 451: "Unavailable For Legal Reasons";
271
+ readonly 500: "Internal Server Error";
272
+ readonly 501: "Not Implemented";
273
+ readonly 502: "Bad Gateway";
274
+ readonly 503: "Service Unavailable";
275
+ readonly 504: "Gateway Timeout";
276
+ readonly 505: "HTTP Version Not Supported";
277
+ readonly 506: "Variant Also Negotiates";
278
+ readonly 507: "Insufficient Storage";
279
+ readonly 508: "Loop Detected";
280
+ readonly 510: "Not Extended";
281
+ readonly 511: "Network Authentication Required";
282
+ }[Code] : Code>(code: Code, response?: T) => import("elysia").ElysiaCustomStatusResponse<Code, T, Code extends "Continue" | "Switching Protocols" | "Processing" | "Early Hints" | "OK" | "Created" | "Accepted" | "Non-Authoritative Information" | "No Content" | "Reset Content" | "Partial Content" | "Multi-Status" | "Already Reported" | "Multiple Choices" | "Moved Permanently" | "Found" | "See Other" | "Not Modified" | "Temporary Redirect" | "Permanent Redirect" | "Bad Request" | "Unauthorized" | "Payment Required" | "Forbidden" | "Not Found" | "Method Not Allowed" | "Not Acceptable" | "Proxy Authentication Required" | "Request Timeout" | "Conflict" | "Gone" | "Length Required" | "Precondition Failed" | "Payload Too Large" | "URI Too Long" | "Unsupported Media Type" | "Range Not Satisfiable" | "Expectation Failed" | "I'm a teapot" | "Enhance Your Calm" | "Misdirected Request" | "Unprocessable Content" | "Locked" | "Failed Dependency" | "Too Early" | "Upgrade Required" | "Precondition Required" | "Too Many Requests" | "Request Header Fields Too Large" | "Unavailable For Legal Reasons" | "Internal Server Error" | "Not Implemented" | "Bad Gateway" | "Service Unavailable" | "Gateway Timeout" | "HTTP Version Not Supported" | "Variant Also Negotiates" | "Insufficient Storage" | "Loop Detected" | "Not Extended" | "Network Authentication Required" ? {
283
+ readonly Continue: 100;
284
+ readonly "Switching Protocols": 101;
285
+ readonly Processing: 102;
286
+ readonly "Early Hints": 103;
287
+ readonly OK: 200;
288
+ readonly Created: 201;
289
+ readonly Accepted: 202;
290
+ readonly "Non-Authoritative Information": 203;
291
+ readonly "No Content": 204;
292
+ readonly "Reset Content": 205;
293
+ readonly "Partial Content": 206;
294
+ readonly "Multi-Status": 207;
295
+ readonly "Already Reported": 208;
296
+ readonly "Multiple Choices": 300;
297
+ readonly "Moved Permanently": 301;
298
+ readonly Found: 302;
299
+ readonly "See Other": 303;
300
+ readonly "Not Modified": 304;
301
+ readonly "Temporary Redirect": 307;
302
+ readonly "Permanent Redirect": 308;
303
+ readonly "Bad Request": 400;
304
+ readonly Unauthorized: 401;
305
+ readonly "Payment Required": 402;
306
+ readonly Forbidden: 403;
307
+ readonly "Not Found": 404;
308
+ readonly "Method Not Allowed": 405;
309
+ readonly "Not Acceptable": 406;
310
+ readonly "Proxy Authentication Required": 407;
311
+ readonly "Request Timeout": 408;
312
+ readonly Conflict: 409;
313
+ readonly Gone: 410;
314
+ readonly "Length Required": 411;
315
+ readonly "Precondition Failed": 412;
316
+ readonly "Payload Too Large": 413;
317
+ readonly "URI Too Long": 414;
318
+ readonly "Unsupported Media Type": 415;
319
+ readonly "Range Not Satisfiable": 416;
320
+ readonly "Expectation Failed": 417;
321
+ readonly "I'm a teapot": 418;
322
+ readonly "Enhance Your Calm": 420;
323
+ readonly "Misdirected Request": 421;
324
+ readonly "Unprocessable Content": 422;
325
+ readonly Locked: 423;
326
+ readonly "Failed Dependency": 424;
327
+ readonly "Too Early": 425;
328
+ readonly "Upgrade Required": 426;
329
+ readonly "Precondition Required": 428;
330
+ readonly "Too Many Requests": 429;
331
+ readonly "Request Header Fields Too Large": 431;
332
+ readonly "Unavailable For Legal Reasons": 451;
333
+ readonly "Internal Server Error": 500;
334
+ readonly "Not Implemented": 501;
335
+ readonly "Bad Gateway": 502;
336
+ readonly "Service Unavailable": 503;
337
+ readonly "Gateway Timeout": 504;
338
+ readonly "HTTP Version Not Supported": 505;
339
+ readonly "Variant Also Negotiates": 506;
340
+ readonly "Insufficient Storage": 507;
341
+ readonly "Loop Detected": 508;
342
+ readonly "Not Extended": 510;
343
+ readonly "Network Authentication Required": 511;
344
+ }[Code] : Code>;
345
+ }) => Promise<import("elysia").ElysiaCustomStatusResponse<401, any, 401> | import("elysia").ElysiaCustomStatusResponse<403, "Forbidden: Admins only", 403> | {
346
+ user: {
347
+ id: string;
348
+ createdAt: Date;
349
+ updatedAt: Date;
350
+ email: string;
351
+ emailVerified: boolean;
352
+ name: string;
353
+ image?: string | null | undefined | undefined;
354
+ phoneNumber?: string | null | undefined;
355
+ phoneNumberVerified?: boolean | null | undefined;
356
+ twoFactorEnabled: boolean | null | undefined;
357
+ username?: string | null | undefined;
358
+ displayUsername?: string | null | undefined;
359
+ banned: boolean | null | undefined;
360
+ role?: string | null | undefined;
361
+ banReason?: string | null | undefined;
362
+ banExpires?: Date | null | undefined;
363
+ };
364
+ session: {
365
+ id: string;
366
+ createdAt: Date;
367
+ updatedAt: Date;
368
+ userId: string;
369
+ expiresAt: Date;
370
+ token: string;
371
+ ipAddress?: string | null | undefined | undefined;
372
+ userAgent?: string | null | undefined | undefined;
373
+ impersonatedBy?: string | null | undefined;
374
+ };
375
+ }>;
376
+ };
377
+ };
378
+ parser: {};
379
+ response: {};
380
+ }, {
381
+ admin: {};
382
+ } & {
383
+ admin: {
384
+ admin: {
385
+ "dynamic-env": {};
386
+ };
387
+ } & {
388
+ admin: {
389
+ "dynamic-env": {
390
+ get: {
391
+ body: unknown;
392
+ params: {};
393
+ query: unknown;
394
+ headers: unknown;
395
+ response: {
396
+ 200: {
397
+ createdAt: Date;
398
+ updatedAt: Date;
399
+ value: string | null;
400
+ description: string | null;
401
+ key: string;
402
+ }[];
403
+ 422: {
404
+ type: "validation";
405
+ on: string;
406
+ summary?: string;
407
+ message?: string;
408
+ found?: unknown;
409
+ property?: string;
410
+ expected?: string;
411
+ };
412
+ 401: "Unauthorized";
413
+ 403: "Forbidden: Admins only";
414
+ };
415
+ };
416
+ };
417
+ };
418
+ } & {
419
+ admin: {
420
+ "dynamic-env": {
421
+ ":key": {
422
+ get: {
423
+ body: unknown;
424
+ params: {
425
+ key: string;
426
+ };
427
+ query: unknown;
428
+ headers: unknown;
429
+ response: {
430
+ 200: {
431
+ key: "FIXED_OTP_CODE" | "MAINTENANCE_MODE";
432
+ value: string | null | undefined;
433
+ };
434
+ 422: {
435
+ type: "validation";
436
+ on: string;
437
+ summary?: string;
438
+ message?: string;
439
+ found?: unknown;
440
+ property?: string;
441
+ expected?: string;
442
+ };
443
+ 401: "Unauthorized";
444
+ 403: "Forbidden: Admins only";
445
+ };
446
+ };
447
+ };
448
+ };
449
+ };
450
+ } & {
451
+ admin: {
452
+ "dynamic-env": {
453
+ ":key": {
454
+ patch: {
455
+ body: {
456
+ value: string;
457
+ };
458
+ params: {
459
+ key: string;
460
+ };
461
+ query: unknown;
462
+ headers: unknown;
463
+ response: {
464
+ 200: {
465
+ success: boolean;
466
+ key: "FIXED_OTP_CODE" | "MAINTENANCE_MODE";
467
+ value: string;
468
+ };
469
+ 422: {
470
+ type: "validation";
471
+ on: string;
472
+ summary?: string;
473
+ message?: string;
474
+ found?: unknown;
475
+ property?: string;
476
+ expected?: string;
477
+ };
478
+ 401: "Unauthorized";
479
+ 403: "Forbidden: Admins only";
480
+ };
481
+ };
482
+ };
483
+ };
484
+ };
485
+ } & {
486
+ admin: {
487
+ "dynamic-env": {
488
+ ":key": {
489
+ delete: {
490
+ body: unknown;
491
+ params: {
492
+ key: string;
493
+ };
494
+ query: unknown;
495
+ headers: unknown;
496
+ response: {
497
+ 200: {
498
+ success: boolean;
499
+ key: "FIXED_OTP_CODE" | "MAINTENANCE_MODE";
500
+ };
501
+ 422: {
502
+ type: "validation";
503
+ on: string;
504
+ summary?: string;
505
+ message?: string;
506
+ found?: unknown;
507
+ property?: string;
508
+ expected?: string;
509
+ };
510
+ 401: "Unauthorized";
511
+ 403: "Forbidden: Admins only";
512
+ };
513
+ };
514
+ };
515
+ };
516
+ };
517
+ } & {
518
+ admin: {
519
+ "dynamic-env": {
520
+ "regenerate-otp": {
521
+ post: {
522
+ body: unknown;
523
+ params: {};
524
+ query: unknown;
525
+ headers: unknown;
526
+ response: {
527
+ 200: {
528
+ success: boolean;
529
+ otpCode: string;
530
+ };
531
+ 401: "Unauthorized";
532
+ 403: "Forbidden: Admins only";
533
+ };
534
+ };
535
+ };
536
+ };
537
+ };
538
+ } & {
539
+ admin: {
540
+ "dynamic-env": {
541
+ reload: {
542
+ post: {
543
+ body: unknown;
544
+ params: {};
545
+ query: unknown;
546
+ headers: unknown;
547
+ response: {
548
+ 200: {
549
+ success: boolean;
550
+ message: string;
551
+ };
552
+ 401: "Unauthorized";
553
+ 403: "Forbidden: Admins only";
554
+ };
555
+ };
556
+ };
557
+ };
558
+ };
559
+ };
560
+ } & {
561
+ admin: {
562
+ bank_account: {};
563
+ } & {
564
+ bank_account: {
565
+ get: {
566
+ body: {};
567
+ params: {};
568
+ query: {
569
+ userId?: string | undefined;
570
+ isVerified?: boolean | undefined;
571
+ riskStatus?: string | undefined;
572
+ limit?: number | undefined;
573
+ offset?: number | undefined;
574
+ pageSize?: number | undefined;
575
+ pageIndex?: number | undefined;
576
+ };
577
+ headers: {};
578
+ response: {
579
+ 200: {
580
+ data: {
581
+ id: string;
582
+ createdAt: Date;
583
+ updatedAt: Date;
584
+ userId: string;
585
+ country: string | null;
586
+ isVerified: boolean | null;
587
+ verifiedAt: Date | null;
588
+ bankName: string;
589
+ bankCode: string | null;
590
+ accountName: string;
591
+ maskAccountNumber: string | null;
592
+ branchName: string | null;
593
+ iban: string | null;
594
+ currency: string;
595
+ swiftCode: string | null;
596
+ isDefault: boolean | null;
597
+ verificationMethod: string | null;
598
+ riskStatus: string | null;
599
+ }[];
600
+ pagination: {
601
+ total: number;
602
+ pageSize: number;
603
+ pageIndex: number;
604
+ totalPages: number;
605
+ hasNextPage: boolean;
606
+ };
607
+ };
608
+ 422: {
609
+ type: "validation";
610
+ on: string;
611
+ summary?: string;
612
+ message?: string;
613
+ found?: unknown;
614
+ property?: string;
615
+ expected?: string;
616
+ };
617
+ 401: "Unauthorized";
618
+ 403: "Forbidden: Admins only";
619
+ };
620
+ };
621
+ };
622
+ } & {
623
+ bank_account: {
624
+ ":id": {
625
+ patch: {
626
+ body: {
627
+ country?: string | null | undefined;
628
+ bankName?: string | undefined;
629
+ bankCode?: string | null | undefined;
630
+ accountName?: string | undefined;
631
+ accountNumber?: string | undefined;
632
+ maskAccountNumber?: string | null | undefined;
633
+ branchName?: string | null | undefined;
634
+ iban?: string | null | undefined;
635
+ currency?: string | undefined;
636
+ swiftCode?: string | null | undefined;
637
+ isDefault?: boolean | null | undefined;
638
+ };
639
+ params: {
640
+ id: string;
641
+ };
642
+ query: {};
643
+ headers: {};
644
+ response: {
645
+ 200: {
646
+ id: string;
647
+ createdAt: Date;
648
+ updatedAt: Date;
649
+ userId: string;
650
+ country: string | null;
651
+ isVerified: boolean | null;
652
+ verifiedAt: Date | null;
653
+ bankName: string;
654
+ bankCode: string | null;
655
+ accountName: string;
656
+ maskAccountNumber: string | null;
657
+ branchName: string | null;
658
+ iban: string | null;
659
+ currency: string;
660
+ swiftCode: string | null;
661
+ isDefault: boolean | null;
662
+ verificationMethod: string | null;
663
+ riskStatus: string | null;
664
+ };
665
+ 422: {
666
+ type: "validation";
667
+ on: string;
668
+ summary?: string;
669
+ message?: string;
670
+ found?: unknown;
671
+ property?: string;
672
+ expected?: string;
673
+ };
674
+ 401: "Unauthorized";
675
+ 403: "Forbidden: Admins only";
676
+ };
677
+ };
678
+ };
679
+ };
680
+ } & {
681
+ bank_account: {
682
+ ":id": {
683
+ verify: {
684
+ post: {
685
+ body: {
686
+ verificationMethod: "manual" | "micro_deposit" | "document";
687
+ };
688
+ params: {
689
+ id: string;
690
+ };
691
+ query: {};
692
+ headers: {};
693
+ response: {
694
+ 200: {
695
+ id: string;
696
+ createdAt: Date;
697
+ updatedAt: Date;
698
+ userId: string;
699
+ country: string | null;
700
+ isVerified: boolean | null;
701
+ verifiedAt: Date | null;
702
+ bankName: string;
703
+ bankCode: string | null;
704
+ accountName: string;
705
+ maskAccountNumber: string | null;
706
+ branchName: string | null;
707
+ iban: string | null;
708
+ currency: string;
709
+ swiftCode: string | null;
710
+ isDefault: boolean | null;
711
+ verificationMethod: string | null;
712
+ riskStatus: string | null;
713
+ };
714
+ 422: {
715
+ type: "validation";
716
+ on: string;
717
+ summary?: string;
718
+ message?: string;
719
+ found?: unknown;
720
+ property?: string;
721
+ expected?: string;
722
+ };
723
+ 401: "Unauthorized";
724
+ 403: "Forbidden: Admins only";
725
+ };
726
+ };
727
+ };
728
+ };
729
+ };
730
+ } & {
731
+ bank_account: {
732
+ ":id": {
733
+ risk_status: {
734
+ patch: {
735
+ body: {
736
+ riskStatus: "normal" | "warning" | "high-risk" | "blocked";
737
+ };
738
+ params: {
739
+ id: string;
740
+ };
741
+ query: {};
742
+ headers: {};
743
+ response: {
744
+ 200: {
745
+ id: string;
746
+ createdAt: Date;
747
+ updatedAt: Date;
748
+ userId: string;
749
+ country: string | null;
750
+ isVerified: boolean | null;
751
+ verifiedAt: Date | null;
752
+ bankName: string;
753
+ bankCode: string | null;
754
+ accountName: string;
755
+ maskAccountNumber: string | null;
756
+ branchName: string | null;
757
+ iban: string | null;
758
+ currency: string;
759
+ swiftCode: string | null;
760
+ isDefault: boolean | null;
761
+ verificationMethod: string | null;
762
+ riskStatus: string | null;
763
+ };
764
+ 422: {
765
+ type: "validation";
766
+ on: string;
767
+ summary?: string;
768
+ message?: string;
769
+ found?: unknown;
770
+ property?: string;
771
+ expected?: string;
772
+ };
773
+ 401: "Unauthorized";
774
+ 403: "Forbidden: Admins only";
775
+ };
776
+ };
777
+ };
778
+ };
779
+ };
780
+ } & {
781
+ bank_account: {
782
+ ":id": {
783
+ delete: {
784
+ body: {};
785
+ params: {
786
+ id: string;
787
+ };
788
+ query: {
789
+ hard?: boolean | undefined;
790
+ };
791
+ headers: {};
792
+ response: {
793
+ 200: {
794
+ success: boolean;
795
+ };
796
+ 422: {
797
+ type: "validation";
798
+ on: string;
799
+ summary?: string;
800
+ message?: string;
801
+ found?: unknown;
802
+ property?: string;
803
+ expected?: string;
804
+ };
805
+ 401: "Unauthorized";
806
+ 403: "Forbidden: Admins only";
807
+ };
808
+ };
809
+ };
810
+ };
811
+ } & {
812
+ bank_account: {
813
+ banks: {
814
+ get: {
815
+ body: {};
816
+ params: {};
817
+ query: {
818
+ isActive?: boolean | undefined;
819
+ limit?: number | undefined;
820
+ offset?: number | undefined;
821
+ pageSize?: number | undefined;
822
+ pageIndex?: number | undefined;
823
+ };
824
+ headers: {};
825
+ response: {
826
+ 200: {
827
+ data: {
828
+ id: string;
829
+ createdAt: Date;
830
+ updatedAt: Date;
831
+ deletedAt: Date | null;
832
+ isActive: boolean | null;
833
+ sortOrder: number | null;
834
+ bankCode: string;
835
+ swiftCode: string | null;
836
+ nameCn: string;
837
+ nameEn: string;
838
+ }[];
839
+ pagination: {
840
+ total: number;
841
+ pageSize: number;
842
+ pageIndex: number;
843
+ totalPages: number;
844
+ hasNextPage: boolean;
845
+ };
846
+ };
847
+ 422: {
848
+ type: "validation";
849
+ on: string;
850
+ summary?: string;
851
+ message?: string;
852
+ found?: unknown;
853
+ property?: string;
854
+ expected?: string;
855
+ };
856
+ 401: "Unauthorized";
857
+ 403: "Forbidden: Admins only";
858
+ };
859
+ };
860
+ };
861
+ };
862
+ } & {
863
+ bank_account: {
864
+ banks: {
865
+ post: {
866
+ body: {
867
+ isActive?: boolean | null | undefined;
868
+ sortOrder?: number | null | undefined;
869
+ swiftCode?: string | null | undefined;
870
+ bankCode: string;
871
+ nameCn: string;
872
+ nameEn: string;
873
+ };
874
+ params: {};
875
+ query: {};
876
+ headers: {};
877
+ response: {
878
+ 200: {
879
+ id: string;
880
+ createdAt: Date;
881
+ updatedAt: Date;
882
+ deletedAt: Date | null;
883
+ isActive: boolean | null;
884
+ sortOrder: number | null;
885
+ bankCode: string;
886
+ swiftCode: string | null;
887
+ nameCn: string;
888
+ nameEn: string;
889
+ };
890
+ 422: {
891
+ type: "validation";
892
+ on: string;
893
+ summary?: string;
894
+ message?: string;
895
+ found?: unknown;
896
+ property?: string;
897
+ expected?: string;
898
+ };
899
+ 401: "Unauthorized";
900
+ 403: "Forbidden: Admins only";
901
+ };
902
+ };
903
+ };
904
+ };
905
+ } & {
906
+ bank_account: {
907
+ banks: {
908
+ ":id": {
909
+ patch: {
910
+ body: {
911
+ isActive?: boolean | null | undefined;
912
+ sortOrder?: number | null | undefined;
913
+ bankCode?: string | undefined;
914
+ swiftCode?: string | null | undefined;
915
+ nameCn?: string | undefined;
916
+ nameEn?: string | undefined;
917
+ };
918
+ params: {
919
+ id: string;
920
+ };
921
+ query: {};
922
+ headers: {};
923
+ response: {
924
+ 200: {
925
+ id: string;
926
+ createdAt: Date;
927
+ updatedAt: Date;
928
+ deletedAt: Date | null;
929
+ isActive: boolean | null;
930
+ sortOrder: number | null;
931
+ bankCode: string;
932
+ swiftCode: string | null;
933
+ nameCn: string;
934
+ nameEn: string;
935
+ };
936
+ 422: {
937
+ type: "validation";
938
+ on: string;
939
+ summary?: string;
940
+ message?: string;
941
+ found?: unknown;
942
+ property?: string;
943
+ expected?: string;
944
+ };
945
+ 401: "Unauthorized";
946
+ 403: "Forbidden: Admins only";
947
+ };
948
+ };
949
+ };
950
+ };
951
+ };
952
+ } & {
953
+ bank_account: {
954
+ banks: {
955
+ ":id": {
956
+ delete: {
957
+ body: {};
958
+ params: {
959
+ id: string;
960
+ };
961
+ query: {};
962
+ headers: {};
963
+ response: {
964
+ 200: {
965
+ success: boolean;
966
+ };
967
+ 422: {
968
+ type: "validation";
969
+ on: string;
970
+ summary?: string;
971
+ message?: string;
972
+ found?: unknown;
973
+ property?: string;
974
+ expected?: string;
975
+ };
976
+ 401: "Unauthorized";
977
+ 403: "Forbidden: Admins only";
978
+ };
979
+ };
980
+ };
981
+ };
982
+ };
983
+ };
984
+ } & {
985
+ admin: {
986
+ checkIns: {};
987
+ } & {
988
+ checkIns: {
989
+ get: {
990
+ body: unknown;
991
+ params: {};
992
+ query: {
993
+ userId?: string | undefined;
994
+ checkInType?: "app" | "meeting" | undefined;
995
+ limit?: number | undefined;
996
+ offset?: number | undefined;
997
+ pageSize?: number | undefined;
998
+ pageIndex?: number | undefined;
999
+ startDate?: Date | undefined;
1000
+ endDate?: Date | undefined;
1001
+ };
1002
+ headers: unknown;
1003
+ response: {
1004
+ 200: {
1005
+ data: {
1006
+ user: {
1007
+ email: string;
1008
+ id: string;
1009
+ name: string;
1010
+ emailVerified: boolean;
1011
+ image: string | null;
1012
+ createdAt: Date;
1013
+ updatedAt: Date;
1014
+ twoFactorEnabled: boolean | null;
1015
+ username: string | null;
1016
+ displayUsername: string | null;
1017
+ isAnonymous: boolean | null;
1018
+ phoneNumber: string | null;
1019
+ phoneNumberVerified: boolean | null;
1020
+ role: string | null;
1021
+ banned: boolean | null;
1022
+ banReason: string | null;
1023
+ banExpires: Date | null;
1024
+ };
1025
+ id: string;
1026
+ createdAt: Date;
1027
+ updatedAt: Date;
1028
+ userId: string;
1029
+ checkInType: "app" | "meeting";
1030
+ checkInAt: Date;
1031
+ checkInTimezone: string | null;
1032
+ checkInOffsetMinutes: number | null;
1033
+ checkInLocalDate: string | null;
1034
+ }[];
1035
+ pagination: {
1036
+ total: number;
1037
+ pageSize: number;
1038
+ pageIndex: number;
1039
+ totalPages: number;
1040
+ hasNextPage: boolean;
1041
+ };
1042
+ };
1043
+ 422: {
1044
+ type: "validation";
1045
+ on: string;
1046
+ summary?: string;
1047
+ message?: string;
1048
+ found?: unknown;
1049
+ property?: string;
1050
+ expected?: string;
1051
+ };
1052
+ 401: "Unauthorized";
1053
+ 403: "Forbidden: Admins only";
1054
+ };
1055
+ };
1056
+ };
1057
+ };
1058
+ } & {
1059
+ admin: {
1060
+ wallet: {};
1061
+ } & {
1062
+ wallet: {
1063
+ wallets: {
1064
+ get: {
1065
+ body: unknown;
1066
+ params: {};
1067
+ query: {
1068
+ userId: string;
1069
+ };
1070
+ headers: unknown;
1071
+ response: {
1072
+ 200: {
1073
+ data: {
1074
+ id: string;
1075
+ createdAt: Date;
1076
+ updatedAt: Date;
1077
+ userId: string;
1078
+ walletTypeId: string;
1079
+ walletType: {
1080
+ id: string;
1081
+ name: string;
1082
+ createdAt: Date;
1083
+ updatedAt: Date;
1084
+ description: string | null;
1085
+ code: "balance" | "profit" | "team" | "check_in" | "meeting_reward" | "reform_pioneer_allowance" | "reform_monthly_enjoy" | "basic_livelihood" | "basic_pension" | "basic_medical";
1086
+ allowDeposit: boolean;
1087
+ allowWithdraw: boolean;
1088
+ minWithdrawAmount: string;
1089
+ maxWithdrawAmount: string;
1090
+ allowTransfer: boolean;
1091
+ minTransferAmount: string;
1092
+ maxTransferAmount: string;
1093
+ allowExchange: boolean;
1094
+ allowReceiveExchange: boolean;
1095
+ minExchangeAmount: string;
1096
+ maxExchangeAmount: string;
1097
+ exchangeRate: string;
1098
+ allowTransaction: boolean;
1099
+ hasExpiry: boolean;
1100
+ expiryDays: number | null;
1101
+ isActive: boolean;
1102
+ sortOrder: number;
1103
+ };
1104
+ available: string;
1105
+ frozen: string;
1106
+ version: number;
1107
+ }[];
1108
+ pagination: {
1109
+ total: number;
1110
+ pageSize: number;
1111
+ pageIndex: number;
1112
+ totalPages: number;
1113
+ hasNextPage: boolean;
1114
+ };
1115
+ };
1116
+ 422: {
1117
+ type: "validation";
1118
+ on: string;
1119
+ summary?: string;
1120
+ message?: string;
1121
+ found?: unknown;
1122
+ property?: string;
1123
+ expected?: string;
1124
+ };
1125
+ 401: "Unauthorized";
1126
+ 403: "Forbidden: Admins only";
1127
+ };
1128
+ };
1129
+ };
1130
+ };
1131
+ } & {
1132
+ wallet: {
1133
+ adjust: {
1134
+ post: {
1135
+ body: {
1136
+ referenceId?: string | undefined;
1137
+ amount: string;
1138
+ walletId: string;
1139
+ } | {
1140
+ referenceId?: string | undefined;
1141
+ userId: string;
1142
+ walletTypeId: string;
1143
+ amount: string;
1144
+ };
1145
+ params: {};
1146
+ query: unknown;
1147
+ headers: unknown;
1148
+ response: {
1149
+ 200: {
1150
+ isIdempotent?: boolean | undefined;
1151
+ availableBefore: string;
1152
+ availableAfter: string;
1153
+ frozenBefore: string;
1154
+ frozenAfter: string;
1155
+ success: boolean;
1156
+ ledgerEntryId: string;
1157
+ };
1158
+ 422: {
1159
+ type: "validation";
1160
+ on: string;
1161
+ summary?: string;
1162
+ message?: string;
1163
+ found?: unknown;
1164
+ property?: string;
1165
+ expected?: string;
1166
+ };
1167
+ 401: "Unauthorized";
1168
+ 403: "Forbidden: Admins only";
1169
+ };
1170
+ };
1171
+ };
1172
+ };
1173
+ } & {
1174
+ wallet: {
1175
+ adjust: {
1176
+ batch: {
1177
+ post: {
1178
+ body: {
1179
+ walletTypeId: string;
1180
+ amount: string;
1181
+ userIds: string[];
1182
+ };
1183
+ params: {};
1184
+ query: unknown;
1185
+ headers: unknown;
1186
+ response: {
1187
+ 200: {
1188
+ isIdempotent?: boolean | undefined;
1189
+ userId: string;
1190
+ availableBefore: string;
1191
+ availableAfter: string;
1192
+ frozenBefore: string;
1193
+ frozenAfter: string;
1194
+ success: boolean;
1195
+ ledgerEntryId: string;
1196
+ }[];
1197
+ 422: {
1198
+ type: "validation";
1199
+ on: string;
1200
+ summary?: string;
1201
+ message?: string;
1202
+ found?: unknown;
1203
+ property?: string;
1204
+ expected?: string;
1205
+ };
1206
+ 401: "Unauthorized";
1207
+ 403: "Forbidden: Admins only";
1208
+ };
1209
+ };
1210
+ };
1211
+ };
1212
+ };
1213
+ };
1214
+ } & {
1215
+ admin: {
1216
+ wallet_import: {};
1217
+ } & {
1218
+ wallet_import: {
1219
+ jobs: {
1220
+ post: {
1221
+ body: {
1222
+ fileId: string;
1223
+ };
1224
+ params: {};
1225
+ query: unknown;
1226
+ headers: unknown;
1227
+ response: {
1228
+ 200: {
1229
+ error: string | null;
1230
+ id: string;
1231
+ createdAt: Date;
1232
+ updatedAt: Date;
1233
+ status: "pending" | "running" | "success" | "failed";
1234
+ success: number;
1235
+ failed: number;
1236
+ ignored: number;
1237
+ fileId: string;
1238
+ total: number;
1239
+ processed: number;
1240
+ createdBy: string;
1241
+ startedAt: Date | null;
1242
+ finishedAt: Date | null;
1243
+ };
1244
+ 422: {
1245
+ type: "validation";
1246
+ on: string;
1247
+ summary?: string;
1248
+ message?: string;
1249
+ found?: unknown;
1250
+ property?: string;
1251
+ expected?: string;
1252
+ };
1253
+ 401: "Unauthorized";
1254
+ 403: "Forbidden: Admins only";
1255
+ };
1256
+ };
1257
+ };
1258
+ };
1259
+ } & {
1260
+ wallet_import: {
1261
+ jobs: {
1262
+ get: {
1263
+ body: unknown;
1264
+ params: {};
1265
+ query: {
1266
+ status?: "pending" | "running" | "success" | "failed" | undefined;
1267
+ limit?: number | undefined;
1268
+ offset?: number | undefined;
1269
+ pageSize?: number | undefined;
1270
+ pageIndex?: number | undefined;
1271
+ };
1272
+ headers: unknown;
1273
+ response: {
1274
+ 200: {
1275
+ data: {
1276
+ error: string | null;
1277
+ id: string;
1278
+ createdAt: Date;
1279
+ updatedAt: Date;
1280
+ status: "pending" | "running" | "success" | "failed";
1281
+ success: number;
1282
+ failed: number;
1283
+ ignored: number;
1284
+ fileId: string;
1285
+ total: number;
1286
+ processed: number;
1287
+ createdBy: string;
1288
+ startedAt: Date | null;
1289
+ finishedAt: Date | null;
1290
+ }[];
1291
+ pagination: {
1292
+ total: number;
1293
+ pageSize: number;
1294
+ pageIndex: number;
1295
+ totalPages: number;
1296
+ hasNextPage: boolean;
1297
+ };
1298
+ };
1299
+ 422: {
1300
+ type: "validation";
1301
+ on: string;
1302
+ summary?: string;
1303
+ message?: string;
1304
+ found?: unknown;
1305
+ property?: string;
1306
+ expected?: string;
1307
+ };
1308
+ 401: "Unauthorized";
1309
+ 403: "Forbidden: Admins only";
1310
+ };
1311
+ };
1312
+ };
1313
+ };
1314
+ } & {
1315
+ wallet_import: {
1316
+ jobs: {
1317
+ ":id": {
1318
+ get: {
1319
+ body: unknown;
1320
+ params: {
1321
+ id: string;
1322
+ };
1323
+ query: unknown;
1324
+ headers: unknown;
1325
+ response: {
1326
+ 200: {
1327
+ error: string | null;
1328
+ id: string;
1329
+ createdAt: Date;
1330
+ updatedAt: Date;
1331
+ status: "pending" | "running" | "success" | "failed";
1332
+ success: number;
1333
+ failed: number;
1334
+ ignored: number;
1335
+ fileId: string;
1336
+ total: number;
1337
+ processed: number;
1338
+ createdBy: string;
1339
+ startedAt: Date | null;
1340
+ finishedAt: Date | null;
1341
+ };
1342
+ 422: {
1343
+ type: "validation";
1344
+ on: string;
1345
+ summary?: string;
1346
+ message?: string;
1347
+ found?: unknown;
1348
+ property?: string;
1349
+ expected?: string;
1350
+ };
1351
+ 401: "Unauthorized";
1352
+ 403: "Forbidden: Admins only";
1353
+ };
1354
+ };
1355
+ };
1356
+ };
1357
+ };
1358
+ } & {
1359
+ wallet_import: {
1360
+ jobs: {
1361
+ ":id": {
1362
+ items: {
1363
+ get: {
1364
+ body: unknown;
1365
+ params: {
1366
+ id: string;
1367
+ };
1368
+ query: {
1369
+ status?: "success" | "failed" | "ignored" | undefined;
1370
+ limit?: number | undefined;
1371
+ offset?: number | undefined;
1372
+ pageSize?: number | undefined;
1373
+ pageIndex?: number | undefined;
1374
+ };
1375
+ headers: unknown;
1376
+ response: {
1377
+ 200: {
1378
+ data: {
1379
+ error: string | null;
1380
+ id: string;
1381
+ createdAt: Date;
1382
+ updatedAt: Date;
1383
+ phoneNumber: string | null;
1384
+ userId: string | null;
1385
+ status: "success" | "failed" | "ignored";
1386
+ walletTypeId: string | null;
1387
+ amount: string | null;
1388
+ referenceId: string | null;
1389
+ memo: string | null;
1390
+ jobId: string;
1391
+ rowNumber: number;
1392
+ walletTypeCode: "balance" | "profit" | "team" | "check_in" | "meeting_reward" | "reform_pioneer_allowance" | "reform_monthly_enjoy" | "basic_livelihood" | "basic_pension" | "basic_medical" | null;
1393
+ walletTypeCodeRaw: string | null;
1394
+ ledgerEntryId: string | null;
1395
+ isIdempotent: boolean;
1396
+ }[];
1397
+ pagination: {
1398
+ total: number;
1399
+ pageSize: number;
1400
+ pageIndex: number;
1401
+ totalPages: number;
1402
+ hasNextPage: boolean;
1403
+ };
1404
+ };
1405
+ 422: {
1406
+ type: "validation";
1407
+ on: string;
1408
+ summary?: string;
1409
+ message?: string;
1410
+ found?: unknown;
1411
+ property?: string;
1412
+ expected?: string;
1413
+ };
1414
+ 401: "Unauthorized";
1415
+ 403: "Forbidden: Admins only";
1416
+ };
1417
+ };
1418
+ };
1419
+ };
1420
+ };
1421
+ };
1422
+ } & {
1423
+ wallet_import: {
1424
+ template: {
1425
+ get: {
1426
+ body: unknown;
1427
+ params: {};
1428
+ query: unknown;
1429
+ headers: unknown;
1430
+ response: {
1431
+ 200: ArrayBuffer;
1432
+ 422: {
1433
+ type: "validation";
1434
+ on: string;
1435
+ summary?: string;
1436
+ message?: string;
1437
+ found?: unknown;
1438
+ property?: string;
1439
+ expected?: string;
1440
+ };
1441
+ 401: "Unauthorized";
1442
+ 403: "Forbidden: Admins only";
1443
+ };
1444
+ };
1445
+ };
1446
+ };
1447
+ };
1448
+ } & {
1449
+ admin: {
1450
+ wallet_types: {};
1451
+ } & {
1452
+ wallet_types: {
1453
+ post: {
1454
+ body: {
1455
+ description?: string | null | undefined;
1456
+ allowDeposit?: boolean | undefined;
1457
+ allowWithdraw?: boolean | undefined;
1458
+ minWithdrawAmount?: string | undefined;
1459
+ maxWithdrawAmount?: string | undefined;
1460
+ allowTransfer?: boolean | undefined;
1461
+ minTransferAmount?: string | undefined;
1462
+ maxTransferAmount?: string | undefined;
1463
+ allowExchange?: boolean | undefined;
1464
+ allowReceiveExchange?: boolean | undefined;
1465
+ minExchangeAmount?: string | undefined;
1466
+ maxExchangeAmount?: string | undefined;
1467
+ exchangeRate?: string | undefined;
1468
+ allowTransaction?: boolean | undefined;
1469
+ hasExpiry?: boolean | undefined;
1470
+ expiryDays?: number | null | undefined;
1471
+ isActive?: boolean | undefined;
1472
+ sortOrder?: number | undefined;
1473
+ name: string;
1474
+ code: "balance" | "profit" | "team" | "check_in" | "meeting_reward" | "reform_pioneer_allowance" | "reform_monthly_enjoy" | "basic_livelihood" | "basic_pension" | "basic_medical";
1475
+ };
1476
+ params: {};
1477
+ query: unknown;
1478
+ headers: unknown;
1479
+ response: {
1480
+ 200: {
1481
+ id: string;
1482
+ name: string;
1483
+ description: string | null;
1484
+ code: "balance" | "profit" | "team" | "check_in" | "meeting_reward" | "reform_pioneer_allowance" | "reform_monthly_enjoy" | "basic_livelihood" | "basic_pension" | "basic_medical";
1485
+ allowDeposit: boolean;
1486
+ allowWithdraw: boolean;
1487
+ minWithdrawAmount: string;
1488
+ maxWithdrawAmount: string;
1489
+ allowTransfer: boolean;
1490
+ minTransferAmount: string;
1491
+ maxTransferAmount: string;
1492
+ allowExchange: boolean;
1493
+ allowReceiveExchange: boolean;
1494
+ minExchangeAmount: string;
1495
+ maxExchangeAmount: string;
1496
+ exchangeRate: string;
1497
+ allowTransaction: boolean;
1498
+ hasExpiry: boolean;
1499
+ expiryDays: number | null;
1500
+ isActive: boolean;
1501
+ sortOrder: number;
1502
+ };
1503
+ 422: {
1504
+ type: "validation";
1505
+ on: string;
1506
+ summary?: string;
1507
+ message?: string;
1508
+ found?: unknown;
1509
+ property?: string;
1510
+ expected?: string;
1511
+ };
1512
+ 401: "Unauthorized";
1513
+ 403: "Forbidden: Admins only";
1514
+ };
1515
+ };
1516
+ };
1517
+ } & {
1518
+ wallet_types: {
1519
+ get: {
1520
+ body: unknown;
1521
+ params: {};
1522
+ query: {
1523
+ code?: "balance" | "profit" | "team" | "check_in" | "meeting_reward" | "reform_pioneer_allowance" | "reform_monthly_enjoy" | "basic_livelihood" | "basic_pension" | "basic_medical" | undefined;
1524
+ isActive?: boolean | undefined;
1525
+ limit?: number | undefined;
1526
+ offset?: number | undefined;
1527
+ pageSize?: number | undefined;
1528
+ pageIndex?: number | undefined;
1529
+ };
1530
+ headers: unknown;
1531
+ response: {
1532
+ 200: {
1533
+ data: {
1534
+ id: string;
1535
+ name: string;
1536
+ description: string | null;
1537
+ code: "balance" | "profit" | "team" | "check_in" | "meeting_reward" | "reform_pioneer_allowance" | "reform_monthly_enjoy" | "basic_livelihood" | "basic_pension" | "basic_medical";
1538
+ allowDeposit: boolean;
1539
+ allowWithdraw: boolean;
1540
+ minWithdrawAmount: string;
1541
+ maxWithdrawAmount: string;
1542
+ allowTransfer: boolean;
1543
+ minTransferAmount: string;
1544
+ maxTransferAmount: string;
1545
+ allowExchange: boolean;
1546
+ allowReceiveExchange: boolean;
1547
+ minExchangeAmount: string;
1548
+ maxExchangeAmount: string;
1549
+ exchangeRate: string;
1550
+ allowTransaction: boolean;
1551
+ hasExpiry: boolean;
1552
+ expiryDays: number | null;
1553
+ isActive: boolean;
1554
+ sortOrder: number;
1555
+ }[];
1556
+ pagination: {
1557
+ total: number;
1558
+ pageSize: number;
1559
+ pageIndex: number;
1560
+ totalPages: number;
1561
+ hasNextPage: boolean;
1562
+ };
1563
+ };
1564
+ 422: {
1565
+ type: "validation";
1566
+ on: string;
1567
+ summary?: string;
1568
+ message?: string;
1569
+ found?: unknown;
1570
+ property?: string;
1571
+ expected?: string;
1572
+ };
1573
+ 401: "Unauthorized";
1574
+ 403: "Forbidden: Admins only";
1575
+ };
1576
+ };
1577
+ };
1578
+ } & {
1579
+ wallet_types: {
1580
+ ":id": {
1581
+ get: {
1582
+ body: unknown;
1583
+ params: {
1584
+ id: string;
1585
+ };
1586
+ query: unknown;
1587
+ headers: unknown;
1588
+ response: {
1589
+ 200: {
1590
+ id: string;
1591
+ name: string;
1592
+ description: string | null;
1593
+ code: "balance" | "profit" | "team" | "check_in" | "meeting_reward" | "reform_pioneer_allowance" | "reform_monthly_enjoy" | "basic_livelihood" | "basic_pension" | "basic_medical";
1594
+ allowDeposit: boolean;
1595
+ allowWithdraw: boolean;
1596
+ minWithdrawAmount: string;
1597
+ maxWithdrawAmount: string;
1598
+ allowTransfer: boolean;
1599
+ minTransferAmount: string;
1600
+ maxTransferAmount: string;
1601
+ allowExchange: boolean;
1602
+ allowReceiveExchange: boolean;
1603
+ minExchangeAmount: string;
1604
+ maxExchangeAmount: string;
1605
+ exchangeRate: string;
1606
+ allowTransaction: boolean;
1607
+ hasExpiry: boolean;
1608
+ expiryDays: number | null;
1609
+ isActive: boolean;
1610
+ sortOrder: number;
1611
+ };
1612
+ 422: {
1613
+ type: "validation";
1614
+ on: string;
1615
+ summary?: string;
1616
+ message?: string;
1617
+ found?: unknown;
1618
+ property?: string;
1619
+ expected?: string;
1620
+ };
1621
+ 401: "Unauthorized";
1622
+ 403: "Forbidden: Admins only";
1623
+ };
1624
+ };
1625
+ };
1626
+ };
1627
+ } & {
1628
+ wallet_types: {
1629
+ ":id": {
1630
+ patch: {
1631
+ body: {
1632
+ name?: string | undefined;
1633
+ description?: string | null | undefined;
1634
+ allowDeposit?: boolean | undefined;
1635
+ allowWithdraw?: boolean | undefined;
1636
+ minWithdrawAmount?: string | undefined;
1637
+ maxWithdrawAmount?: string | undefined;
1638
+ allowTransfer?: boolean | undefined;
1639
+ minTransferAmount?: string | undefined;
1640
+ maxTransferAmount?: string | undefined;
1641
+ allowExchange?: boolean | undefined;
1642
+ allowReceiveExchange?: boolean | undefined;
1643
+ minExchangeAmount?: string | undefined;
1644
+ maxExchangeAmount?: string | undefined;
1645
+ exchangeRate?: string | undefined;
1646
+ allowTransaction?: boolean | undefined;
1647
+ hasExpiry?: boolean | undefined;
1648
+ expiryDays?: number | null | undefined;
1649
+ isActive?: boolean | undefined;
1650
+ sortOrder?: number | undefined;
1651
+ };
1652
+ params: {
1653
+ id: string;
1654
+ };
1655
+ query: unknown;
1656
+ headers: unknown;
1657
+ response: {
1658
+ 200: {
1659
+ id: string;
1660
+ name: string;
1661
+ description: string | null;
1662
+ code: "balance" | "profit" | "team" | "check_in" | "meeting_reward" | "reform_pioneer_allowance" | "reform_monthly_enjoy" | "basic_livelihood" | "basic_pension" | "basic_medical";
1663
+ allowDeposit: boolean;
1664
+ allowWithdraw: boolean;
1665
+ minWithdrawAmount: string;
1666
+ maxWithdrawAmount: string;
1667
+ allowTransfer: boolean;
1668
+ minTransferAmount: string;
1669
+ maxTransferAmount: string;
1670
+ allowExchange: boolean;
1671
+ allowReceiveExchange: boolean;
1672
+ minExchangeAmount: string;
1673
+ maxExchangeAmount: string;
1674
+ exchangeRate: string;
1675
+ allowTransaction: boolean;
1676
+ hasExpiry: boolean;
1677
+ expiryDays: number | null;
1678
+ isActive: boolean;
1679
+ sortOrder: number;
1680
+ };
1681
+ 422: {
1682
+ type: "validation";
1683
+ on: string;
1684
+ summary?: string;
1685
+ message?: string;
1686
+ found?: unknown;
1687
+ property?: string;
1688
+ expected?: string;
1689
+ };
1690
+ 401: "Unauthorized";
1691
+ 403: "Forbidden: Admins only";
1692
+ };
1693
+ };
1694
+ };
1695
+ };
1696
+ } & {
1697
+ wallet_types: {
1698
+ ":id": {
1699
+ delete: {
1700
+ body: unknown;
1701
+ params: {
1702
+ id: string;
1703
+ };
1704
+ query: unknown;
1705
+ headers: unknown;
1706
+ response: {
1707
+ 200: {
1708
+ success: boolean;
1709
+ };
1710
+ 422: {
1711
+ type: "validation";
1712
+ on: string;
1713
+ summary?: string;
1714
+ message?: string;
1715
+ found?: unknown;
1716
+ property?: string;
1717
+ expected?: string;
1718
+ };
1719
+ 401: "Unauthorized";
1720
+ 403: "Forbidden: Admins only";
1721
+ };
1722
+ };
1723
+ };
1724
+ };
1725
+ } & {
1726
+ wallet_types: {
1727
+ ":id": {
1728
+ delete: {
1729
+ body: unknown;
1730
+ params: {
1731
+ id: string;
1732
+ };
1733
+ query: unknown;
1734
+ headers: unknown;
1735
+ response: {
1736
+ 200: {
1737
+ success: boolean;
1738
+ };
1739
+ 422: {
1740
+ type: "validation";
1741
+ on: string;
1742
+ summary?: string;
1743
+ message?: string;
1744
+ found?: unknown;
1745
+ property?: string;
1746
+ expected?: string;
1747
+ };
1748
+ 401: "Unauthorized";
1749
+ 403: "Forbidden: Admins only";
1750
+ };
1751
+ };
1752
+ };
1753
+ };
1754
+ };
1755
+ } & {
1756
+ admin: {
1757
+ ledger: {};
1758
+ } & {
1759
+ ledger: {
1760
+ entries: {
1761
+ get: {
1762
+ body: unknown;
1763
+ params: {};
1764
+ query: {
1765
+ limit?: number | undefined;
1766
+ offset?: number | undefined;
1767
+ pageSize?: number | undefined;
1768
+ pageIndex?: number | undefined;
1769
+ userId: string;
1770
+ };
1771
+ headers: unknown;
1772
+ response: {
1773
+ 200: {
1774
+ data: {
1775
+ id: string;
1776
+ createdAt: Date;
1777
+ userId: string;
1778
+ walletTypeId: string;
1779
+ entryType: "deposit_confirmed" | "deposit_commission" | "withdraw_frozen" | "withdraw_confirmed" | "withdraw_fee" | "withdraw_rejected" | "transfer_in" | "transfer_out" | "wallet_transfer_in" | "wallet_transfer_out" | "freeze" | "unfreeze" | "manual_increase" | "manual_decrease" | "subscription_purchase" | "subscription_unlock";
1780
+ amount: string;
1781
+ availableBefore: string;
1782
+ availableAfter: string;
1783
+ frozenBefore: string;
1784
+ frozenAfter: string;
1785
+ referenceId: string;
1786
+ referenceType: "deposit_commission" | "deposit_order" | "withdraw_order" | "transfer_order" | "account_transfer" | "manual_adjustment" | "subscription_order";
1787
+ memo: string | null;
1788
+ operatorId: string | null;
1789
+ walletType: {
1790
+ id: string;
1791
+ name: string;
1792
+ code: "balance" | "profit" | "team" | "check_in" | "meeting_reward" | "reform_pioneer_allowance" | "reform_monthly_enjoy" | "basic_livelihood" | "basic_pension" | "basic_medical";
1793
+ };
1794
+ }[];
1795
+ pagination: {
1796
+ total: number;
1797
+ pageSize: number;
1798
+ pageIndex: number;
1799
+ totalPages: number;
1800
+ hasNextPage: boolean;
1801
+ };
1802
+ };
1803
+ 422: {
1804
+ type: "validation";
1805
+ on: string;
1806
+ summary?: string;
1807
+ message?: string;
1808
+ found?: unknown;
1809
+ property?: string;
1810
+ expected?: string;
1811
+ };
1812
+ 401: "Unauthorized";
1813
+ 403: "Forbidden: Admins only";
1814
+ };
1815
+ };
1816
+ };
1817
+ };
1818
+ };
1819
+ } & {
1820
+ admin: {
1821
+ deposit: {};
1822
+ } & {
1823
+ deposit: {
1824
+ get: {
1825
+ body: unknown;
1826
+ params: {};
1827
+ query: {
1828
+ userId?: string | undefined;
1829
+ status?: "pending" | "approved" | "rejected" | "completed" | "cancelled" | undefined;
1830
+ orderNo?: string | undefined;
1831
+ limit?: number | undefined;
1832
+ offset?: number | undefined;
1833
+ pageSize?: number | undefined;
1834
+ pageIndex?: number | undefined;
1835
+ };
1836
+ headers: unknown;
1837
+ response: {
1838
+ 200: {
1839
+ data: {
1840
+ user: {
1841
+ email: string;
1842
+ id: string;
1843
+ name: string;
1844
+ emailVerified: boolean;
1845
+ image: string | null;
1846
+ createdAt: Date;
1847
+ updatedAt: Date;
1848
+ twoFactorEnabled: boolean | null;
1849
+ username: string | null;
1850
+ displayUsername: string | null;
1851
+ isAnonymous: boolean | null;
1852
+ phoneNumber: string | null;
1853
+ phoneNumberVerified: boolean | null;
1854
+ role: string | null;
1855
+ banned: boolean | null;
1856
+ banReason: string | null;
1857
+ banExpires: Date | null;
1858
+ };
1859
+ id: string;
1860
+ createdAt: Date;
1861
+ updatedAt: Date;
1862
+ userId: string;
1863
+ status: "pending" | "approved" | "rejected" | "completed" | "cancelled";
1864
+ reviewedAt: Date | null;
1865
+ reviewedBy: string | null;
1866
+ amount: string;
1867
+ orderNo: string;
1868
+ actualAmount: string | null;
1869
+ fee: string | null;
1870
+ paymentChannel: string | null;
1871
+ paymentOrderNo: string | null;
1872
+ paymentProof: string | null;
1873
+ reviewNote: string | null;
1874
+ completedAt: Date | null;
1875
+ }[];
1876
+ pagination: {
1877
+ total: number;
1878
+ pageSize: number;
1879
+ pageIndex: number;
1880
+ totalPages: number;
1881
+ hasNextPage: boolean;
1882
+ };
1883
+ };
1884
+ 422: {
1885
+ type: "validation";
1886
+ on: string;
1887
+ summary?: string;
1888
+ message?: string;
1889
+ found?: unknown;
1890
+ property?: string;
1891
+ expected?: string;
1892
+ };
1893
+ 401: "Unauthorized";
1894
+ 403: "Forbidden: Admins only";
1895
+ };
1896
+ };
1897
+ };
1898
+ } & {
1899
+ deposit: {
1900
+ approve: {
1901
+ ":orderId": {
1902
+ post: {
1903
+ body: {
1904
+ actualAmount?: string | undefined;
1905
+ reviewNote?: string | undefined;
1906
+ };
1907
+ params: {
1908
+ orderId: string;
1909
+ };
1910
+ query: unknown;
1911
+ headers: unknown;
1912
+ response: {
1913
+ 200: {
1914
+ createdAt: Date;
1915
+ updatedAt: Date;
1916
+ id: string;
1917
+ orderNo: string;
1918
+ userId: string;
1919
+ amount: string;
1920
+ actualAmount: string | null;
1921
+ fee: string | null;
1922
+ status: "pending" | "approved" | "rejected" | "completed" | "cancelled";
1923
+ paymentChannel: string | null;
1924
+ paymentOrderNo: string | null;
1925
+ paymentProof: string | null;
1926
+ reviewedBy: string | null;
1927
+ reviewedAt: Date | null;
1928
+ reviewNote: string | null;
1929
+ completedAt: Date | null;
1930
+ };
1931
+ 422: {
1932
+ type: "validation";
1933
+ on: string;
1934
+ summary?: string;
1935
+ message?: string;
1936
+ found?: unknown;
1937
+ property?: string;
1938
+ expected?: string;
1939
+ };
1940
+ 401: "Unauthorized";
1941
+ 403: "Forbidden: Admins only";
1942
+ };
1943
+ };
1944
+ };
1945
+ };
1946
+ };
1947
+ } & {
1948
+ deposit: {
1949
+ reject: {
1950
+ ":orderId": {
1951
+ post: {
1952
+ body: {
1953
+ reviewNote: string;
1954
+ };
1955
+ params: {
1956
+ orderId: string;
1957
+ };
1958
+ query: unknown;
1959
+ headers: unknown;
1960
+ response: {
1961
+ 200: {
1962
+ createdAt: Date;
1963
+ updatedAt: Date;
1964
+ id: string;
1965
+ orderNo: string;
1966
+ userId: string;
1967
+ amount: string;
1968
+ actualAmount: string | null;
1969
+ fee: string | null;
1970
+ status: "pending" | "approved" | "rejected" | "completed" | "cancelled";
1971
+ paymentChannel: string | null;
1972
+ paymentOrderNo: string | null;
1973
+ paymentProof: string | null;
1974
+ reviewedBy: string | null;
1975
+ reviewedAt: Date | null;
1976
+ reviewNote: string | null;
1977
+ completedAt: Date | null;
1978
+ };
1979
+ 422: {
1980
+ type: "validation";
1981
+ on: string;
1982
+ summary?: string;
1983
+ message?: string;
1984
+ found?: unknown;
1985
+ property?: string;
1986
+ expected?: string;
1987
+ };
1988
+ 401: "Unauthorized";
1989
+ 403: "Forbidden: Admins only";
1990
+ };
1991
+ };
1992
+ };
1993
+ };
1994
+ };
1995
+ };
1996
+ } & {
1997
+ admin: {
1998
+ withdraw: {};
1999
+ } & {
2000
+ withdraw: {
2001
+ get: {
2002
+ body: unknown;
2003
+ params: {};
2004
+ query: {
2005
+ userId?: string | undefined;
2006
+ status?: "rejected" | "completed" | "pending_review" | "pending_payout" | undefined;
2007
+ limit?: number | undefined;
2008
+ offset?: number | undefined;
2009
+ pageSize?: number | undefined;
2010
+ pageIndex?: number | undefined;
2011
+ };
2012
+ headers: unknown;
2013
+ response: {
2014
+ 200: {
2015
+ data: {
2016
+ id: string;
2017
+ createdAt: Date;
2018
+ updatedAt: Date;
2019
+ userId: string;
2020
+ status: "rejected" | "completed" | "pending_review" | "pending_payout";
2021
+ reviewedAt: Date | null;
2022
+ reviewedBy: string | null;
2023
+ walletTypeId: string;
2024
+ amount: string;
2025
+ orderNo: string;
2026
+ reviewNote: string | null;
2027
+ receiptMethodId: string;
2028
+ rejectReason: string | null;
2029
+ paidBy: string | null;
2030
+ paidAt: Date | null;
2031
+ }[];
2032
+ pagination: {
2033
+ total: number;
2034
+ pageSize: number;
2035
+ pageIndex: number;
2036
+ totalPages: number;
2037
+ hasNextPage: boolean;
2038
+ };
2039
+ };
2040
+ 422: {
2041
+ type: "validation";
2042
+ on: string;
2043
+ summary?: string;
2044
+ message?: string;
2045
+ found?: unknown;
2046
+ property?: string;
2047
+ expected?: string;
2048
+ };
2049
+ 401: "Unauthorized";
2050
+ 403: "Forbidden: Admins only";
2051
+ };
2052
+ };
2053
+ };
2054
+ } & {
2055
+ withdraw: {
2056
+ ":orderId": {
2057
+ approve: {
2058
+ post: {
2059
+ body: {
2060
+ reviewNote?: string | undefined;
2061
+ };
2062
+ params: {
2063
+ orderId: string;
2064
+ };
2065
+ query: unknown;
2066
+ headers: unknown;
2067
+ response: {
2068
+ 200: {
2069
+ id: string;
2070
+ createdAt: Date;
2071
+ updatedAt: Date;
2072
+ userId: string;
2073
+ status: "rejected" | "completed" | "pending_review" | "pending_payout";
2074
+ reviewedAt: Date | null;
2075
+ reviewedBy: string | null;
2076
+ walletTypeId: string;
2077
+ amount: string;
2078
+ orderNo: string;
2079
+ reviewNote: string | null;
2080
+ receiptMethodId: string;
2081
+ rejectReason: string | null;
2082
+ paidBy: string | null;
2083
+ paidAt: Date | null;
2084
+ };
2085
+ 422: {
2086
+ type: "validation";
2087
+ on: string;
2088
+ summary?: string;
2089
+ message?: string;
2090
+ found?: unknown;
2091
+ property?: string;
2092
+ expected?: string;
2093
+ };
2094
+ 401: "Unauthorized";
2095
+ 403: "Forbidden: Admins only";
2096
+ };
2097
+ };
2098
+ };
2099
+ };
2100
+ };
2101
+ } & {
2102
+ withdraw: {
2103
+ ":orderId": {
2104
+ reject: {
2105
+ post: {
2106
+ body: {
2107
+ rejectReason: string;
2108
+ };
2109
+ params: {
2110
+ orderId: string;
2111
+ };
2112
+ query: unknown;
2113
+ headers: unknown;
2114
+ response: {
2115
+ 200: {
2116
+ id: string;
2117
+ createdAt: Date;
2118
+ updatedAt: Date;
2119
+ userId: string;
2120
+ status: "rejected" | "completed" | "pending_review" | "pending_payout";
2121
+ reviewedAt: Date | null;
2122
+ reviewedBy: string | null;
2123
+ walletTypeId: string;
2124
+ amount: string;
2125
+ orderNo: string;
2126
+ reviewNote: string | null;
2127
+ receiptMethodId: string;
2128
+ rejectReason: string | null;
2129
+ paidBy: string | null;
2130
+ paidAt: Date | null;
2131
+ };
2132
+ 422: {
2133
+ type: "validation";
2134
+ on: string;
2135
+ summary?: string;
2136
+ message?: string;
2137
+ found?: unknown;
2138
+ property?: string;
2139
+ expected?: string;
2140
+ };
2141
+ 401: "Unauthorized";
2142
+ 403: "Forbidden: Admins only";
2143
+ };
2144
+ };
2145
+ };
2146
+ };
2147
+ };
2148
+ } & {
2149
+ withdraw: {
2150
+ ":orderId": {
2151
+ paid: {
2152
+ post: {
2153
+ body: unknown;
2154
+ params: {
2155
+ orderId: string;
2156
+ };
2157
+ query: unknown;
2158
+ headers: unknown;
2159
+ response: {
2160
+ 200: {
2161
+ id: string;
2162
+ createdAt: Date;
2163
+ updatedAt: Date;
2164
+ userId: string;
2165
+ status: "rejected" | "completed" | "pending_review" | "pending_payout";
2166
+ reviewedAt: Date | null;
2167
+ reviewedBy: string | null;
2168
+ walletTypeId: string;
2169
+ amount: string;
2170
+ orderNo: string;
2171
+ reviewNote: string | null;
2172
+ receiptMethodId: string;
2173
+ rejectReason: string | null;
2174
+ paidBy: string | null;
2175
+ paidAt: Date | null;
2176
+ };
2177
+ 422: {
2178
+ type: "validation";
2179
+ on: string;
2180
+ summary?: string;
2181
+ message?: string;
2182
+ found?: unknown;
2183
+ property?: string;
2184
+ expected?: string;
2185
+ };
2186
+ 401: "Unauthorized";
2187
+ 403: "Forbidden: Admins only";
2188
+ };
2189
+ };
2190
+ };
2191
+ };
2192
+ };
2193
+ };
2194
+ } & {
2195
+ admin: {
2196
+ notifications: {};
2197
+ } & {
2198
+ notifications: {
2199
+ post: {
2200
+ body: {
2201
+ expiresAt?: Date | null | undefined;
2202
+ priority?: "normal" | "low" | "high" | "urgent" | undefined;
2203
+ isBroadcast?: boolean | undefined;
2204
+ userIds?: string[] | undefined;
2205
+ type: "system" | "transaction" | "activity" | "security";
2206
+ category: string;
2207
+ title: string;
2208
+ content: string;
2209
+ };
2210
+ params: {};
2211
+ query: unknown;
2212
+ headers: unknown;
2213
+ response: {
2214
+ 200: {
2215
+ type: "system" | "transaction" | "activity" | "security";
2216
+ id: string;
2217
+ createdAt: Date;
2218
+ updatedAt: Date;
2219
+ expiresAt: Date | null;
2220
+ category: string;
2221
+ title: string;
2222
+ content: string;
2223
+ priority: "normal" | "low" | "high" | "urgent";
2224
+ isBroadcast: boolean;
2225
+ };
2226
+ 422: {
2227
+ type: "validation";
2228
+ on: string;
2229
+ summary?: string;
2230
+ message?: string;
2231
+ found?: unknown;
2232
+ property?: string;
2233
+ expected?: string;
2234
+ };
2235
+ 401: "Unauthorized";
2236
+ 403: "Forbidden: Admins only";
2237
+ };
2238
+ };
2239
+ };
2240
+ } & {
2241
+ notifications: {
2242
+ get: {
2243
+ body: unknown;
2244
+ params: {};
2245
+ query: {
2246
+ type?: "system" | "transaction" | "activity" | "security" | undefined;
2247
+ status?: "archived" | "unread" | "read" | "deleted" | undefined;
2248
+ limit?: number | undefined;
2249
+ offset?: number | undefined;
2250
+ pageSize?: number | undefined;
2251
+ pageIndex?: number | undefined;
2252
+ };
2253
+ headers: unknown;
2254
+ response: {
2255
+ 200: {
2256
+ data: {
2257
+ sentCount: number;
2258
+ readCount: number;
2259
+ status: "unread";
2260
+ readAt: null;
2261
+ createdAt: Date;
2262
+ updatedAt: Date;
2263
+ id: string;
2264
+ type: "system" | "transaction" | "activity" | "security";
2265
+ category: string;
2266
+ title: string;
2267
+ content: string;
2268
+ priority: "normal" | "low" | "high" | "urgent";
2269
+ isBroadcast: boolean;
2270
+ expiresAt: Date | null;
2271
+ }[];
2272
+ pagination: {
2273
+ pageSize: number;
2274
+ pageIndex: number;
2275
+ total: number;
2276
+ totalPages: number;
2277
+ hasNextPage: boolean;
2278
+ };
2279
+ };
2280
+ 422: {
2281
+ type: "validation";
2282
+ on: string;
2283
+ summary?: string;
2284
+ message?: string;
2285
+ found?: unknown;
2286
+ property?: string;
2287
+ expected?: string;
2288
+ };
2289
+ 401: "Unauthorized";
2290
+ 403: "Forbidden: Admins only";
2291
+ };
2292
+ };
2293
+ };
2294
+ } & {
2295
+ notifications: {
2296
+ stats: {
2297
+ get: {
2298
+ body: unknown;
2299
+ params: {};
2300
+ query: unknown;
2301
+ headers: unknown;
2302
+ response: {
2303
+ 200: {
2304
+ totalSent: number;
2305
+ broadcastCount: number;
2306
+ personalCount: number;
2307
+ totalRead: number;
2308
+ readRate: number;
2309
+ };
2310
+ 401: "Unauthorized";
2311
+ 403: "Forbidden: Admins only";
2312
+ };
2313
+ };
2314
+ };
2315
+ };
2316
+ };
2317
+ } & {
2318
+ admin: {
2319
+ receipt_method: {};
2320
+ } & {
2321
+ receipt_method: {
2322
+ get: {
2323
+ body: {};
2324
+ params: {};
2325
+ query: {
2326
+ type?: "bank_card" | "alipay" | undefined;
2327
+ userId?: string | undefined;
2328
+ limit?: number | undefined;
2329
+ offset?: number | undefined;
2330
+ pageSize?: number | undefined;
2331
+ pageIndex?: number | undefined;
2332
+ };
2333
+ headers: {};
2334
+ response: {
2335
+ 200: {
2336
+ data: {
2337
+ type: "bank_card" | "alipay";
2338
+ id: string;
2339
+ createdAt: Date;
2340
+ updatedAt: Date;
2341
+ userId: string;
2342
+ bankName: string | null;
2343
+ fullName: string;
2344
+ bankBranchName: string | null;
2345
+ bankCardNumber: string | null;
2346
+ alipayName: string | null;
2347
+ alipayAccount: string | null;
2348
+ }[];
2349
+ pagination: {
2350
+ total: number;
2351
+ pageSize: number;
2352
+ pageIndex: number;
2353
+ totalPages: number;
2354
+ hasNextPage: boolean;
2355
+ };
2356
+ };
2357
+ 422: {
2358
+ type: "validation";
2359
+ on: string;
2360
+ summary?: string;
2361
+ message?: string;
2362
+ found?: unknown;
2363
+ property?: string;
2364
+ expected?: string;
2365
+ };
2366
+ 401: "Unauthorized";
2367
+ 403: "Forbidden: Admins only";
2368
+ };
2369
+ };
2370
+ };
2371
+ } & {
2372
+ receipt_method: {
2373
+ ":id": {
2374
+ delete: {
2375
+ body: {};
2376
+ params: {
2377
+ id: string;
2378
+ };
2379
+ query: {};
2380
+ headers: {};
2381
+ response: {
2382
+ 200: {
2383
+ success: boolean;
2384
+ };
2385
+ 422: {
2386
+ type: "validation";
2387
+ on: string;
2388
+ summary?: string;
2389
+ message?: string;
2390
+ found?: unknown;
2391
+ property?: string;
2392
+ expected?: string;
2393
+ };
2394
+ 401: "Unauthorized";
2395
+ 403: "Forbidden: Admins only";
2396
+ };
2397
+ };
2398
+ };
2399
+ };
2400
+ } & {
2401
+ receipt_method: {
2402
+ ":id": {
2403
+ get: {
2404
+ body: {};
2405
+ params: {
2406
+ id: string;
2407
+ };
2408
+ query: {};
2409
+ headers: {};
2410
+ response: {
2411
+ 200: {
2412
+ type: "bank_card" | "alipay";
2413
+ id: string;
2414
+ createdAt: Date;
2415
+ updatedAt: Date;
2416
+ userId: string;
2417
+ bankName: string | null;
2418
+ fullName: string;
2419
+ bankBranchName: string | null;
2420
+ bankCardNumber: string | null;
2421
+ alipayName: string | null;
2422
+ alipayAccount: string | null;
2423
+ };
2424
+ 422: {
2425
+ type: "validation";
2426
+ on: string;
2427
+ summary?: string;
2428
+ message?: string;
2429
+ found?: unknown;
2430
+ property?: string;
2431
+ expected?: string;
2432
+ };
2433
+ 401: "Unauthorized";
2434
+ 403: "Forbidden: Admins only";
2435
+ };
2436
+ };
2437
+ };
2438
+ };
2439
+ };
2440
+ } & {
2441
+ admin: {
2442
+ shipping_address: {};
2443
+ } & {
2444
+ shipping_address: {
2445
+ get: {
2446
+ body: {};
2447
+ params: {};
2448
+ query: {
2449
+ userId?: string | undefined;
2450
+ limit?: number | undefined;
2451
+ offset?: number | undefined;
2452
+ pageSize?: number | undefined;
2453
+ pageIndex?: number | undefined;
2454
+ };
2455
+ headers: {};
2456
+ response: {
2457
+ 200: {
2458
+ data: {
2459
+ id: string;
2460
+ createdAt: Date;
2461
+ updatedAt: Date;
2462
+ phoneNumber: string;
2463
+ userId: string;
2464
+ isDefault: boolean;
2465
+ recipientName: string;
2466
+ detailAddress: string;
2467
+ }[];
2468
+ pagination: {
2469
+ total: number;
2470
+ pageSize: number;
2471
+ pageIndex: number;
2472
+ totalPages: number;
2473
+ hasNextPage: boolean;
2474
+ };
2475
+ };
2476
+ 422: {
2477
+ type: "validation";
2478
+ on: string;
2479
+ summary?: string;
2480
+ message?: string;
2481
+ found?: unknown;
2482
+ property?: string;
2483
+ expected?: string;
2484
+ };
2485
+ 401: "Unauthorized";
2486
+ 403: "Forbidden: Admins only";
2487
+ };
2488
+ };
2489
+ };
2490
+ };
2491
+ } & {
2492
+ admin: {
2493
+ referrals: {};
2494
+ } & {
2495
+ referrals: {
2496
+ summary: {
2497
+ get: {
2498
+ body: unknown;
2499
+ params: {};
2500
+ query: {
2501
+ limit?: number | undefined;
2502
+ offset?: number | undefined;
2503
+ pageSize?: number | undefined;
2504
+ pageIndex?: number | undefined;
2505
+ maxDepth?: number | undefined;
2506
+ referralCode: string;
2507
+ };
2508
+ headers: unknown;
2509
+ response: {
2510
+ 200: {
2511
+ referredBy?: string | undefined;
2512
+ userId: string;
2513
+ referralCode: string;
2514
+ level1Count: number;
2515
+ level2Count: number;
2516
+ level3Count: number;
2517
+ totalCount: number;
2518
+ };
2519
+ 422: {
2520
+ type: "validation";
2521
+ on: string;
2522
+ summary?: string;
2523
+ message?: string;
2524
+ found?: unknown;
2525
+ property?: string;
2526
+ expected?: string;
2527
+ };
2528
+ 401: "Unauthorized";
2529
+ 403: "Forbidden: Admins only";
2530
+ };
2531
+ };
2532
+ };
2533
+ };
2534
+ } & {
2535
+ referrals: {
2536
+ members: {
2537
+ get: {
2538
+ body: unknown;
2539
+ params: {};
2540
+ query: {
2541
+ limit?: number | undefined;
2542
+ offset?: number | undefined;
2543
+ pageSize?: number | undefined;
2544
+ pageIndex?: number | undefined;
2545
+ maxDepth?: number | undefined;
2546
+ referralCode: string;
2547
+ };
2548
+ headers: unknown;
2549
+ response: {
2550
+ 200: {
2551
+ data: {
2552
+ user: {
2553
+ email: string;
2554
+ id: string;
2555
+ name: string;
2556
+ emailVerified: boolean;
2557
+ image: string | null;
2558
+ createdAt: Date;
2559
+ updatedAt: Date;
2560
+ twoFactorEnabled: boolean | null;
2561
+ username: string | null;
2562
+ displayUsername: string | null;
2563
+ isAnonymous: boolean | null;
2564
+ phoneNumber: string | null;
2565
+ phoneNumberVerified: boolean | null;
2566
+ role: string | null;
2567
+ banned: boolean | null;
2568
+ banReason: string | null;
2569
+ banExpires: Date | null;
2570
+ };
2571
+ depth: number;
2572
+ }[];
2573
+ pagination: {
2574
+ total: number;
2575
+ pageSize: number;
2576
+ pageIndex: number;
2577
+ totalPages: number;
2578
+ hasNextPage: boolean;
2579
+ };
2580
+ };
2581
+ 422: {
2582
+ type: "validation";
2583
+ on: string;
2584
+ summary?: string;
2585
+ message?: string;
2586
+ found?: unknown;
2587
+ property?: string;
2588
+ expected?: string;
2589
+ };
2590
+ 401: "Unauthorized";
2591
+ 403: "Forbidden: Admins only";
2592
+ };
2593
+ };
2594
+ };
2595
+ };
2596
+ };
2597
+ } & {
2598
+ admin: {
2599
+ referrals: {
2600
+ "depth-configs": {};
2601
+ };
2602
+ } & {
2603
+ referrals: {
2604
+ "depth-configs": {
2605
+ post: {
2606
+ body: {
2607
+ depth: number;
2608
+ commissionRate: string;
2609
+ };
2610
+ params: {};
2611
+ query: unknown;
2612
+ headers: unknown;
2613
+ response: {
2614
+ 200: {
2615
+ id: string;
2616
+ createdAt: Date;
2617
+ updatedAt: Date;
2618
+ depth: number;
2619
+ commissionRate: string;
2620
+ };
2621
+ 422: {
2622
+ type: "validation";
2623
+ on: string;
2624
+ summary?: string;
2625
+ message?: string;
2626
+ found?: unknown;
2627
+ property?: string;
2628
+ expected?: string;
2629
+ };
2630
+ 401: "Unauthorized";
2631
+ 403: "Forbidden: Admins only";
2632
+ };
2633
+ };
2634
+ };
2635
+ };
2636
+ } & {
2637
+ referrals: {
2638
+ "depth-configs": {
2639
+ get: {
2640
+ body: unknown;
2641
+ params: {};
2642
+ query: {
2643
+ depth?: number | undefined;
2644
+ limit?: number | undefined;
2645
+ offset?: number | undefined;
2646
+ pageSize?: number | undefined;
2647
+ pageIndex?: number | undefined;
2648
+ };
2649
+ headers: unknown;
2650
+ response: {
2651
+ 200: {
2652
+ data: {
2653
+ id: string;
2654
+ createdAt: Date;
2655
+ updatedAt: Date;
2656
+ depth: number;
2657
+ commissionRate: string;
2658
+ }[];
2659
+ pagination: {
2660
+ total: number;
2661
+ pageSize: number;
2662
+ pageIndex: number;
2663
+ totalPages: number;
2664
+ hasNextPage: boolean;
2665
+ };
2666
+ };
2667
+ 422: {
2668
+ type: "validation";
2669
+ on: string;
2670
+ summary?: string;
2671
+ message?: string;
2672
+ found?: unknown;
2673
+ property?: string;
2674
+ expected?: string;
2675
+ };
2676
+ 401: "Unauthorized";
2677
+ 403: "Forbidden: Admins only";
2678
+ };
2679
+ };
2680
+ };
2681
+ };
2682
+ } & {
2683
+ referrals: {
2684
+ "depth-configs": {
2685
+ ":id": {
2686
+ get: {
2687
+ body: unknown;
2688
+ params: {
2689
+ id: string;
2690
+ };
2691
+ query: unknown;
2692
+ headers: unknown;
2693
+ response: {
2694
+ 200: {
2695
+ id: string;
2696
+ createdAt: Date;
2697
+ updatedAt: Date;
2698
+ depth: number;
2699
+ commissionRate: string;
2700
+ };
2701
+ 422: {
2702
+ type: "validation";
2703
+ on: string;
2704
+ summary?: string;
2705
+ message?: string;
2706
+ found?: unknown;
2707
+ property?: string;
2708
+ expected?: string;
2709
+ };
2710
+ 401: "Unauthorized";
2711
+ 403: "Forbidden: Admins only";
2712
+ };
2713
+ };
2714
+ };
2715
+ };
2716
+ };
2717
+ } & {
2718
+ referrals: {
2719
+ "depth-configs": {
2720
+ ":id": {
2721
+ patch: {
2722
+ body: {
2723
+ depth?: number | undefined;
2724
+ commissionRate?: string | undefined;
2725
+ };
2726
+ params: {
2727
+ id: string;
2728
+ };
2729
+ query: unknown;
2730
+ headers: unknown;
2731
+ response: {
2732
+ 200: {
2733
+ id: string;
2734
+ createdAt: Date;
2735
+ updatedAt: Date;
2736
+ depth: number;
2737
+ commissionRate: string;
2738
+ };
2739
+ 422: {
2740
+ type: "validation";
2741
+ on: string;
2742
+ summary?: string;
2743
+ message?: string;
2744
+ found?: unknown;
2745
+ property?: string;
2746
+ expected?: string;
2747
+ };
2748
+ 401: "Unauthorized";
2749
+ 403: "Forbidden: Admins only";
2750
+ };
2751
+ };
2752
+ };
2753
+ };
2754
+ };
2755
+ } & {
2756
+ referrals: {
2757
+ "depth-configs": {
2758
+ ":id": {
2759
+ delete: {
2760
+ body: unknown;
2761
+ params: {
2762
+ id: string;
2763
+ };
2764
+ query: unknown;
2765
+ headers: unknown;
2766
+ response: {
2767
+ 200: {
2768
+ success: boolean;
2769
+ };
2770
+ 422: {
2771
+ type: "validation";
2772
+ on: string;
2773
+ summary?: string;
2774
+ message?: string;
2775
+ found?: unknown;
2776
+ property?: string;
2777
+ expected?: string;
2778
+ };
2779
+ 401: "Unauthorized";
2780
+ 403: "Forbidden: Admins only";
2781
+ };
2782
+ };
2783
+ };
2784
+ };
2785
+ };
2786
+ };
2787
+ } & {
2788
+ admin: {
2789
+ subscription: {};
2790
+ } & {
2791
+ subscription: {
2792
+ orders: {
2793
+ get: {
2794
+ body: unknown;
2795
+ params: {};
2796
+ query: {
2797
+ userId?: string | undefined;
2798
+ status?: "pending" | "cancelled" | "locked" | "unlocked" | undefined;
2799
+ productId?: string | undefined;
2800
+ limit?: number | undefined;
2801
+ offset?: number | undefined;
2802
+ pageSize?: number | undefined;
2803
+ pageIndex?: number | undefined;
2804
+ };
2805
+ headers: unknown;
2806
+ response: {
2807
+ 200: {
2808
+ data: {
2809
+ user: {
2810
+ email: string;
2811
+ id: string;
2812
+ name: string;
2813
+ emailVerified: boolean;
2814
+ image: string | null;
2815
+ createdAt: Date;
2816
+ updatedAt: Date;
2817
+ twoFactorEnabled: boolean | null;
2818
+ username: string | null;
2819
+ displayUsername: string | null;
2820
+ isAnonymous: boolean | null;
2821
+ phoneNumber: string | null;
2822
+ phoneNumberVerified: boolean | null;
2823
+ role: string | null;
2824
+ banned: boolean | null;
2825
+ banReason: string | null;
2826
+ banExpires: Date | null;
2827
+ };
2828
+ id: string;
2829
+ createdAt: Date;
2830
+ updatedAt: Date;
2831
+ userId: string;
2832
+ status: "pending" | "cancelled" | "locked" | "unlocked";
2833
+ walletTypeId: string;
2834
+ walletType: {
2835
+ id: string;
2836
+ name: string;
2837
+ createdAt: Date;
2838
+ updatedAt: Date;
2839
+ description: string | null;
2840
+ code: "balance" | "profit" | "team" | "check_in" | "meeting_reward" | "reform_pioneer_allowance" | "reform_monthly_enjoy" | "basic_livelihood" | "basic_pension" | "basic_medical";
2841
+ allowDeposit: boolean;
2842
+ allowWithdraw: boolean;
2843
+ minWithdrawAmount: string;
2844
+ maxWithdrawAmount: string;
2845
+ allowTransfer: boolean;
2846
+ minTransferAmount: string;
2847
+ maxTransferAmount: string;
2848
+ allowExchange: boolean;
2849
+ allowReceiveExchange: boolean;
2850
+ minExchangeAmount: string;
2851
+ maxExchangeAmount: string;
2852
+ exchangeRate: string;
2853
+ allowTransaction: boolean;
2854
+ hasExpiry: boolean;
2855
+ expiryDays: number | null;
2856
+ isActive: boolean;
2857
+ sortOrder: number;
2858
+ };
2859
+ price: string;
2860
+ maturityYield: string;
2861
+ cycleDays: number;
2862
+ reformPioneerAllowance: string;
2863
+ productId: string;
2864
+ unlockAt: Date;
2865
+ product: {
2866
+ id: string;
2867
+ name: string;
2868
+ createdAt: Date;
2869
+ updatedAt: Date;
2870
+ description: string | null;
2871
+ isActive: boolean;
2872
+ sortOrder: number;
2873
+ subscribeStartAt: Date;
2874
+ subscribeEndAt: Date;
2875
+ price: string;
2876
+ maturityYield: string;
2877
+ cycleDays: number;
2878
+ reformPioneerAllowance: string;
2879
+ coverImage: string | null;
2880
+ };
2881
+ }[];
2882
+ pagination: {
2883
+ total: number;
2884
+ pageSize: number;
2885
+ pageIndex: number;
2886
+ totalPages: number;
2887
+ hasNextPage: boolean;
2888
+ };
2889
+ };
2890
+ 422: {
2891
+ type: "validation";
2892
+ on: string;
2893
+ summary?: string;
2894
+ message?: string;
2895
+ found?: unknown;
2896
+ property?: string;
2897
+ expected?: string;
2898
+ };
2899
+ 401: "Unauthorized";
2900
+ 403: "Forbidden: Admins only";
2901
+ };
2902
+ };
2903
+ };
2904
+ };
2905
+ } & {
2906
+ subscription: {
2907
+ products: {
2908
+ post: {
2909
+ body: {
2910
+ description?: string | null | undefined;
2911
+ isActive?: boolean | undefined;
2912
+ sortOrder?: number | undefined;
2913
+ reformPioneerAllowance?: string | undefined;
2914
+ coverImage?: string | null | undefined;
2915
+ name: string;
2916
+ subscribeStartAt: Date;
2917
+ subscribeEndAt: Date;
2918
+ price: string;
2919
+ maturityYield: string;
2920
+ cycleDays: number;
2921
+ };
2922
+ params: {};
2923
+ query: unknown;
2924
+ headers: unknown;
2925
+ response: {
2926
+ 200: {
2927
+ id: string;
2928
+ name: string;
2929
+ description: string | null;
2930
+ isActive: boolean;
2931
+ sortOrder: number;
2932
+ subscribeStartAt: Date;
2933
+ subscribeEndAt: Date;
2934
+ price: string;
2935
+ maturityYield: string;
2936
+ cycleDays: number;
2937
+ reformPioneerAllowance: string;
2938
+ coverImage: string | null;
2939
+ };
2940
+ 422: {
2941
+ type: "validation";
2942
+ on: string;
2943
+ summary?: string;
2944
+ message?: string;
2945
+ found?: unknown;
2946
+ property?: string;
2947
+ expected?: string;
2948
+ };
2949
+ 401: "Unauthorized";
2950
+ 403: "Forbidden: Admins only";
2951
+ };
2952
+ };
2953
+ };
2954
+ };
2955
+ } & {
2956
+ subscription: {
2957
+ products: {
2958
+ ":productId": {
2959
+ put: {
2960
+ body: {
2961
+ name?: string | undefined;
2962
+ description?: string | null | undefined;
2963
+ isActive?: boolean | undefined;
2964
+ sortOrder?: number | undefined;
2965
+ subscribeStartAt?: Date | undefined;
2966
+ subscribeEndAt?: Date | undefined;
2967
+ price?: string | undefined;
2968
+ maturityYield?: string | undefined;
2969
+ cycleDays?: number | undefined;
2970
+ reformPioneerAllowance?: string | undefined;
2971
+ coverImage?: string | null | undefined;
2972
+ };
2973
+ params: {
2974
+ productId: string;
2975
+ };
2976
+ query: unknown;
2977
+ headers: unknown;
2978
+ response: {
2979
+ 200: {
2980
+ id: string;
2981
+ name: string;
2982
+ description: string | null;
2983
+ isActive: boolean;
2984
+ sortOrder: number;
2985
+ subscribeStartAt: Date;
2986
+ subscribeEndAt: Date;
2987
+ price: string;
2988
+ maturityYield: string;
2989
+ cycleDays: number;
2990
+ reformPioneerAllowance: string;
2991
+ coverImage: string | null;
2992
+ };
2993
+ 422: {
2994
+ type: "validation";
2995
+ on: string;
2996
+ summary?: string;
2997
+ message?: string;
2998
+ found?: unknown;
2999
+ property?: string;
3000
+ expected?: string;
3001
+ };
3002
+ 401: "Unauthorized";
3003
+ 403: "Forbidden: Admins only";
3004
+ };
3005
+ };
3006
+ };
3007
+ };
3008
+ };
3009
+ } & {
3010
+ subscription: {
3011
+ products: {
3012
+ ":productId": {
3013
+ get: {
3014
+ body: unknown;
3015
+ params: {
3016
+ productId: string;
3017
+ };
3018
+ query: unknown;
3019
+ headers: unknown;
3020
+ response: {
3021
+ 200: {
3022
+ id: string;
3023
+ name: string;
3024
+ description: string | null;
3025
+ isActive: boolean;
3026
+ sortOrder: number;
3027
+ subscribeStartAt: Date;
3028
+ subscribeEndAt: Date;
3029
+ price: string;
3030
+ maturityYield: string;
3031
+ cycleDays: number;
3032
+ reformPioneerAllowance: string;
3033
+ coverImage: string | null;
3034
+ };
3035
+ 422: {
3036
+ type: "validation";
3037
+ on: string;
3038
+ summary?: string;
3039
+ message?: string;
3040
+ found?: unknown;
3041
+ property?: string;
3042
+ expected?: string;
3043
+ };
3044
+ 401: "Unauthorized";
3045
+ 403: "Forbidden: Admins only";
3046
+ };
3047
+ };
3048
+ };
3049
+ };
3050
+ };
3051
+ } & {
3052
+ subscription: {
3053
+ products: {
3054
+ get: {
3055
+ body: unknown;
3056
+ params: {};
3057
+ query: {
3058
+ isActive?: boolean | undefined;
3059
+ limit?: number | undefined;
3060
+ offset?: number | undefined;
3061
+ pageSize?: number | undefined;
3062
+ pageIndex?: number | undefined;
3063
+ };
3064
+ headers: unknown;
3065
+ response: {
3066
+ 200: {
3067
+ data: {
3068
+ id: string;
3069
+ name: string;
3070
+ description: string | null;
3071
+ isActive: boolean;
3072
+ sortOrder: number;
3073
+ subscribeStartAt: Date;
3074
+ subscribeEndAt: Date;
3075
+ price: string;
3076
+ maturityYield: string;
3077
+ cycleDays: number;
3078
+ reformPioneerAllowance: string;
3079
+ coverImage: string | null;
3080
+ }[];
3081
+ pagination: {
3082
+ total: number;
3083
+ pageSize: number;
3084
+ pageIndex: number;
3085
+ totalPages: number;
3086
+ hasNextPage: boolean;
3087
+ };
3088
+ };
3089
+ 422: {
3090
+ type: "validation";
3091
+ on: string;
3092
+ summary?: string;
3093
+ message?: string;
3094
+ found?: unknown;
3095
+ property?: string;
3096
+ expected?: string;
3097
+ };
3098
+ 401: "Unauthorized";
3099
+ 403: "Forbidden: Admins only";
3100
+ };
3101
+ };
3102
+ };
3103
+ };
3104
+ } & {
3105
+ subscription: {
3106
+ products: {
3107
+ ":productId": {
3108
+ switchActive: {
3109
+ post: {
3110
+ body: unknown;
3111
+ params: {
3112
+ productId: string;
3113
+ };
3114
+ query: unknown;
3115
+ headers: unknown;
3116
+ response: {
3117
+ 200: {
3118
+ id: string;
3119
+ name: string;
3120
+ description: string | null;
3121
+ isActive: boolean;
3122
+ sortOrder: number;
3123
+ subscribeStartAt: Date;
3124
+ subscribeEndAt: Date;
3125
+ price: string;
3126
+ maturityYield: string;
3127
+ cycleDays: number;
3128
+ reformPioneerAllowance: string;
3129
+ coverImage: string | null;
3130
+ };
3131
+ 422: {
3132
+ type: "validation";
3133
+ on: string;
3134
+ summary?: string;
3135
+ message?: string;
3136
+ found?: unknown;
3137
+ property?: string;
3138
+ expected?: string;
3139
+ };
3140
+ 401: "Unauthorized";
3141
+ 403: "Forbidden: Admins only";
3142
+ };
3143
+ };
3144
+ };
3145
+ };
3146
+ };
3147
+ };
3148
+ };
3149
+ } & {
3150
+ admin: {
3151
+ team: {};
3152
+ } & {
3153
+ team: {
3154
+ summary: {
3155
+ get: {
3156
+ body: unknown;
3157
+ params: {};
3158
+ query: {
3159
+ referralCode: string;
3160
+ };
3161
+ headers: unknown;
3162
+ response: {
3163
+ 200: {
3164
+ userId: string;
3165
+ referralCode: string;
3166
+ level1Count: number;
3167
+ level2Count: number;
3168
+ level3Count: number;
3169
+ totalCount: number;
3170
+ };
3171
+ 422: {
3172
+ type: "validation";
3173
+ on: string;
3174
+ summary?: string;
3175
+ message?: string;
3176
+ found?: unknown;
3177
+ property?: string;
3178
+ expected?: string;
3179
+ };
3180
+ 401: "Unauthorized";
3181
+ 403: "Forbidden: Admins only";
3182
+ };
3183
+ };
3184
+ };
3185
+ };
3186
+ } & {
3187
+ team: {
3188
+ members: {
3189
+ get: {
3190
+ body: unknown;
3191
+ params: {};
3192
+ query: {
3193
+ depth?: number | undefined;
3194
+ limit?: number | undefined;
3195
+ offset?: number | undefined;
3196
+ pageSize?: number | undefined;
3197
+ pageIndex?: number | undefined;
3198
+ referralCode: string;
3199
+ };
3200
+ headers: unknown;
3201
+ response: {
3202
+ 200: {
3203
+ data: {
3204
+ id: string;
3205
+ createdAt: Date;
3206
+ updatedAt: Date;
3207
+ depth: number;
3208
+ ancestorId: string;
3209
+ descendantId: string;
3210
+ descendant: {
3211
+ email: string;
3212
+ id: string;
3213
+ name: string;
3214
+ emailVerified: boolean;
3215
+ image: string | null;
3216
+ createdAt: Date;
3217
+ updatedAt: Date;
3218
+ twoFactorEnabled: boolean | null;
3219
+ username: string | null;
3220
+ displayUsername: string | null;
3221
+ isAnonymous: boolean | null;
3222
+ phoneNumber: string | null;
3223
+ phoneNumberVerified: boolean | null;
3224
+ role: string | null;
3225
+ banned: boolean | null;
3226
+ banReason: string | null;
3227
+ banExpires: Date | null;
3228
+ };
3229
+ depthConfig: {
3230
+ id: string;
3231
+ createdAt: Date;
3232
+ updatedAt: Date;
3233
+ depth: number;
3234
+ commissionRate: string;
3235
+ } | null;
3236
+ directCount: number;
3237
+ }[];
3238
+ pagination: {
3239
+ total: number;
3240
+ pageSize: number;
3241
+ pageIndex: number;
3242
+ totalPages: number;
3243
+ hasNextPage: boolean;
3244
+ };
3245
+ };
3246
+ 422: {
3247
+ type: "validation";
3248
+ on: string;
3249
+ summary?: string;
3250
+ message?: string;
3251
+ found?: unknown;
3252
+ property?: string;
3253
+ expected?: string;
3254
+ };
3255
+ 401: "Unauthorized";
3256
+ 403: "Forbidden: Admins only";
3257
+ };
3258
+ };
3259
+ };
3260
+ };
3261
+ };
3262
+ } & {
3263
+ admin: {
3264
+ transfer: {};
3265
+ } & {
3266
+ transfer: {
3267
+ get: {
3268
+ body: unknown;
3269
+ params: {};
3270
+ query: {
3271
+ limit?: number | undefined;
3272
+ offset?: number | undefined;
3273
+ pageSize?: number | undefined;
3274
+ pageIndex?: number | undefined;
3275
+ };
3276
+ headers: unknown;
3277
+ response: {
3278
+ 200: {
3279
+ data: {
3280
+ id: string;
3281
+ createdAt: Date;
3282
+ updatedAt: Date;
3283
+ amount: string;
3284
+ orderNo: string;
3285
+ sourceUserId: string;
3286
+ targetUserId: string;
3287
+ sourceWalletTypeId: string;
3288
+ targetWalletTypeId: string;
3289
+ sourceUser: {
3290
+ email: string;
3291
+ id: string;
3292
+ name: string;
3293
+ emailVerified: boolean;
3294
+ image: string | null;
3295
+ createdAt: Date;
3296
+ updatedAt: Date;
3297
+ twoFactorEnabled: boolean | null;
3298
+ username: string | null;
3299
+ displayUsername: string | null;
3300
+ isAnonymous: boolean | null;
3301
+ phoneNumber: string | null;
3302
+ phoneNumberVerified: boolean | null;
3303
+ role: string | null;
3304
+ banned: boolean | null;
3305
+ banReason: string | null;
3306
+ banExpires: Date | null;
3307
+ };
3308
+ targetUser: {
3309
+ email: string;
3310
+ id: string;
3311
+ name: string;
3312
+ emailVerified: boolean;
3313
+ image: string | null;
3314
+ createdAt: Date;
3315
+ updatedAt: Date;
3316
+ twoFactorEnabled: boolean | null;
3317
+ username: string | null;
3318
+ displayUsername: string | null;
3319
+ isAnonymous: boolean | null;
3320
+ phoneNumber: string | null;
3321
+ phoneNumberVerified: boolean | null;
3322
+ role: string | null;
3323
+ banned: boolean | null;
3324
+ banReason: string | null;
3325
+ banExpires: Date | null;
3326
+ };
3327
+ sourceWalletType: {
3328
+ id: string;
3329
+ name: string;
3330
+ createdAt: Date;
3331
+ updatedAt: Date;
3332
+ description: string | null;
3333
+ code: "balance" | "profit" | "team" | "check_in" | "meeting_reward" | "reform_pioneer_allowance" | "reform_monthly_enjoy" | "basic_livelihood" | "basic_pension" | "basic_medical";
3334
+ allowDeposit: boolean;
3335
+ allowWithdraw: boolean;
3336
+ minWithdrawAmount: string;
3337
+ maxWithdrawAmount: string;
3338
+ allowTransfer: boolean;
3339
+ minTransferAmount: string;
3340
+ maxTransferAmount: string;
3341
+ allowExchange: boolean;
3342
+ allowReceiveExchange: boolean;
3343
+ minExchangeAmount: string;
3344
+ maxExchangeAmount: string;
3345
+ exchangeRate: string;
3346
+ allowTransaction: boolean;
3347
+ hasExpiry: boolean;
3348
+ expiryDays: number | null;
3349
+ isActive: boolean;
3350
+ sortOrder: number;
3351
+ };
3352
+ targetWalletType: {
3353
+ id: string;
3354
+ name: string;
3355
+ createdAt: Date;
3356
+ updatedAt: Date;
3357
+ description: string | null;
3358
+ code: "balance" | "profit" | "team" | "check_in" | "meeting_reward" | "reform_pioneer_allowance" | "reform_monthly_enjoy" | "basic_livelihood" | "basic_pension" | "basic_medical";
3359
+ allowDeposit: boolean;
3360
+ allowWithdraw: boolean;
3361
+ minWithdrawAmount: string;
3362
+ maxWithdrawAmount: string;
3363
+ allowTransfer: boolean;
3364
+ minTransferAmount: string;
3365
+ maxTransferAmount: string;
3366
+ allowExchange: boolean;
3367
+ allowReceiveExchange: boolean;
3368
+ minExchangeAmount: string;
3369
+ maxExchangeAmount: string;
3370
+ exchangeRate: string;
3371
+ allowTransaction: boolean;
3372
+ hasExpiry: boolean;
3373
+ expiryDays: number | null;
3374
+ isActive: boolean;
3375
+ sortOrder: number;
3376
+ };
3377
+ }[];
3378
+ pagination: {
3379
+ total: number;
3380
+ pageSize: number;
3381
+ pageIndex: number;
3382
+ totalPages: number;
3383
+ hasNextPage: boolean;
3384
+ };
3385
+ };
3386
+ 422: {
3387
+ type: "validation";
3388
+ on: string;
3389
+ summary?: string;
3390
+ message?: string;
3391
+ found?: unknown;
3392
+ property?: string;
3393
+ expected?: string;
3394
+ };
3395
+ 401: "Unauthorized";
3396
+ 403: "Forbidden: Admins only";
3397
+ };
3398
+ };
3399
+ };
3400
+ };
3401
+ } & {
3402
+ admin: {
3403
+ news_categories: {
3404
+ post: {
3405
+ body: {
3406
+ description?: string | null | undefined;
3407
+ isActive?: boolean | undefined;
3408
+ sortOrder?: number | undefined;
3409
+ slug?: string | null | undefined;
3410
+ icon?: string | null | undefined;
3411
+ name: string;
3412
+ };
3413
+ params: {};
3414
+ query: unknown;
3415
+ headers: unknown;
3416
+ response: {
3417
+ 200: {
3418
+ id: string;
3419
+ name: string;
3420
+ createdAt: Date;
3421
+ updatedAt: Date;
3422
+ description: string | null;
3423
+ isActive: boolean;
3424
+ sortOrder: number;
3425
+ slug: string | null;
3426
+ icon: string | null;
3427
+ };
3428
+ 422: {
3429
+ type: "validation";
3430
+ on: string;
3431
+ summary?: string;
3432
+ message?: string;
3433
+ found?: unknown;
3434
+ property?: string;
3435
+ expected?: string;
3436
+ };
3437
+ };
3438
+ };
3439
+ };
3440
+ } & {
3441
+ news_categories: {
3442
+ get: {
3443
+ body: unknown;
3444
+ params: {};
3445
+ query: {
3446
+ isActive?: boolean | undefined;
3447
+ limit?: number | undefined;
3448
+ offset?: number | undefined;
3449
+ pageSize?: number | undefined;
3450
+ pageIndex?: number | undefined;
3451
+ };
3452
+ headers: unknown;
3453
+ response: {
3454
+ 200: {
3455
+ data: {
3456
+ id: string;
3457
+ name: string;
3458
+ description: string | null;
3459
+ isActive: boolean;
3460
+ sortOrder: number;
3461
+ slug: string | null;
3462
+ icon: string | null;
3463
+ }[];
3464
+ pagination: {
3465
+ total: number;
3466
+ pageSize: number;
3467
+ pageIndex: number;
3468
+ totalPages: number;
3469
+ hasNextPage: boolean;
3470
+ };
3471
+ };
3472
+ 422: {
3473
+ type: "validation";
3474
+ on: string;
3475
+ summary?: string;
3476
+ message?: string;
3477
+ found?: unknown;
3478
+ property?: string;
3479
+ expected?: string;
3480
+ };
3481
+ };
3482
+ };
3483
+ };
3484
+ } & {
3485
+ news_categories: {
3486
+ ":id": {
3487
+ get: {
3488
+ body: unknown;
3489
+ params: {
3490
+ id: string;
3491
+ };
3492
+ query: unknown;
3493
+ headers: unknown;
3494
+ response: {
3495
+ 200: {
3496
+ id: string;
3497
+ name: string;
3498
+ createdAt: Date;
3499
+ updatedAt: Date;
3500
+ description: string | null;
3501
+ isActive: boolean;
3502
+ sortOrder: number;
3503
+ slug: string | null;
3504
+ icon: string | null;
3505
+ };
3506
+ 422: {
3507
+ type: "validation";
3508
+ on: string;
3509
+ summary?: string;
3510
+ message?: string;
3511
+ found?: unknown;
3512
+ property?: string;
3513
+ expected?: string;
3514
+ };
3515
+ };
3516
+ };
3517
+ };
3518
+ };
3519
+ } & {
3520
+ news_categories: {
3521
+ ":id": {
3522
+ patch: {
3523
+ body: {
3524
+ name?: string | undefined;
3525
+ description?: string | null | undefined;
3526
+ isActive?: boolean | undefined;
3527
+ sortOrder?: number | undefined;
3528
+ slug?: string | null | undefined;
3529
+ icon?: string | null | undefined;
3530
+ };
3531
+ params: {
3532
+ id: string;
3533
+ };
3534
+ query: unknown;
3535
+ headers: unknown;
3536
+ response: {
3537
+ 422: {
3538
+ type: "validation";
3539
+ on: string;
3540
+ summary?: string;
3541
+ message?: string;
3542
+ found?: unknown;
3543
+ property?: string;
3544
+ expected?: string;
3545
+ };
3546
+ };
3547
+ };
3548
+ };
3549
+ };
3550
+ } & {
3551
+ news_categories: {
3552
+ ":id": {
3553
+ delete: {
3554
+ body: unknown;
3555
+ params: {
3556
+ id: string;
3557
+ };
3558
+ query: unknown;
3559
+ headers: unknown;
3560
+ response: {
3561
+ 200: {
3562
+ success: boolean;
3563
+ };
3564
+ 422: {
3565
+ type: "validation";
3566
+ on: string;
3567
+ summary?: string;
3568
+ message?: string;
3569
+ found?: unknown;
3570
+ property?: string;
3571
+ expected?: string;
3572
+ };
3573
+ };
3574
+ };
3575
+ };
3576
+ };
3577
+ };
3578
+ } & {
3579
+ admin: {
3580
+ news: {};
3581
+ } & {
3582
+ news: {
3583
+ post: {
3584
+ body: {
3585
+ expiresAt?: Date | null | undefined;
3586
+ scope?: string[] | undefined;
3587
+ status?: "archived" | "draft" | "published" | undefined;
3588
+ sortOrder?: number | undefined;
3589
+ summary?: string | null | undefined;
3590
+ categoryId?: string | undefined;
3591
+ isPinned?: boolean | undefined;
3592
+ isHot?: boolean | undefined;
3593
+ hasVideo?: boolean | undefined;
3594
+ requireReadConfirmation?: boolean | undefined;
3595
+ externalUrl?: string | null | undefined;
3596
+ publishedAt?: Date | null | undefined;
3597
+ thumbnailId?: string | null | undefined;
3598
+ attachmentIds?: string[] | null | undefined;
3599
+ title: string;
3600
+ content: string;
3601
+ };
3602
+ params: {};
3603
+ query: unknown;
3604
+ headers: unknown;
3605
+ response: {
3606
+ 422: {
3607
+ type: "validation";
3608
+ on: string;
3609
+ summary?: string;
3610
+ message?: string;
3611
+ found?: unknown;
3612
+ property?: string;
3613
+ expected?: string;
3614
+ };
3615
+ 401: "Unauthorized";
3616
+ 403: "Forbidden: Admins only";
3617
+ };
3618
+ };
3619
+ };
3620
+ } & {
3621
+ news: {
3622
+ get: {
3623
+ body: unknown;
3624
+ params: {};
3625
+ query: {
3626
+ status?: "archived" | "draft" | "published" | undefined;
3627
+ categoryId?: string | undefined;
3628
+ isPinned?: boolean | undefined;
3629
+ requireReadConfirmation?: boolean | undefined;
3630
+ limit?: number | undefined;
3631
+ offset?: number | undefined;
3632
+ pageSize?: number | undefined;
3633
+ pageIndex?: number | undefined;
3634
+ };
3635
+ headers: unknown;
3636
+ response: {
3637
+ 200: {
3638
+ data: {
3639
+ id: string;
3640
+ createdAt: Date;
3641
+ updatedAt: Date;
3642
+ expiresAt: Date | null;
3643
+ scope: string[];
3644
+ deletedAt: Date | null;
3645
+ status: "archived" | "draft" | "published";
3646
+ sortOrder: number;
3647
+ createdBy: string;
3648
+ title: string;
3649
+ content: string;
3650
+ summary: string | null;
3651
+ categoryId: string;
3652
+ isPinned: boolean;
3653
+ isHot: boolean;
3654
+ hasVideo: boolean;
3655
+ requireReadConfirmation: boolean;
3656
+ externalUrl: string | null;
3657
+ viewCount: number;
3658
+ publishedAt: Date | null;
3659
+ thumbnailId: string | null;
3660
+ attachmentIds: string[] | null;
3661
+ category: {
3662
+ id: string;
3663
+ name: string;
3664
+ createdAt: Date;
3665
+ updatedAt: Date;
3666
+ description: string | null;
3667
+ isActive: boolean;
3668
+ sortOrder: number;
3669
+ slug: string | null;
3670
+ icon: string | null;
3671
+ };
3672
+ }[];
3673
+ pagination: {
3674
+ pageSize: number;
3675
+ pageIndex: number;
3676
+ total: number;
3677
+ totalPages: number;
3678
+ hasNextPage: boolean;
3679
+ };
3680
+ };
3681
+ 422: {
3682
+ type: "validation";
3683
+ on: string;
3684
+ summary?: string;
3685
+ message?: string;
3686
+ found?: unknown;
3687
+ property?: string;
3688
+ expected?: string;
3689
+ };
3690
+ 401: "Unauthorized";
3691
+ 403: "Forbidden: Admins only";
3692
+ };
3693
+ };
3694
+ };
3695
+ } & {
3696
+ news: {
3697
+ ":id": {
3698
+ get: {
3699
+ body: unknown;
3700
+ params: {
3701
+ id: string;
3702
+ };
3703
+ query: unknown;
3704
+ headers: unknown;
3705
+ response: {
3706
+ 200: {
3707
+ id: string;
3708
+ createdAt: Date;
3709
+ updatedAt: Date;
3710
+ expiresAt: Date | null;
3711
+ scope: string[];
3712
+ deletedAt: Date | null;
3713
+ status: "archived" | "draft" | "published";
3714
+ sortOrder: number;
3715
+ createdBy: string;
3716
+ title: string;
3717
+ content: string;
3718
+ summary: string | null;
3719
+ categoryId: string;
3720
+ isPinned: boolean;
3721
+ isHot: boolean;
3722
+ hasVideo: boolean;
3723
+ requireReadConfirmation: boolean;
3724
+ externalUrl: string | null;
3725
+ viewCount: number;
3726
+ publishedAt: Date | null;
3727
+ thumbnailId: string | null;
3728
+ attachmentIds: string[] | null;
3729
+ category: {
3730
+ id: string;
3731
+ name: string;
3732
+ createdAt: Date;
3733
+ updatedAt: Date;
3734
+ description: string | null;
3735
+ isActive: boolean;
3736
+ sortOrder: number;
3737
+ slug: string | null;
3738
+ icon: string | null;
3739
+ };
3740
+ thumbnail: {
3741
+ id: string;
3742
+ createdAt: Date;
3743
+ updatedAt: Date;
3744
+ deletedAt: Date | null;
3745
+ fileName: string | null;
3746
+ fileSize: number | null;
3747
+ mimeType: string | null;
3748
+ fileExtension: string | null;
3749
+ fileHash: string | null;
3750
+ s3Bucket: string;
3751
+ s3Key: string;
3752
+ s3Region: string;
3753
+ s3ETag: string | null;
3754
+ businessType: "other" | "kyc_document" | "contract" | "financial_report" | "wallet_import" | "avatar" | "cover_image" | "notification_attachment" | "transaction_receipt" | "export_report" | "bank_verification" | "news_attachment";
3755
+ businessId: string | null;
3756
+ businessMetadata: string | null;
3757
+ ownerId: string;
3758
+ accessControl: "private" | "restricted" | "public" | null;
3759
+ status: "uploading" | "active" | "archived" | "pending_deletion" | null;
3760
+ publicUrl: string | null;
3761
+ thumbnailUrl: string | null;
3762
+ archivedAt: Date | null;
3763
+ uploadCompletedAt: Date | null;
3764
+ uploadIpAddress: string | null;
3765
+ downloadCount: number | null;
3766
+ lastDownloadedAt: Date | null;
3767
+ isVerified: boolean | null;
3768
+ verifiedBy: string | null;
3769
+ verifiedAt: Date | null;
3770
+ verificationNote: string | null;
3771
+ } | null;
3772
+ };
3773
+ 422: {
3774
+ type: "validation";
3775
+ on: string;
3776
+ summary?: string;
3777
+ message?: string;
3778
+ found?: unknown;
3779
+ property?: string;
3780
+ expected?: string;
3781
+ };
3782
+ 401: "Unauthorized";
3783
+ 403: "Forbidden: Admins only";
3784
+ };
3785
+ };
3786
+ };
3787
+ };
3788
+ } & {
3789
+ news: {
3790
+ ":id": {
3791
+ patch: {
3792
+ body: {
3793
+ expiresAt?: Date | null | undefined;
3794
+ scope?: string[] | undefined;
3795
+ status?: "archived" | "draft" | "published" | undefined;
3796
+ sortOrder?: number | undefined;
3797
+ title?: string | undefined;
3798
+ content?: string | undefined;
3799
+ summary?: string | null | undefined;
3800
+ categoryId?: string | undefined;
3801
+ isPinned?: boolean | undefined;
3802
+ isHot?: boolean | undefined;
3803
+ hasVideo?: boolean | undefined;
3804
+ requireReadConfirmation?: boolean | undefined;
3805
+ externalUrl?: string | null | undefined;
3806
+ publishedAt?: Date | null | undefined;
3807
+ thumbnailId?: string | null | undefined;
3808
+ attachmentIds?: string[] | null | undefined;
3809
+ };
3810
+ params: {
3811
+ id: string;
3812
+ };
3813
+ query: unknown;
3814
+ headers: unknown;
3815
+ response: {
3816
+ 422: {
3817
+ type: "validation";
3818
+ on: string;
3819
+ summary?: string;
3820
+ message?: string;
3821
+ found?: unknown;
3822
+ property?: string;
3823
+ expected?: string;
3824
+ };
3825
+ 401: "Unauthorized";
3826
+ 403: "Forbidden: Admins only";
3827
+ };
3828
+ };
3829
+ };
3830
+ };
3831
+ } & {
3832
+ news: {
3833
+ ":id": {
3834
+ delete: {
3835
+ body: unknown;
3836
+ params: {
3837
+ id: string;
3838
+ };
3839
+ query: unknown;
3840
+ headers: unknown;
3841
+ response: {
3842
+ 200: {
3843
+ success: boolean;
3844
+ };
3845
+ 422: {
3846
+ type: "validation";
3847
+ on: string;
3848
+ summary?: string;
3849
+ message?: string;
3850
+ found?: unknown;
3851
+ property?: string;
3852
+ expected?: string;
3853
+ };
3854
+ 401: "Unauthorized";
3855
+ 403: "Forbidden: Admins only";
3856
+ };
3857
+ };
3858
+ };
3859
+ };
3860
+ } & {
3861
+ news: {
3862
+ ":id": {
3863
+ pin: {
3864
+ post: {
3865
+ body: {
3866
+ sortOrder?: number | undefined;
3867
+ isPinned: boolean;
3868
+ };
3869
+ params: {
3870
+ id: string;
3871
+ };
3872
+ query: unknown;
3873
+ headers: unknown;
3874
+ response: {
3875
+ 422: {
3876
+ type: "validation";
3877
+ on: string;
3878
+ summary?: string;
3879
+ message?: string;
3880
+ found?: unknown;
3881
+ property?: string;
3882
+ expected?: string;
3883
+ };
3884
+ 401: "Unauthorized";
3885
+ 403: "Forbidden: Admins only";
3886
+ };
3887
+ };
3888
+ };
3889
+ };
3890
+ };
3891
+ } & {
3892
+ news: {
3893
+ ":id": {
3894
+ hot: {
3895
+ post: {
3896
+ body: {
3897
+ isHot: boolean;
3898
+ };
3899
+ params: {
3900
+ id: string;
3901
+ };
3902
+ query: unknown;
3903
+ headers: unknown;
3904
+ response: {
3905
+ 422: {
3906
+ type: "validation";
3907
+ on: string;
3908
+ summary?: string;
3909
+ message?: string;
3910
+ found?: unknown;
3911
+ property?: string;
3912
+ expected?: string;
3913
+ };
3914
+ 401: "Unauthorized";
3915
+ 403: "Forbidden: Admins only";
3916
+ };
3917
+ };
3918
+ };
3919
+ };
3920
+ };
3921
+ } & {
3922
+ news: {
3923
+ stats: {
3924
+ get: {
3925
+ body: unknown;
3926
+ params: {};
3927
+ query: unknown;
3928
+ headers: unknown;
3929
+ response: {
3930
+ 200: {
3931
+ total: number;
3932
+ published: number;
3933
+ pinned: number;
3934
+ requireConfirmation: number;
3935
+ };
3936
+ 401: "Unauthorized";
3937
+ 403: "Forbidden: Admins only";
3938
+ };
3939
+ };
3940
+ };
3941
+ };
3942
+ };
3943
+ } & {
3944
+ admin: {
3945
+ file_storage: {};
3946
+ } & {
3947
+ file_storage: {
3948
+ verify: {
3949
+ post: {
3950
+ body: {
3951
+ verificationNote?: string | undefined;
3952
+ isVerified: boolean;
3953
+ fileId: string;
3954
+ };
3955
+ params: {};
3956
+ query: unknown;
3957
+ headers: unknown;
3958
+ response: {
3959
+ 422: {
3960
+ type: "validation";
3961
+ on: string;
3962
+ summary?: string;
3963
+ message?: string;
3964
+ found?: unknown;
3965
+ property?: string;
3966
+ expected?: string;
3967
+ };
3968
+ 401: "Unauthorized";
3969
+ 403: "Forbidden: Admins only";
3970
+ };
3971
+ };
3972
+ };
3973
+ };
3974
+ } & {
3975
+ file_storage: {
3976
+ get: {
3977
+ body: unknown;
3978
+ params: {};
3979
+ query: {
3980
+ businessType?: "other" | "kyc_document" | "contract" | "financial_report" | "wallet_import" | "avatar" | "cover_image" | "notification_attachment" | "transaction_receipt" | "export_report" | "bank_verification" | "news_attachment" | undefined;
3981
+ businessId?: string | undefined;
3982
+ accessControl?: "private" | "restricted" | "public" | null | undefined;
3983
+ status?: "uploading" | "active" | "archived" | "pending_deletion" | null | undefined;
3984
+ isVerified?: boolean | undefined;
3985
+ limit?: number | undefined;
3986
+ offset?: number | undefined;
3987
+ pageSize?: number | undefined;
3988
+ pageIndex?: number | undefined;
3989
+ };
3990
+ headers: unknown;
3991
+ response: {
3992
+ 200: {
3993
+ data: {
3994
+ owner?: {
3995
+ email: string;
3996
+ id: string;
3997
+ name: string | null;
3998
+ } | undefined;
3999
+ verifier?: {
4000
+ id: string;
4001
+ name: string | null;
4002
+ } | null | undefined;
4003
+ id: string;
4004
+ createdAt: Date;
4005
+ updatedAt: Date;
4006
+ deletedAt: Date | null;
4007
+ fileName: string | null;
4008
+ fileSize: number | null;
4009
+ mimeType: string | null;
4010
+ fileExtension: string | null;
4011
+ fileHash: string | null;
4012
+ s3Bucket: string;
4013
+ s3Key: string;
4014
+ s3Region: string;
4015
+ s3ETag: string | null;
4016
+ businessType: "other" | "kyc_document" | "contract" | "financial_report" | "wallet_import" | "avatar" | "cover_image" | "notification_attachment" | "transaction_receipt" | "export_report" | "bank_verification" | "news_attachment";
4017
+ businessId: string | null;
4018
+ businessMetadata: string | null;
4019
+ ownerId: string;
4020
+ accessControl: "private" | "restricted" | "public" | null;
4021
+ status: "uploading" | "active" | "archived" | "pending_deletion" | null;
4022
+ publicUrl: string | null;
4023
+ thumbnailUrl: string | null;
4024
+ archivedAt: Date | null;
4025
+ uploadCompletedAt: Date | null;
4026
+ uploadIpAddress: string | null;
4027
+ downloadCount: number | null;
4028
+ lastDownloadedAt: Date | null;
4029
+ isVerified: boolean | null;
4030
+ verifiedBy: string | null;
4031
+ verifiedAt: Date | null;
4032
+ verificationNote: string | null;
4033
+ }[];
4034
+ pagination: {
4035
+ total: number;
4036
+ pageSize: number;
4037
+ pageIndex: number;
4038
+ totalPages: number;
4039
+ hasNextPage: boolean;
4040
+ };
4041
+ };
4042
+ 422: {
4043
+ type: "validation";
4044
+ on: string;
4045
+ summary?: string;
4046
+ message?: string;
4047
+ found?: unknown;
4048
+ property?: string;
4049
+ expected?: string;
4050
+ };
4051
+ 401: "Unauthorized";
4052
+ 403: "Forbidden: Admins only";
4053
+ };
4054
+ };
4055
+ };
4056
+ } & {
4057
+ file_storage: {
4058
+ ":id": {
4059
+ permanent: {
4060
+ delete: {
4061
+ body: unknown;
4062
+ params: {
4063
+ id: string;
4064
+ };
4065
+ query: unknown;
4066
+ headers: unknown;
4067
+ response: {
4068
+ 200: {
4069
+ success: boolean;
4070
+ };
4071
+ 422: {
4072
+ type: "validation";
4073
+ on: string;
4074
+ summary?: string;
4075
+ message?: string;
4076
+ found?: unknown;
4077
+ property?: string;
4078
+ expected?: string;
4079
+ };
4080
+ 401: "Unauthorized";
4081
+ 403: "Forbidden: Admins only";
4082
+ };
4083
+ };
4084
+ };
4085
+ };
4086
+ };
4087
+ };
4088
+ } & {
4089
+ admin: {
4090
+ kyc: {};
4091
+ } & {
4092
+ kyc: {
4093
+ methods: {
4094
+ get: {
4095
+ body: unknown;
4096
+ params: {};
4097
+ query: {
4098
+ userId?: string | undefined;
4099
+ status?: "unverified" | "pending" | "approved" | "rejected" | undefined;
4100
+ method?: "passport" | "id_card" | "selfie" | "utility_bill" | undefined;
4101
+ limit?: number | undefined;
4102
+ offset?: number | undefined;
4103
+ pageSize?: number | undefined;
4104
+ pageIndex?: number | undefined;
4105
+ };
4106
+ headers: unknown;
4107
+ response: {
4108
+ 200: {
4109
+ data: {
4110
+ id: string;
4111
+ createdAt: Date;
4112
+ updatedAt: Date;
4113
+ userId: string;
4114
+ deletedAt: Date | null;
4115
+ status: "unverified" | "pending" | "approved" | "rejected";
4116
+ method: "passport" | "id_card" | "selfie" | "utility_bill";
4117
+ documentName: string | null;
4118
+ documentNumber: string | null;
4119
+ fileId1: string | null;
4120
+ fileId2: string | null;
4121
+ fileId3: string | null;
4122
+ fileId4: string | null;
4123
+ submittedAt: Date | null;
4124
+ reviewedAt: Date | null;
4125
+ reviewedBy: string | null;
4126
+ rejectionReason: string | null;
4127
+ }[];
4128
+ pagination: {
4129
+ total: number;
4130
+ pageSize: number;
4131
+ pageIndex: number;
4132
+ totalPages: number;
4133
+ hasNextPage: boolean;
4134
+ };
4135
+ };
4136
+ 422: {
4137
+ type: "validation";
4138
+ on: string;
4139
+ summary?: string;
4140
+ message?: string;
4141
+ found?: unknown;
4142
+ property?: string;
4143
+ expected?: string;
4144
+ };
4145
+ 401: "Unauthorized";
4146
+ 403: "Forbidden: Admins only";
4147
+ };
4148
+ };
4149
+ };
4150
+ };
4151
+ } & {
4152
+ kyc: {
4153
+ methods: {
4154
+ ":id": {
4155
+ get: {
4156
+ body: unknown;
4157
+ params: {
4158
+ id: string;
4159
+ };
4160
+ query: unknown;
4161
+ headers: unknown;
4162
+ response: {
4163
+ 200: {
4164
+ id: string;
4165
+ createdAt: Date;
4166
+ updatedAt: Date;
4167
+ userId: string;
4168
+ deletedAt: Date | null;
4169
+ status: "unverified" | "pending" | "approved" | "rejected";
4170
+ method: "passport" | "id_card" | "selfie" | "utility_bill";
4171
+ documentName: string | null;
4172
+ documentNumber: string | null;
4173
+ fileId1: string | null;
4174
+ fileId2: string | null;
4175
+ fileId3: string | null;
4176
+ fileId4: string | null;
4177
+ submittedAt: Date | null;
4178
+ reviewedAt: Date | null;
4179
+ reviewedBy: string | null;
4180
+ rejectionReason: string | null;
4181
+ };
4182
+ 422: {
4183
+ type: "validation";
4184
+ on: string;
4185
+ summary?: string;
4186
+ message?: string;
4187
+ found?: unknown;
4188
+ property?: string;
4189
+ expected?: string;
4190
+ };
4191
+ 401: "Unauthorized";
4192
+ 403: "Forbidden: Admins only";
4193
+ };
4194
+ };
4195
+ };
4196
+ };
4197
+ };
4198
+ } & {
4199
+ kyc: {
4200
+ methods: {
4201
+ ":id": {
4202
+ approve: {
4203
+ post: {
4204
+ body: {
4205
+ reviewNote?: string | undefined;
4206
+ };
4207
+ params: {
4208
+ id: string;
4209
+ };
4210
+ query: unknown;
4211
+ headers: unknown;
4212
+ response: {
4213
+ 200: {
4214
+ id: string;
4215
+ createdAt: Date;
4216
+ updatedAt: Date;
4217
+ userId: string;
4218
+ deletedAt: Date | null;
4219
+ status: "unverified" | "pending" | "approved" | "rejected";
4220
+ method: "passport" | "id_card" | "selfie" | "utility_bill";
4221
+ documentName: string | null;
4222
+ documentNumber: string | null;
4223
+ fileId1: string | null;
4224
+ fileId2: string | null;
4225
+ fileId3: string | null;
4226
+ fileId4: string | null;
4227
+ submittedAt: Date | null;
4228
+ reviewedAt: Date | null;
4229
+ reviewedBy: string | null;
4230
+ rejectionReason: string | null;
4231
+ };
4232
+ 422: {
4233
+ type: "validation";
4234
+ on: string;
4235
+ summary?: string;
4236
+ message?: string;
4237
+ found?: unknown;
4238
+ property?: string;
4239
+ expected?: string;
4240
+ };
4241
+ 401: "Unauthorized";
4242
+ 403: "Forbidden: Admins only";
4243
+ };
4244
+ };
4245
+ };
4246
+ };
4247
+ };
4248
+ };
4249
+ } & {
4250
+ kyc: {
4251
+ methods: {
4252
+ ":id": {
4253
+ reject: {
4254
+ post: {
4255
+ body: {
4256
+ rejectionReason: string;
4257
+ };
4258
+ params: {
4259
+ id: string;
4260
+ };
4261
+ query: unknown;
4262
+ headers: unknown;
4263
+ response: {
4264
+ 200: {
4265
+ id: string;
4266
+ createdAt: Date;
4267
+ updatedAt: Date;
4268
+ userId: string;
4269
+ deletedAt: Date | null;
4270
+ status: "unverified" | "pending" | "approved" | "rejected";
4271
+ method: "passport" | "id_card" | "selfie" | "utility_bill";
4272
+ documentName: string | null;
4273
+ documentNumber: string | null;
4274
+ fileId1: string | null;
4275
+ fileId2: string | null;
4276
+ fileId3: string | null;
4277
+ fileId4: string | null;
4278
+ submittedAt: Date | null;
4279
+ reviewedAt: Date | null;
4280
+ reviewedBy: string | null;
4281
+ rejectionReason: string | null;
4282
+ };
4283
+ 422: {
4284
+ type: "validation";
4285
+ on: string;
4286
+ summary?: string;
4287
+ message?: string;
4288
+ found?: unknown;
4289
+ property?: string;
4290
+ expected?: string;
4291
+ };
4292
+ 401: "Unauthorized";
4293
+ 403: "Forbidden: Admins only";
4294
+ };
4295
+ };
4296
+ };
4297
+ };
4298
+ };
4299
+ };
4300
+ };
4301
+ } & {
4302
+ admin: {
4303
+ user_security: {};
4304
+ } & {
4305
+ user_security: {
4306
+ ":userId": {
4307
+ "transaction-password": {
4308
+ reset: {
4309
+ post: {
4310
+ body: unknown;
4311
+ params: {
4312
+ userId: string;
4313
+ };
4314
+ query: unknown;
4315
+ headers: unknown;
4316
+ response: {
4317
+ 200: {
4318
+ password: string;
4319
+ };
4320
+ 422: {
4321
+ type: "validation";
4322
+ on: string;
4323
+ summary?: string;
4324
+ message?: string;
4325
+ found?: unknown;
4326
+ property?: string;
4327
+ expected?: string;
4328
+ };
4329
+ 401: "Unauthorized";
4330
+ 403: "Forbidden: Admins only";
4331
+ };
4332
+ };
4333
+ };
4334
+ };
4335
+ };
4336
+ };
4337
+ };
4338
+ } & {
4339
+ admin: {
4340
+ users: {};
4341
+ } & {
4342
+ users: {
4343
+ search: {
4344
+ get: {
4345
+ body: unknown;
4346
+ params: {};
4347
+ query: {
4348
+ keyword: string;
4349
+ };
4350
+ headers: unknown;
4351
+ response: {
4352
+ 200: {
4353
+ data: {
4354
+ email: string;
4355
+ id: string;
4356
+ name: string;
4357
+ emailVerified: boolean;
4358
+ image: string | null;
4359
+ createdAt: Date;
4360
+ updatedAt: Date;
4361
+ twoFactorEnabled: boolean | null;
4362
+ username: string | null;
4363
+ displayUsername: string | null;
4364
+ isAnonymous: boolean | null;
4365
+ phoneNumber: string | null;
4366
+ phoneNumberVerified: boolean | null;
4367
+ role: string | null;
4368
+ banned: boolean | null;
4369
+ banReason: string | null;
4370
+ banExpires: Date | null;
4371
+ }[];
4372
+ pagination: {
4373
+ total: number;
4374
+ pageSize: number;
4375
+ pageIndex: number;
4376
+ totalPages: number;
4377
+ hasNextPage: boolean;
4378
+ };
4379
+ };
4380
+ 422: {
4381
+ type: "validation";
4382
+ on: string;
4383
+ summary?: string;
4384
+ message?: string;
4385
+ found?: unknown;
4386
+ property?: string;
4387
+ expected?: string;
4388
+ };
4389
+ 401: "Unauthorized";
4390
+ 403: "Forbidden: Admins only";
4391
+ };
4392
+ };
4393
+ };
4394
+ };
4395
+ } & {
4396
+ users: {
4397
+ get: {
4398
+ body: unknown;
4399
+ params: {};
4400
+ query: {
4401
+ email?: string | undefined;
4402
+ id?: string | undefined;
4403
+ name?: string | undefined;
4404
+ username?: string | null | undefined;
4405
+ displayUsername?: string | null | undefined;
4406
+ limit?: number | undefined;
4407
+ offset?: number | undefined;
4408
+ pageSize?: number | undefined;
4409
+ pageIndex?: number | undefined;
4410
+ };
4411
+ headers: unknown;
4412
+ response: {
4413
+ 200: {
4414
+ data: {
4415
+ userProfile?: {
4416
+ createdAt: Date;
4417
+ updatedAt: Date;
4418
+ userId: string;
4419
+ gender: "male" | "female" | "other";
4420
+ uid: string;
4421
+ birthday: string | null;
4422
+ country: string | null;
4423
+ city: string | null;
4424
+ language: string | null;
4425
+ timezone: string | null;
4426
+ referralCode: string | null;
4427
+ referredBy: string | null;
4428
+ deletedAt: Date | null;
4429
+ } | undefined;
4430
+ userKycMethod?: {
4431
+ id: string;
4432
+ createdAt: Date;
4433
+ updatedAt: Date;
4434
+ userId: string;
4435
+ deletedAt: Date | null;
4436
+ status: "unverified" | "pending" | "approved" | "rejected";
4437
+ method: "passport" | "id_card" | "selfie" | "utility_bill";
4438
+ documentName: string | null;
4439
+ documentNumber: string | null;
4440
+ fileId1: string | null;
4441
+ fileId2: string | null;
4442
+ fileId3: string | null;
4443
+ fileId4: string | null;
4444
+ submittedAt: Date | null;
4445
+ reviewedAt: Date | null;
4446
+ reviewedBy: string | null;
4447
+ rejectionReason: string | null;
4448
+ } | undefined;
4449
+ email: string;
4450
+ id: string;
4451
+ name: string;
4452
+ emailVerified: boolean;
4453
+ image: string | null;
4454
+ createdAt: Date;
4455
+ updatedAt: Date;
4456
+ twoFactorEnabled: boolean | null;
4457
+ username: string | null;
4458
+ displayUsername: string | null;
4459
+ isAnonymous: boolean | null;
4460
+ phoneNumber: string | null;
4461
+ phoneNumberVerified: boolean | null;
4462
+ role: string | null;
4463
+ banned: boolean | null;
4464
+ banReason: string | null;
4465
+ banExpires: Date | null;
4466
+ }[];
4467
+ pagination: {
4468
+ total: number;
4469
+ pageSize: number;
4470
+ pageIndex: number;
4471
+ totalPages: number;
4472
+ hasNextPage: boolean;
4473
+ };
4474
+ };
4475
+ 422: {
4476
+ type: "validation";
4477
+ on: string;
4478
+ summary?: string;
4479
+ message?: string;
4480
+ found?: unknown;
4481
+ property?: string;
4482
+ expected?: string;
4483
+ };
4484
+ 401: "Unauthorized";
4485
+ 403: "Forbidden: Admins only";
4486
+ };
4487
+ };
4488
+ };
4489
+ } & {
4490
+ users: {
4491
+ ":userId": {
4492
+ profile: {
4493
+ get: {
4494
+ body: unknown;
4495
+ params: {
4496
+ userId: string;
4497
+ };
4498
+ query: unknown;
4499
+ headers: unknown;
4500
+ response: {
4501
+ 200: {
4502
+ userProfile?: {
4503
+ createdAt: Date;
4504
+ updatedAt: Date;
4505
+ userId: string;
4506
+ gender: "male" | "female" | "other";
4507
+ uid: string;
4508
+ birthday: string | null;
4509
+ country: string | null;
4510
+ city: string | null;
4511
+ language: string | null;
4512
+ timezone: string | null;
4513
+ referralCode: string | null;
4514
+ referredBy: string | null;
4515
+ deletedAt: Date | null;
4516
+ } | undefined;
4517
+ userKycMethod?: {
4518
+ id: string;
4519
+ createdAt: Date;
4520
+ updatedAt: Date;
4521
+ userId: string;
4522
+ deletedAt: Date | null;
4523
+ status: "unverified" | "pending" | "approved" | "rejected";
4524
+ method: "passport" | "id_card" | "selfie" | "utility_bill";
4525
+ documentName: string | null;
4526
+ documentNumber: string | null;
4527
+ fileId1: string | null;
4528
+ fileId2: string | null;
4529
+ fileId3: string | null;
4530
+ fileId4: string | null;
4531
+ submittedAt: Date | null;
4532
+ reviewedAt: Date | null;
4533
+ reviewedBy: string | null;
4534
+ rejectionReason: string | null;
4535
+ } | undefined;
4536
+ email: string;
4537
+ id: string;
4538
+ name: string;
4539
+ emailVerified: boolean;
4540
+ image: string | null;
4541
+ createdAt: Date;
4542
+ updatedAt: Date;
4543
+ twoFactorEnabled: boolean | null;
4544
+ username: string | null;
4545
+ displayUsername: string | null;
4546
+ isAnonymous: boolean | null;
4547
+ phoneNumber: string | null;
4548
+ phoneNumberVerified: boolean | null;
4549
+ role: string | null;
4550
+ banned: boolean | null;
4551
+ banReason: string | null;
4552
+ banExpires: Date | null;
4553
+ };
4554
+ 422: {
4555
+ type: "validation";
4556
+ on: string;
4557
+ summary?: string;
4558
+ message?: string;
4559
+ found?: unknown;
4560
+ property?: string;
4561
+ expected?: string;
4562
+ };
4563
+ 401: "Unauthorized";
4564
+ 403: "Forbidden: Admins only";
4565
+ };
4566
+ };
4567
+ };
4568
+ };
4569
+ };
4570
+ } & {
4571
+ users: {
4572
+ ":userId": {
4573
+ profile: {
4574
+ put: {
4575
+ body: {
4576
+ email?: string | undefined;
4577
+ name?: string | undefined;
4578
+ emailVerified?: boolean | undefined;
4579
+ image?: string | null | undefined;
4580
+ twoFactorEnabled?: boolean | null | undefined;
4581
+ username?: string | null | undefined;
4582
+ displayUsername?: string | null | undefined;
4583
+ isAnonymous?: boolean | null | undefined;
4584
+ phoneNumber?: string | null | undefined;
4585
+ phoneNumberVerified?: boolean | null | undefined;
4586
+ role?: string | null | undefined;
4587
+ banned?: boolean | null | undefined;
4588
+ banReason?: string | null | undefined;
4589
+ banExpires?: Date | null | undefined;
4590
+ profile: {
4591
+ gender?: "male" | "female" | "other" | undefined;
4592
+ birthday?: string | null | undefined;
4593
+ country?: string | null | undefined;
4594
+ city?: string | null | undefined;
4595
+ language?: string | null | undefined;
4596
+ timezone?: string | null | undefined;
4597
+ referredBy?: string | null | undefined;
4598
+ };
4599
+ };
4600
+ params: {
4601
+ userId: string;
4602
+ };
4603
+ query: unknown;
4604
+ headers: unknown;
4605
+ response: {
4606
+ 200: {
4607
+ userProfile?: {
4608
+ createdAt: Date;
4609
+ updatedAt: Date;
4610
+ userId: string;
4611
+ gender: "male" | "female" | "other";
4612
+ uid: string;
4613
+ birthday: string | null;
4614
+ country: string | null;
4615
+ city: string | null;
4616
+ language: string | null;
4617
+ timezone: string | null;
4618
+ referralCode: string | null;
4619
+ referredBy: string | null;
4620
+ deletedAt: Date | null;
4621
+ } | undefined;
4622
+ userKycMethod?: {
4623
+ id: string;
4624
+ createdAt: Date;
4625
+ updatedAt: Date;
4626
+ userId: string;
4627
+ deletedAt: Date | null;
4628
+ status: "unverified" | "pending" | "approved" | "rejected";
4629
+ method: "passport" | "id_card" | "selfie" | "utility_bill";
4630
+ documentName: string | null;
4631
+ documentNumber: string | null;
4632
+ fileId1: string | null;
4633
+ fileId2: string | null;
4634
+ fileId3: string | null;
4635
+ fileId4: string | null;
4636
+ submittedAt: Date | null;
4637
+ reviewedAt: Date | null;
4638
+ reviewedBy: string | null;
4639
+ rejectionReason: string | null;
4640
+ } | undefined;
4641
+ email: string;
4642
+ id: string;
4643
+ name: string;
4644
+ emailVerified: boolean;
4645
+ image: string | null;
4646
+ createdAt: Date;
4647
+ updatedAt: Date;
4648
+ twoFactorEnabled: boolean | null;
4649
+ username: string | null;
4650
+ displayUsername: string | null;
4651
+ isAnonymous: boolean | null;
4652
+ phoneNumber: string | null;
4653
+ phoneNumberVerified: boolean | null;
4654
+ role: string | null;
4655
+ banned: boolean | null;
4656
+ banReason: string | null;
4657
+ banExpires: Date | null;
4658
+ };
4659
+ 422: {
4660
+ type: "validation";
4661
+ on: string;
4662
+ summary?: string;
4663
+ message?: string;
4664
+ found?: unknown;
4665
+ property?: string;
4666
+ expected?: string;
4667
+ };
4668
+ 401: "Unauthorized";
4669
+ 403: "Forbidden: Admins only";
4670
+ };
4671
+ };
4672
+ };
4673
+ };
4674
+ };
4675
+ } & {
4676
+ users: {
4677
+ ":userId": {
4678
+ password: {
4679
+ reset: {
4680
+ post: {
4681
+ body: unknown;
4682
+ params: {
4683
+ userId: string;
4684
+ };
4685
+ query: unknown;
4686
+ headers: unknown;
4687
+ response: {
4688
+ 200: {
4689
+ password: string;
4690
+ };
4691
+ 422: {
4692
+ type: "validation";
4693
+ on: string;
4694
+ summary?: string;
4695
+ message?: string;
4696
+ found?: unknown;
4697
+ property?: string;
4698
+ expected?: string;
4699
+ };
4700
+ 401: "Unauthorized";
4701
+ 403: "Forbidden: Admins only";
4702
+ };
4703
+ };
4704
+ };
4705
+ };
4706
+ };
4707
+ };
4708
+ };
4709
+ }, {
4710
+ derive: {};
4711
+ resolve: {};
4712
+ schema: {};
4713
+ standaloneSchema: {};
4714
+ response: {};
4715
+ }, {
4716
+ derive: {};
4717
+ resolve: {
4718
+ user: {
4719
+ id: string;
4720
+ createdAt: Date;
4721
+ updatedAt: Date;
4722
+ email: string;
4723
+ emailVerified: boolean;
4724
+ name: string;
4725
+ image?: string | null | undefined | undefined;
4726
+ phoneNumber?: string | null | undefined;
4727
+ phoneNumberVerified?: boolean | null | undefined;
4728
+ twoFactorEnabled: boolean | null | undefined;
4729
+ username?: string | null | undefined;
4730
+ displayUsername?: string | null | undefined;
4731
+ banned: boolean | null | undefined;
4732
+ role?: string | null | undefined;
4733
+ banReason?: string | null | undefined;
4734
+ banExpires?: Date | null | undefined;
4735
+ };
4736
+ session: {
4737
+ id: string;
4738
+ createdAt: Date;
4739
+ updatedAt: Date;
4740
+ userId: string;
4741
+ expiresAt: Date;
4742
+ token: string;
4743
+ ipAddress?: string | null | undefined | undefined;
4744
+ userAgent?: string | null | undefined | undefined;
4745
+ impersonatedBy?: string | null | undefined;
4746
+ };
4747
+ } & {
4748
+ user: {
4749
+ id: string;
4750
+ createdAt: Date;
4751
+ updatedAt: Date;
4752
+ email: string;
4753
+ emailVerified: boolean;
4754
+ name: string;
4755
+ image?: string | null | undefined | undefined;
4756
+ phoneNumber?: string | null | undefined;
4757
+ phoneNumberVerified?: boolean | null | undefined;
4758
+ twoFactorEnabled: boolean | null | undefined;
4759
+ username?: string | null | undefined;
4760
+ displayUsername?: string | null | undefined;
4761
+ banned: boolean | null | undefined;
4762
+ role?: string | null | undefined;
4763
+ banReason?: string | null | undefined;
4764
+ banExpires?: Date | null | undefined;
4765
+ };
4766
+ session: {
4767
+ id: string;
4768
+ createdAt: Date;
4769
+ updatedAt: Date;
4770
+ userId: string;
4771
+ expiresAt: Date;
4772
+ token: string;
4773
+ ipAddress?: string | null | undefined | undefined;
4774
+ userAgent?: string | null | undefined | undefined;
4775
+ impersonatedBy?: string | null | undefined;
4776
+ };
4777
+ };
4778
+ schema: {};
4779
+ standaloneSchema: {};
4780
+ response: {
4781
+ 401: "Unauthorized";
4782
+ } & {
4783
+ 401: "Unauthorized";
4784
+ } & {
4785
+ 403: "Forbidden: Admins only";
4786
+ };
4787
+ } & {
4788
+ derive: {};
4789
+ resolve: {};
4790
+ schema: {};
4791
+ standaloneSchema: {};
4792
+ response: {};
4793
+ }>;