返回 AiToEarn
progress.types.ts
根目录 / project / aitoearn-web / src / store / plugin / types / progress.types.ts
1 /**
2 * 进度事件类型定义
3 */
4
5 /**
6 * 发布阶段
7 */
8 export type PublishStage = 'download' | 'upload' | 'publish' | 'complete' | 'error'
9
10 /**
11 * 进度事件
12 */
13 export interface ProgressEvent {
14 /** 当前阶段 */
15 stage: PublishStage
16
17 /** 进度百分比 (0-100) */
18 progress: number
19
20 /** 进度消息 */
21 message?: string
22
23 /** 请求ID(用于区分不同的发布任务) */
24 requestId?: string
25
26 /** 附加数据 */
27 data?: any
28
29 /** 时间戳 */
30 timestamp?: number
31 }
32
33 /**
34 * 下载进度事件
35 */
36 export interface DownloadProgressEvent extends ProgressEvent {
37 stage: 'download'
38 data?: {
39 /** 已下载字节数 */
40 loaded: number
41 /** 总字节数 */
42 total: number
43 /** 下载速度 (bytes/s) */
44 speed?: number
45 }
46 }
47
48 /**
49 * 上传进度事件
50 */
51 export interface UploadProgressEvent extends ProgressEvent {
52 stage: 'upload'
53 data?: {
54 /** 已上传字节数 */
55 loaded: number
56 /** 总字节数 */
57 total: number
58 /** 当前分片索引 */
59 chunkIndex?: number
60 /** 总分片数 */
61 totalChunks?: number
62 }
63 }
64
65 /**
66 * 发布进度事件
67 */
68 export interface PublishProgressEvent extends ProgressEvent {
69 stage: 'publish'
70 data?: {
71 /** 发布步骤 */
72 step: 'preparing' | 'signing' | 'submitting' | 'verifying'
73 }
74 }
75
76 /**
77 * 完成事件
78 */
79 export interface CompleteEvent extends ProgressEvent {
80 stage: 'complete'
81 data?: {
82 /** 作品ID */
83 workId: string
84 /** 分享链接 */
85 shareLink?: string
86 }
87 }
88
89 /**
90 * 错误事件
91 */
92 export interface ErrorEvent extends ProgressEvent {
93 stage: 'error'
94 data?: {
95 /** 错误代码 */
96 code?: string
97 /** 错误详情 */
98 error: Error
99 }
100 }
101
101 lines TYPESCRIPT