zcw-shared 2.26.0 → 2.29.1

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 (171) hide show
  1. package/dist/constants/agentAvatar3d.d.ts +15 -0
  2. package/dist/constants/agentAvatar3d.js +64 -0
  3. package/dist/constants/agentAvatar3d.js.map +1 -0
  4. package/dist/constants/agentAvatar3dModular.d.ts +34 -0
  5. package/dist/constants/agentAvatar3dModular.js +93 -0
  6. package/dist/constants/agentAvatar3dModular.js.map +1 -0
  7. package/dist/constants/agentPresence3dLabels.d.ts +11 -0
  8. package/dist/constants/agentPresence3dLabels.js +12 -0
  9. package/dist/constants/agentPresence3dLabels.js.map +1 -0
  10. package/dist/constants/aiApiRoutes.d.ts +8 -0
  11. package/dist/constants/aiApiRoutes.js +23 -0
  12. package/dist/constants/aiApiRoutes.js.map +1 -0
  13. package/dist/functions/ai/agentAvatar3dArkitMorph.d.ts +14 -0
  14. package/dist/functions/ai/agentAvatar3dArkitMorph.js +149 -0
  15. package/dist/functions/ai/agentAvatar3dArkitMorph.js.map +1 -0
  16. package/dist/functions/ai/agentAvatar3dCapabilities.d.ts +44 -0
  17. package/dist/functions/ai/agentAvatar3dCapabilities.js +121 -0
  18. package/dist/functions/ai/agentAvatar3dCapabilities.js.map +1 -0
  19. package/dist/functions/ai/agentAvatar3dFacePresets.d.ts +13 -0
  20. package/dist/functions/ai/agentAvatar3dFacePresets.js +79 -0
  21. package/dist/functions/ai/agentAvatar3dFacePresets.js.map +1 -0
  22. package/dist/functions/ai/agentAvatar3dMaterialTint.d.ts +7 -0
  23. package/dist/functions/ai/agentAvatar3dMaterialTint.js +45 -0
  24. package/dist/functions/ai/agentAvatar3dMaterialTint.js.map +1 -0
  25. package/dist/functions/ai/agentAvatar3dMorphCatalog.d.ts +18 -0
  26. package/dist/functions/ai/agentAvatar3dMorphCatalog.js +222 -0
  27. package/dist/functions/ai/agentAvatar3dMorphCatalog.js.map +1 -0
  28. package/dist/functions/ai/aiAgentConsumerDto.d.ts +26 -0
  29. package/dist/functions/ai/aiAgentConsumerDto.js +33 -0
  30. package/dist/functions/ai/aiAgentConsumerDto.js.map +1 -0
  31. package/dist/functions/ai/applyAiAgentAvatar3dFace.d.ts +23 -0
  32. package/dist/functions/ai/applyAiAgentAvatar3dFace.js +140 -0
  33. package/dist/functions/ai/applyAiAgentAvatar3dFace.js.map +1 -0
  34. package/dist/functions/ai/getEffectiveAvatar3dMorphWeights.d.ts +3 -0
  35. package/dist/functions/ai/getEffectiveAvatar3dMorphWeights.js +28 -0
  36. package/dist/functions/ai/getEffectiveAvatar3dMorphWeights.js.map +1 -0
  37. package/dist/functions/ai/normalizeAiAgentAvatar3d.d.ts +4 -0
  38. package/dist/functions/ai/normalizeAiAgentAvatar3d.js +57 -0
  39. package/dist/functions/ai/normalizeAiAgentAvatar3d.js.map +1 -0
  40. package/dist/functions/ai/normalizeAiAgentAvatar3dFace.d.ts +4 -0
  41. package/dist/functions/ai/normalizeAiAgentAvatar3dFace.js +84 -0
  42. package/dist/functions/ai/normalizeAiAgentAvatar3dFace.js.map +1 -0
  43. package/dist/functions/ai/normalizeAiAgentAvatar3dModular.d.ts +14 -0
  44. package/dist/functions/ai/normalizeAiAgentAvatar3dModular.js +92 -0
  45. package/dist/functions/ai/normalizeAiAgentAvatar3dModular.js.map +1 -0
  46. package/dist/functions/ai/proceduralHumanoidMorph.d.ts +5 -0
  47. package/dist/functions/ai/proceduralHumanoidMorph.js +9 -0
  48. package/dist/functions/ai/proceduralHumanoidMorph.js.map +1 -0
  49. package/dist/functions/ai/randomizeAgentAvatar3dAppearance.d.ts +9 -0
  50. package/dist/functions/ai/randomizeAgentAvatar3dAppearance.js +108 -0
  51. package/dist/functions/ai/randomizeAgentAvatar3dAppearance.js.map +1 -0
  52. package/dist/functions/ai/randomizeModularAvatar3dAppearance.d.ts +7 -0
  53. package/dist/functions/ai/randomizeModularAvatar3dAppearance.js +60 -0
  54. package/dist/functions/ai/randomizeModularAvatar3dAppearance.js.map +1 -0
  55. package/dist/functions/ai/resolveAvatar3dModular.d.ts +4 -0
  56. package/dist/functions/ai/resolveAvatar3dModular.js +22 -0
  57. package/dist/functions/ai/resolveAvatar3dModular.js.map +1 -0
  58. package/dist/functions/ai/toAiAgentCatalogRow.d.ts +12 -0
  59. package/dist/functions/ai/toAiAgentCatalogRow.js +13 -0
  60. package/dist/functions/ai/toAiAgentCatalogRow.js.map +1 -0
  61. package/dist/functions/ai/toAiAgentTaskRunForConsumer.d.ts +10 -0
  62. package/dist/functions/ai/toAiAgentTaskRunForConsumer.js +12 -0
  63. package/dist/functions/ai/toAiAgentTaskRunForConsumer.js.map +1 -0
  64. package/dist/functions/api/createApiClient.d.ts +1 -6
  65. package/dist/functions/api/createApiClient.js +1 -55
  66. package/dist/functions/api/createApiClient.js.map +1 -1
  67. package/dist/functions/api/createPublicAuthRequest.js +3 -1
  68. package/dist/functions/api/createPublicAuthRequest.js.map +1 -1
  69. package/dist/functions/auth/permissionSatisfies.js +10 -3
  70. package/dist/functions/auth/permissionSatisfies.js.map +1 -1
  71. package/dist/functions/browser/readBrowserHost.d.ts +3 -0
  72. package/dist/functions/browser/readBrowserHost.js +42 -5
  73. package/dist/functions/browser/readBrowserHost.js.map +1 -1
  74. package/dist/functions/browser/readBrowserImageCompressDeps.js +11 -5
  75. package/dist/functions/browser/readBrowserImageCompressDeps.js.map +1 -1
  76. package/dist/functions/browser/readBrowserLassoSelectionEnvironment.js +3 -3
  77. package/dist/functions/browser/readBrowserLassoSelectionEnvironment.js.map +1 -1
  78. package/dist/functions/browser/readBrowserVueHookDeps.js +22 -4
  79. package/dist/functions/browser/readBrowserVueHookDeps.js.map +1 -1
  80. package/dist/functions/chat/chatMorePageConfig.js +8 -0
  81. package/dist/functions/chat/chatMorePageConfig.js.map +1 -1
  82. package/dist/functions/chat/chatShellTabConfig.d.ts +4 -1
  83. package/dist/functions/chat/chatShellTabConfig.js +14 -2
  84. package/dist/functions/chat/chatShellTabConfig.js.map +1 -1
  85. package/dist/functions/chat/createBrowserChatRootFontSizeAccess.js +1 -2
  86. package/dist/functions/chat/createBrowserChatRootFontSizeAccess.js.map +1 -1
  87. package/dist/functions/cloudDisk/buildCloudDiskListTabResult.d.ts +2 -2
  88. package/dist/functions/cloudDisk/extractCloudDiskPrivateFolderData.d.ts +3 -3
  89. package/dist/functions/cloudDisk/extractCloudDiskPrivateFolderData.js.map +1 -1
  90. package/dist/functions/cloudDisk/mapCloudDiskFileToNode.d.ts +2 -2
  91. package/dist/functions/cloudDisk/mapCloudDiskFileToNode.js.map +1 -1
  92. package/dist/functions/cloudDisk/sortCloudDiskNodes.js +4 -4
  93. package/dist/functions/cloudDisk/sortCloudDiskNodes.js.map +1 -1
  94. package/dist/functions/dom/readBrowserDomDeps.js +9 -7
  95. package/dist/functions/dom/readBrowserDomDeps.js.map +1 -1
  96. package/dist/functions/im/forwardBundleItemToChatMessage.js +9 -7
  97. package/dist/functions/im/forwardBundleItemToChatMessage.js.map +1 -1
  98. package/dist/functions/im/imChatMessageCopyPlain.js +2 -2
  99. package/dist/functions/im/imChatMessageCopyPlain.js.map +1 -1
  100. package/dist/functions/im/imComposerToolbar.js +25 -1
  101. package/dist/functions/im/imComposerToolbar.js.map +1 -1
  102. package/dist/functions/im/imForwardBundleTitle.js +2 -2
  103. package/dist/functions/im/imForwardBundleTitle.js.map +1 -1
  104. package/dist/functions/im/imForwardSnapshot.js +2 -2
  105. package/dist/functions/im/imForwardSnapshot.js.map +1 -1
  106. package/dist/functions/im/imMessageNormalize.d.ts +2 -2
  107. package/dist/functions/im/imPlaceholderSnippet.d.ts +1 -1
  108. package/dist/functions/im/imPlaceholderSnippet.js +1 -1
  109. package/dist/functions/im/imPlaceholderSnippet.js.map +1 -1
  110. package/dist/functions/qiankun/bootstrapQiankunDomPatch.d.ts +1 -0
  111. package/dist/functions/qiankun/bootstrapQiankunDomPatch.js +165 -0
  112. package/dist/functions/qiankun/bootstrapQiankunDomPatch.js.map +1 -0
  113. package/dist/functions/qiankun/createQiankunVueApp.d.ts +2 -0
  114. package/dist/functions/qiankun/createQiankunVueApp.js +4 -1
  115. package/dist/functions/qiankun/createQiankunVueApp.js.map +1 -1
  116. package/dist/functions/vue-router/normalizeWebHistoryBase.d.ts +1 -0
  117. package/dist/functions/vue-router/normalizeWebHistoryBase.js +19 -0
  118. package/dist/functions/vue-router/normalizeWebHistoryBase.js.map +1 -0
  119. package/dist/functions/vue-router/pushInAppRoute.d.ts +6 -0
  120. package/dist/functions/vue-router/pushInAppRoute.js +13 -0
  121. package/dist/functions/vue-router/pushInAppRoute.js.map +1 -0
  122. package/dist/permissions/basePermissions.d.ts +4 -0
  123. package/dist/permissions/basePermissions.js +12 -0
  124. package/dist/permissions/basePermissions.js.map +1 -0
  125. package/dist/permissions/catalog.d.ts +3 -0
  126. package/dist/permissions/catalog.js +11 -0
  127. package/dist/permissions/catalog.js.map +1 -1
  128. package/dist/permissions/permissionCatalogForUi.d.ts +2 -0
  129. package/dist/permissions/permissionCatalogForUi.js +12 -0
  130. package/dist/permissions/permissionCatalogForUi.js.map +1 -0
  131. package/dist/schemas/auth.schema.d.ts +11 -358
  132. package/dist/schemas/auth.schema.js +5 -35
  133. package/dist/schemas/auth.schema.js.map +1 -1
  134. package/dist/schemas/video.schema.d.ts +98 -156
  135. package/dist/schemas/video.schema.js +9 -13
  136. package/dist/schemas/video.schema.js.map +1 -1
  137. package/dist/vue-hooks/dom/useLassoSelection.js +4 -3
  138. package/dist/vue-hooks/dom/useLassoSelection.js.map +1 -1
  139. package/package.json +45 -16
  140. package/types/address.d.ts +4 -35
  141. package/types/ai-admin.d.ts +33 -0
  142. package/types/ai-agent.d.ts +43 -0
  143. package/types/ai-chat.d.ts +39 -23
  144. package/types/api-contract-helpers.d.ts +24 -0
  145. package/types/api-contract.d.ts +6 -0
  146. package/types/auth.d.ts +15 -27
  147. package/types/cloud-disk.d.ts +38 -50
  148. package/types/community.d.ts +7 -0
  149. package/types/im-ai-agent.d.ts +2 -1
  150. package/types/im-api.d.ts +12 -8
  151. package/types/im-call.d.ts +4 -3
  152. package/types/im-composer.d.ts +2 -0
  153. package/types/im-remote-assist.d.ts +83 -0
  154. package/types/lowcode.d.ts +10 -47
  155. package/types/music.d.ts +4 -30
  156. package/types/notification.d.ts +4 -34
  157. package/types/openapi.d.ts +25040 -0
  158. package/types/order.d.ts +5 -57
  159. package/types/org.d.ts +13 -0
  160. package/types/oss.d.ts +4 -23
  161. package/types/page-config.d.ts +14 -14
  162. package/types/payment.d.ts +10 -20
  163. package/types/performance.d.ts +4 -11
  164. package/types/product.d.ts +5 -37
  165. package/types/rbac.d.ts +11 -32
  166. package/types/recharge.d.ts +11 -0
  167. package/types/report.d.ts +7 -25
  168. package/types/review.d.ts +11 -13
  169. package/types/sticker-pack.d.ts +10 -25
  170. package/types/user.d.ts +11 -33
  171. package/types/video.d.ts +15 -66
