返回 AiToEarn
publishTask.types.ts
根目录 / project / aitoearn-web / src / store / plugin / types / publishTask.types.ts
1 /**
2 * 发布任务相关类型定义
3 */
4
5 import type { ProgressEvent, PublishParams, PublishResult } from './baseTypes'
6 import type { PlatType } from '@/app/config/platConfig'
7
8 export type PlatformPublishMode = 'auto' | 'task' | 'user_action'
9
10 export type UnifiedPublishParams = Omit<PublishParams, 'platform'> & {
11 platform: PlatType
12 }
13
14 export interface PlatformPublishUserAction {
15 schemeUrl: string
16 shortLink: string
17 expiresAt?: string | Date
18 }
19
20 /**
21 * 平台发布任务状态
22 */
23 export enum PlatformTaskStatus {
24 /** 待发布 */
25 PENDING = 'pending',
26 /** 发布中 */
27 PUBLISHING = 'publishing',
28 /** 已完成 */
29 COMPLETED = 'completed',
30 /** 失败 */
31 ERROR = 'error',
32 /** 已取消 */
33 CANCELED = 'canceled',
34 }
35
36 /**
37 * 单个平台的发布任务
38 */
39 export interface PlatformPublishTask {
40 /** 任务唯一ID(用于精确匹配更新) */
41 id: string
42
43 /** 插件返回的请求ID(用于匹配进度回调) */
44 requestId?: string
45
46 /** 平台类型 */
47 platform: PlatType
48
49 /** 发布方式:自动发布 / 发布任务 / 需你完成 */
50 publishMode?: PlatformPublishMode
51
52 /** 关联的发布记录 ID */
53 publishRecordId?: string
54
55 /** 用户后续操作信息(如抖音 App Scheme 与短链) */
56 userAction?: PlatformPublishUserAction
57
58 /** 账号ID,用于关联账号信息 */
59 accountId?: string
60
61 /** 发布参数 */
62 params: UnifiedPublishParams
63
64 /** 任务状态 */
65 status: PlatformTaskStatus
66
67 /** 进度信息 */
68 progress: ProgressEvent | null
69
70 /** 发布结果 */
71 result: PublishResult | null
72
73 /** 开始时间 */
74 startTime: number | null
75
76 /** 结束时间 */
77 endTime: number | null
78
79 /** 错误信息 */
80 error: string | null
81 }
82
83 /**
84 * 发布任务(包含多个平台)
85 */
86 export interface PublishTask {
87 /** 任务ID */
88 id: string
89
90 /** 任务标题(用于展示) */
91 title: string
92
93 /** 任务描述 */
94 description?: string
95
96 /** 包含的平台任务列表 */
97 platformTasks: PlatformPublishTask[]
98
99 /** 创建时间 */
100 createdAt: number
101
102 /** 更新时间 */
103 updatedAt: number
104
105 /** 整体任务状态 */
106 overallStatus: PlatformTaskStatus
107 }
108
109 /**
110 * 发布任务列表配置
111 */
112 export interface PublishTaskListConfig {
113 /** 最大保存任务数 */
114 maxTasks?: number
115
116 /** 是否自动清理已完成任务 */
117 autoCleanCompleted?: boolean
118
119 /** 自动清理的时间(毫秒,默认24小时) */
120 cleanAfter?: number
121 }
122
122 lines TYPESCRIPT