video-flow-b/api/movie_start.ts
2025-08-25 17:29:00 +08:00

113 lines
2.6 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { ApiResponse } from "./common";
import {
CreateMovieProjectV2Request,
CreateMovieProjectResponse,
MovieStartDTO,
StoryAnalysisTask,
MovieStoryTaskDetail,
CreateMovieProjectV3Request,
GeminiTextToImageRequest,
GeminiTextToImageResponse,
TextToImageRequest,
TextToImageResponse,
} from "./DTO/movie_start_dto";
import { get, post } from "./request";
import {
StoryTemplateEntity,
} from "@/app/service/domain/Entities";
/**
* 获取故事模板列表
*/
export const getTemplateStoryList = async (page?: number, per_page?: number) => {
return await post<ApiResponse<{
total: number;
items: StoryTemplateEntity[];
page: number;
per_page: number;
}>>("/movie_template/story-template-list",{
page,
per_page,
});
};
/**
* AI分析图片生成分析结果
*/
export const AIGenerateImageStory = async (request: {
image_url: string;
user_text: string;
}) => {
return await post<ApiResponse<StoryAnalysisTask>>(
"/movie_story/generate",
request
);
};
/**
* 创建电影项目V2
* @param request - 创建项目请求参数
* @returns Promise<ApiResponse<CreateMovieProjectResponse>>
*/
export const createMovieProjectV2 = async (
request: CreateMovieProjectV2Request
) => {
return post<ApiResponse<CreateMovieProjectResponse>>(
"/movie/create_movie_project_v2",
request
);
};
/**
* 创建电影项目V3
* @param request - 创建项目请求参数
* @returns Promise<ApiResponse<CreateMovieProjectResponse>>
*/
export const createMovieProjectV3 = async (
request: CreateMovieProjectV3Request
) => {
return post<ApiResponse<CreateMovieProjectResponse>>(
"/movie/create_movie_project_v3",
request
);
};
/**
* 获取电影故事任务详情
* @param taskId - 任务ID
* @returns Promise<ApiResponse<MovieStoryTaskDetail>>
*/
export const getMovieStoryTask = async (taskId: string) => {
return await get<ApiResponse<MovieStoryTaskDetail>>(
`/movie_story/task/${taskId}`
);
};
/**
* Gemini文本转图像生成
* @param request - 文本转图像请求参数
* @returns Promise<GeminiTextToImageResponse>
*/
export const generateGeminiTextToImage = async (
request: GeminiTextToImageRequest
): Promise<GeminiTextToImageResponse> => {
return await post<GeminiTextToImageResponse>(
"/gemini-text-to-image/generate",
request
);
};
/**
* 文本转图像生成
* @param request - 文本转图像请求参数
* @returns Promise<TextToImageResponse>
*/
export const generateTextToImage = async (
request: TextToImageRequest
): Promise<TextToImageResponse> => {
return await post<TextToImageResponse>(
"/text-to-image/draw",
request
);
};