Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 | /**
* 视频发布模块 - 类型定义
*/
/** 平台类型 */
export type PublishPlatform = 'douyin' | 'kuaishou' | 'bilibili';
/** 发布状态 */
export type PublishStatus = 'pending' | 'uploading' | 'success' | 'failed';
/** 平台账号信息 */
export interface PlatformAccount {
id?: number;
userId?: number;
platform: PublishPlatform;
cookies: string; // 登录 Cookie
headers: string; // 关键请求头(User-Agent 等)
nickname?: string; // 账号昵称
avatar?: string; // 账号头像
isValid: boolean; // 凭证是否有效
expireTime?: Date; // 过期时间
createdAt?: Date;
updatedAt?: Date;
}
/** 发布任务 */
export interface PublishTask {
id?: number;
userId?: number;
videoProjectId: number;
videoUrl: string; // 视频文件路径
platform: PublishPlatform;
title: string; // 视频标题
description?: string; // 视频描述
tags?: string[]; // 话题标签
coverUrl?: string; // 封面图
status: PublishStatus;
errorMsg?: string;
publishedUrl?: string; // 发布后获得的链接
createdAt?: Date;
updatedAt?: Date;
}
/** 创建发布任务的请求 */
export interface CreatePublishTaskRequest {
videoProjectId: number;
platform: PublishPlatform;
title: string;
description?: string;
tags?: string[];
coverUrl?: string;
}
/** 抖音上传响应 */
export interface DouyinUploadResponse {
success: boolean;
awemeId?: string; // 抖音作品ID
awemeUrl?: string; // 作品链接
error?: string;
}
/** 抖音登录信息 */
export interface DouyinLoginInfo {
cookies: string;
headers: Record<string, string>;
nickname: string;
avatar: string;
}
/** Prisma 模型扩展类型 */
export type PlatformAccountResponse = PlatformAccount & {
cookies: string;
headers: string;
tags?: string[];
}
export type PublishTaskResponse = PublishTask & {
tags?: string[];
}
|