返回 AiToEarn
event-payload.interface.ts
根目录 / project / aitoearn-backend / libs / redis / src / event-payload.interface.ts
1 import type { AccountType, WorkStatus } from '@yikart/common'
2 import { EventTopic } from './enum/event-topic.enum'
3
4 export interface EventPayloadObject {
5 [key: string]: unknown
6 }
7
8 export type EventDate = Date | string
9
10 export type ChannelsPublishTaskErrorCategory
11 = | 'auth'
12 | 'permission'
13 | 'rate_limit'
14 | 'quota'
15 | 'validation'
16 | 'media_unavailable'
17 | 'media_processing_failed'
18 | 'not_found'
19 | 'conflict'
20 | 'platform_unavailable'
21 | 'timeout'
22 | 'network'
23 | 'webhook_invalid'
24 | 'sdk_error'
25 | 'unknown'
26
27 export interface ChannelsAccountConnectedPayload {
28 userId: string
29 accountId: string
30 platform: AccountType
31 }
32
33 export interface ChannelsAccountOfflinePayload {
34 accountId: string
35 platform: AccountType
36 reason: string
37 }
38
39 export interface ChannelsPublishTaskCreatedPayload {
40 id: string
41 userId: string
42 flowId?: string
43 accountId: string
44 accountType: AccountType
45 }
46
47 export interface ChannelsPublishTaskCompletionPayload {
48 taskId: string
49 publishRecordId?: string
50 userId: string
51 accountId?: string
52 accountType: AccountType
53 uid?: string
54 platformWorkId?: string
55 permalink?: string
56 publishAt?: EventDate
57 dataOption?: EventPayloadObject
58 originalWorkLink?: string
59 workStatus?: WorkStatus
60 dataId?: string
61 workLink?: string
62 flowId?: string
63 materialId?: string
64 source?: string
65 publishedAt?: EventDate
66 linkStatus?: string
67 linkMeta?: EventPayloadObject
68 }
69
70 export interface ChannelsPublishTaskPlatformScheduledPayload {
71 taskId: string
72 platformWorkId: string
73 permalink?: string
74 publishAt?: EventDate
75 dataOption?: EventPayloadObject
76 }
77
78 export interface ChannelsPublishTaskUserActionPayload {
79 schema?: string
80 shortLink?: string
81 expiresAt: EventDate
82 data?: EventPayloadObject
83 }
84
85 export interface ChannelsPublishTaskWaitingForUserActionPayload {
86 taskId: string
87 userAction: ChannelsPublishTaskUserActionPayload
88 platformWorkId?: string
89 permalink?: string
90 dataOption?: EventPayloadObject
91 }
92
93 export interface ChannelsPublishTaskErrorPayload {
94 category: ChannelsPublishTaskErrorCategory
95 code?: string
96 message: string
97 retryable: boolean
98 occurredAt: EventDate
99 }
100
101 export interface ChannelsPublishTaskFailedPayload {
102 taskId: string
103 error: ChannelsPublishTaskErrorPayload
104 }
105
106 export interface ChannelsPublishTaskCanceledPayload {
107 taskId: string
108 reason?: string
109 }
110
111 export interface ChannelsPublishTaskUpdatedPayload {
112 taskId: string
113 }
114
115 export interface EventPayloadMap {
116 [EventTopic.UserCreated]: never
117 [EventTopic.ChannelsPublishTaskPlatformScheduled]: ChannelsPublishTaskPlatformScheduledPayload
118 [EventTopic.ChannelsPublishTaskWaitingForUserAction]: ChannelsPublishTaskWaitingForUserActionPayload
119 [EventTopic.ChannelsPublishTaskPublished]: ChannelsPublishTaskCompletionPayload
120 [EventTopic.ChannelsPublishTaskFailed]: ChannelsPublishTaskFailedPayload
121 [EventTopic.ChannelsPublishTaskCanceled]: ChannelsPublishTaskCanceledPayload
122 [EventTopic.ChannelsPublishTaskUpdateStarted]: never
123 [EventTopic.ChannelsPublishTaskUpdated]: ChannelsPublishTaskUpdatedPayload
124 [EventTopic.ChannelsPublishTaskUpdateFailed]: ChannelsPublishTaskFailedPayload
125 [EventTopic.ChannelsAccountConnected]: ChannelsAccountConnectedPayload
126 [EventTopic.ChannelsAccountUpdated]: never
127 [EventTopic.ChannelsAccountOffline]: ChannelsAccountOfflinePayload
128 [EventTopic.ChannelsCredentialRefreshed]: never
129 [EventTopic.ChannelsCredentialExpired]: never
130 [EventTopic.ChannelsCredentialRevoked]: never
131 [EventTopic.ChannelsCredentialRefreshFailed]: never
132 [EventTopic.ChannelsAuthFailed]: never
133 [EventTopic.ChannelsPublishFlowCreated]: never
134 [EventTopic.ChannelsPublishTaskCreated]: ChannelsPublishTaskCreatedPayload
135 [EventTopic.ChannelsPublishTaskEnqueued]: never
136 [EventTopic.ChannelsPublishTaskStarted]: never
137 [EventTopic.ChannelsPublishTaskFinalizeTimeout]: never
138 [EventTopic.ChannelsAnalyticsAccountFetched]: never
139 [EventTopic.ChannelsAnalyticsWorkFetched]: never
140 [EventTopic.ChannelsAnalyticsFetchFailed]: never
141 [EventTopic.ChannelsEngagementCommentCreated]: never
142 }
143
143 lines TYPESCRIPT