video-flow-b/api/script_project.ts
2025-07-03 06:42:58 +08:00

115 lines
3.0 KiB
TypeScript

import { post } from './request';
import { ApiResponse } from './common';
// 创建剧本项目的数据类型
export interface CreateScriptProjectRequest {
title?: string;
script_author?: string;
characters?: Array<{
name?: string;
desc?: string;
}>;
summary?: string;
project_type?: number;
status?: number;
cate_tags?: string[];
creator_name?: string;
mode?: number;
resolution?: number;
}
// 剧本项目数据类型
export interface ScriptProject {
id: number;
title: string;
script_author: string;
characters: Array<{
name: string;
desc: string;
}>;
summary: string;
project_type: number;
status: number;
cate_tags: string[];
creator_name: string;
updated_at?: string;
created_at?: string;
mode: number;
resolution: number;
}
// 获取剧本项目列表请求数据类型
export interface GetScriptProjectListRequest {
page: number; // 页码 从1开始
per_page: number; // 每页条数 默认10条
sort_by: string; // 排序字段 默认update_time
sort_order: string; // 排序顺序 默认desc
project_type: number; // 项目类型 默认1
}
// 获取剧本项目列表响应数据类型
export interface ScriptProjectList {
total: number;
items: ScriptProject[];
}
// 修改剧本项目请求数据类型
export interface UpdateScriptProjectRequest {
id: number;
title?: string;
script_author?: string;
characters?: Array<{
name?: string;
desc?: string;
}>;
summary?: string;
status?: number;
}
// 删除剧本项目请求数据类型
export interface DeleteScriptProjectRequest {
id: number;
}
// 创建剧本项目
export const createScriptProject = async (data: CreateScriptProjectRequest): Promise<ApiResponse<ScriptProject>> => {
// return post<ApiResponse<ScriptProject>>('/script_project/create', data);
return new Promise((resolve) => {
setTimeout(() => {
resolve({
code: 0,
message: 'success',
data: {
id: 1,
title: '2025·07·03·001',
script_author: 'king',
characters: [],
summary: '',
project_type: 1,
status: 1,
cate_tags: [],
creator_name: 'king',
mode: 1,
resolution: 1,
created_at: '2025-07-03 10:00:00',
updated_at: '2025-07-03 10:00:00'
},
successful: true
});
}, 0);
});
};
// 获取剧本项目列表
export const getScriptProjectList = async (data: GetScriptProjectListRequest): Promise<ApiResponse<ScriptProjectList>> => {
return post<ApiResponse<ScriptProjectList>>('/script_project/page', data);
};
// 修改剧本项目
export const updateScriptProject = async (data: UpdateScriptProjectRequest): Promise<ApiResponse<ScriptProject>> => {
return post<ApiResponse<ScriptProject>>('/script_project/update', data);
};
// 删除剧本项目
export const deleteScriptProject = async (data: DeleteScriptProjectRequest): Promise<ApiResponse<ScriptProject>> => {
return post<ApiResponse<ScriptProject>>('/script_project/delete', data);
};