package/types/im-api.d.ts CHANGED
@@ -3,14 +3,13 @@
3
3
  *
4
4
  * - **终端 UI 展示**见 `zcw-shared/types/im-chat`(`ChatMessage` / `ChatConversation`,camelCase、含 sender 对象等),
5
5
  * 与本文件的 `ImApiMessage` 在设计上不同:前者是列表/气泡视图模型,后者是接口契约。
6
+ * - 核心 HTTP 形状以 `ApiSchema['ImApiMessage']` / `ImApiConversation` 为契约来源,此处放宽 `id` 与 `extra_data` 以兼容多存储驱动。
6
7
  */
7
8
 
9
+ import type { ApiSchema } from './api-contract'
10
+
8
11
  /** 出站投递状态(与送达已读 status 分离);库内成功落库行一般为 success */
9
- export type ImOutboundStatus =
10
- | 'queued'
11
- | 'sending'
12
- | 'failed'
13
- | 'success'
12
+ export type ImOutboundStatus = NonNullable<ApiSchema['ImApiMessage']['outbound_status']>
14
13
 
15
14
  /** ImProxy 落库:用户停止或模型/流异常时的助手消息标记 */
16
15
  export interface ImApiAiReplyExtra {
@@ -63,13 +62,16 @@ export interface ImApiMessage {
63
62
  * 智能体中断回复:`extra_data.ai_reply` 见 {@link ImApiAiReplyExtra}。
64
63
  * 智能体回复用量:`extra_data.llm_context` 见 `types/im-llm-context.d.ts` 的 {@link ImLlmContextExtra}。
65
64
  */
66
- extra_data?: Record<string, any>
65
+ extra_data?: any
67
66
  created_at?: string
68
67
  updated_at?: string
69
68
  /** 软删除时刻(ISO);存在时列表接口不应返回该条(服务端过滤) */
70
69
  deleted_at?: string | null
71
70
  }
72
71
 
72
+ /** TypeSpec 契约形状(`id` 为 string;`extra_data` 为 unknown) */
73
+ export type ImApiMessageContract = ApiSchema['ImApiMessage']
74
+
73
75
  /** 会话对象(接口返回;成员 id 列表 + 可选最后一条消息) */
74
76
  export interface ImApiConversation {
75
77
  id: string
@@ -88,6 +90,8 @@ export interface ImApiConversation {
88
90
  updated_at?: string
89
91
  }
90
92
 
93
+ export type ImApiConversationContract = ApiSchema['ImApiConversation']
94
+
91
95
  /** `registerMediaOutbound` 响应:附件 id、已落库消息、OSS 直传目标 */
92
96
  export interface ImRegisterMediaOutboundResult {
93
97
  attachmentId: string
@@ -113,7 +117,7 @@ export interface ImDbMessageRow {
113
117
  client_message_id?: string | null
114
118
  send_retry_count?: number | null
115
119
  outbound_status?: string | null
116
- extra_data?: Record<string, any>
120
+ extra_data?: any
117
121
  created_at?: string
118
122
  updated_at?: string
119
123
  deleted_at?: string | null
@@ -157,7 +161,7 @@ export type ImMessage = ImApiMessage
157
161
  /** 与 `ImApiConversation` 相同 */
158
162
  export type ImConversation = ImApiConversation
159
163
 
160
- /** `ImApiConversation` 相同(历史泛名,建议新代码用 ImApiConversation) */
164
+ /** @deprecated 请使用 {@link ImConversation} */
161
165
  export type Conversation = ImApiConversation
162
166
 
163
167
  export type RegisterMediaOutboundResult = ImRegisterMediaOutboundResult
@@ -1,3 +1,5 @@
1
+ import type { ApiOpData } from './api-contract'
2
+
1
3
  /** IM 实时通话媒体类型(WebRTC,非文件消息) */
2
4
  export type ImCallMedia = 'audio' | 'video'
3
5
 
@@ -39,6 +41,5 @@ export interface ImCallSignalEventPayload extends ImCallSignalPayload {
39
41
  fromUserId: string
40
42
  }
41
43
 
42
- export interface ImCallIceServersResponse {
43
- iceServers: RTCIceServer[]
44
- }
44
+ /** GET /im/call/ice-servers → `ApiEnvelope.data` */
45
+ export type ImCallIceServersData = ApiOpData<'ImCore_callIceServers'>
@@ -20,4 +20,6 @@ export type ImComposerMobileMoreItemSpec = {
20
20
  export type ImComposerToolbarOptions = {
21
21
  /** 双人会话时显示语音/视频通话入口 */
22
22
  showVoiceCall?: boolean
23
+ /** 双人会话时显示远程协助入口 */
24
+ showRemoteAssist?: boolean
23
25
  }
@@ -0,0 +1,83 @@
1
+ /** 远程协助:谁共享屏幕 */
2
+ export type ImRemoteAssistHostRole = 'self' | 'peer'
3
+
4
+ /** WebRTC 信令(与 im-call 一致) */
5
+ export type ImRemoteAssistSignalType = 'offer' | 'answer' | 'ice-candidate'
6
+
7
+ export interface ImRemoteAssistSignalPayload {
8
+ assistId: string
9
+ type: ImRemoteAssistSignalType
10
+ sdp?: RTCSessionDescriptionInit
11
+ candidate?: RTCIceCandidateInit
12
+ }
13
+
14
+ export interface ImRemoteAssistPeerMachine {
15
+ machineId: string
16
+ machineLabel: string | null
17
+ online: boolean
18
+ }
19
+
20
+ export interface ImRemoteAssistPeerMachinesPayload {
21
+ conversationId: string
22
+ peerUserId: string
23
+ machines: ImRemoteAssistPeerMachine[]
24
+ }
25
+
26
+ export interface ImRemoteAssistInviteSentPayload {
27
+ assistId: string
28
+ conversationId: string
29
+ hostRole: ImRemoteAssistHostRole
30
+ hostUserId: string
31
+ targetMachineId?: string
32
+ targetMachineLabel?: string | null
33
+ callerMachineId?: string
34
+ }
35
+
36
+ export interface ImRemoteAssistIncomingPayload {
37
+ assistId: string
38
+ conversationId: string
39
+ hostRole: ImRemoteAssistHostRole
40
+ hostUserId: string
41
+ callerId: string
42
+ /** 指定由对端哪台桌面设备接听(未指定则广播至其全部桌面端) */
43
+ targetMachineId?: string
44
+ targetMachineLabel?: string | null
45
+ }
46
+
47
+ export interface ImRemoteAssistHandledElsewherePayload {
48
+ assistId: string
49
+ machineLabel?: string | null
50
+ }
51
+
52
+ export interface ImRemoteAssistAcceptedPayload {
53
+ assistId: string
54
+ conversationId: string
55
+ hostUserId: string
56
+ }
57
+
58
+ export interface ImRemoteAssistEndedPayload {
59
+ assistId: string
60
+ conversationId?: string
61
+ reason?: 'rejected' | 'cancelled' | 'ended' | 'busy' | 'timeout'
62
+ /** 对端结束时的说明(如屏幕共享失败) */
63
+ message?: string
64
+ }
65
+
66
+ export interface ImRemoteAssistSignalEventPayload extends ImRemoteAssistSignalPayload {
67
+ fromUserId: string
68
+ }
69
+
70
+ /** DataChannel 控制消息(归一化坐标 0–1,相对共享画面) */
71
+ export type ImRemoteAssistControlMessage =
72
+ | { type: 'control-request' }
73
+ | { type: 'control-granted' }
74
+ | { type: 'control-denied'; reason?: 'desktop-required' | 'rejected' }
75
+ | { type: 'control-revoked' }
76
+ /** 共享方 DataChannel 就绪后告知是否支持键鼠注入(仅桌面客户端为 true) */
77
+ | { type: 'host-capability'; canInjectInput: boolean }
78
+ | { type: 'mousemove'; x: number; y: number }
79
+ | { type: 'mousedown'; x: number; y: number; button: number }
80
+ | { type: 'mouseup'; x: number; y: number; button: number }
81
+ | { type: 'wheel'; x: number; y: number; deltaX: number; deltaY: number }
82
+ | { type: 'keydown'; key: string; code: string; ctrlKey?: boolean; shiftKey?: boolean; altKey?: boolean; metaKey?: boolean }
83
+ | { type: 'keyup'; key: string; code: string; ctrlKey?: boolean; shiftKey?: boolean; altKey?: boolean; metaKey?: boolean }
@@ -1,8 +1,4 @@
1
- /** 低代码页面 schema(存库 / 运行时) */
2
- export interface LowcodePageSchema {
3
- version: '1.0'
4
- root: LowcodeNodeSnapshot[]
5
- }
1
+ import type { ApiSchema } from './api-contract'
6
2
 
7
3
  /** 可序列化节点(不含 Vue Component 引用) */
8
4
  export interface LowcodeNodeSnapshot {
@@ -12,50 +8,17 @@ export interface LowcodeNodeSnapshot {
12
8
  children?: LowcodeNodeSnapshot[]
13
9
  }
14
10
 
15
- export interface LowcodeApp {
16
- id: string
17
- app_key: string
18
- name: string
19
- description?: string | null
20
- status: 'active' | 'inactive'
21
- created_at?: string
22
- updated_at?: string
23
- }
24
-
25
- export interface LowcodePage {
26
- id: string
27
- app_id: string
28
- page_key: string
29
- title: string
30
- route_path: string
31
- draft_schema: LowcodePageSchema | Record<string, unknown>
32
- published_schema?: LowcodePageSchema | Record<string, unknown> | null
33
- published_at?: string | null
34
- status: 'active' | 'inactive'
35
- created_at?: string
36
- updated_at?: string
37
- }
38
-
39
- export interface LowcodePageDetail extends LowcodePage {
40
- app_key: string
41
- app_name: string
42
- }
43
-
44
- export interface LowcodeRuntimePage {
45
- app_key: string
46
- page_key: string
47
- title: string
48
- route_path: string
49
- schema: LowcodePageSchema | Record<string, unknown>
50
- published_at?: string | null
11
+ /** 低代码页面 schema(存库 / 运行时) */
12
+ export type LowcodePageSchema = Omit<ApiSchema['LowcodePageSchema'], 'root'> & {
13
+ version: '1.0'
14
+ root: LowcodeNodeSnapshot[]
51
15
  }
52
16
 
53
- export interface LowcodeRuntimePageMeta {
54
- page_key: string
55
- title: string
56
- route_path: string
57
- published_at?: string | null
58
- }
17
+ export type LowcodeApp = ApiSchema['LowcodeApp']
18
+ export type LowcodePage = ApiSchema['LowcodePage']
19
+ export type LowcodePageDetail = ApiSchema['LowcodePageDetail']
20
+ export type LowcodeRuntimePage = ApiSchema['LowcodeRuntimePage']
21
+ export type LowcodeRuntimePageMeta = ApiSchema['LowcodeRuntimePageSummary']
59
22
 
60
23
  export const EMPTY_LOWCODE_PAGE_SCHEMA: LowcodePageSchema = {
61
24
  version: '1.0',
package/types/music.d.ts CHANGED
@@ -1,33 +1,7 @@
1
- export interface MusicTrack {
2
- id: number
3
- title: string
4
- artist: string
5
- cover_url?: string
6
- audio_url?: string
7
- duration?: number
8
- lyrics?: string
9
- tags?: string[]
10
- like_count?: number
11
- comment_count?: number
12
- share_count?: number
13
- play_count?: number
14
- created_at?: string
15
- updated_at?: string
16
- }
1
+ import type { ApiSchema } from './api-contract'
17
2
 
18
- export interface MusicListResponse {
19
- data: MusicTrack[]
20
- total: number
21
- limit: number
22
- offset: number
23
- }
3
+ export type MusicTrack = ApiSchema['MusicTrack']
24
4
 
25
- export interface MusicDetailResponse {
26
- data: MusicTrack
27
- }
5
+ export type CreateMusicPayload = ApiSchema['CreateMusicTrackRequest']
28
6
 
29
- export interface CreateMusicPayload
30
- extends Omit<MusicTrack, 'id' | 'created_at' | 'updated_at'> {}
31
-
32
- export interface UpdateMusicPayload
33
- extends Partial<Omit<MusicTrack, 'id' | 'created_at' | 'updated_at'>> {}
7
+ export type UpdateMusicPayload = ApiSchema['UpdateMusicTrackRequest']
@@ -1,37 +1,7 @@
1
- export type NotificationType =
2
- | 'system'
3
- | 'comment'
4
- | 'reply'
5
- | 'like'
6
- | 'follow'
7
- | 'post'
8
- | 'order'
9
- | 'payment'
1
+ import type { ApiSchema } from './api-contract'
10
2
 
11
- export interface Notification {
12
- id: number
13
- user_id?: string
14
- type?: NotificationType
15
- title?: string
16
- content?: string
17
- status?: string
18
- related_id?: string
19
- related_type?: string
20
- extra_data?: Record<string, unknown>
21
- created_at?: string
22
- updated_at?: string
23
- }
3
+ export type NotificationType = ApiSchema['NotificationSummary']['type']
24
4
 
25
- export interface NotificationListResponse {
26
- data: Notification[]
27
- }
5
+ export type Notification = ApiSchema['NotificationSummary']
28
6
 
29
- export interface CreateNotificationPayload {
30
- user_id: string
31
- type: NotificationType
32
- title: string
33
- content?: string
34
- related_id?: string
35
- related_type?: string
36
- extra_data?: Record<string, unknown>
37
- }
7
+ export type CreateNotificationPayload = ApiSchema['CreateNotificationRequest']