import { apiGet, apiPost } from "@/lib/api/client"; import type { GenerateAudioRequest, GenerateAudioResponse, RenderFinalVideoRequest, RenderFinalVideoResponse, StudyVideoJobRequest, StudyVideoJobResponse, StudyVideoPreviewResponse, VideoRenderJob, VideoRenderListResponse, VideoRenderRequest, VideoRenderStatusResponse, VideoScenePlanRequest, VideoScenePlanResponse, } from "@/lib/api/types"; export async function createVideoScenePlan(payload: VideoScenePlanRequest) { return apiPost( "/video/scene-plan", payload, { timeoutMs: 60000 }, ); } export async function generateVideoAudio(payload: GenerateAudioRequest) { return apiPost( "/video/generate-audio", payload, { timeoutMs: 300000 }, ); } export async function renderFinalVideo(payload: RenderFinalVideoRequest) { return apiPost( "/video/render-final", payload, { timeoutMs: 120000 }, ); } export async function createVideoRenderJob(payload: VideoRenderRequest) { return apiPost( "/video/render-jobs", payload, { timeoutMs: 60000 }, ); } export async function createStudyVideoJob(payload: StudyVideoJobRequest) { return apiPost( "/video/study-video-jobs", payload, { timeoutMs: 60000 }, ); } export async function renderStudyVideoPreview(jobId: string) { return apiPost>( `/video/study-video-jobs/${jobId}/render-preview`, {}, { timeoutMs: 60000 }, ); } export async function getVideoRenderJob(jobId: string) { return apiGet(`/video/render-jobs/${jobId}`); } export async function listVideoRenderJobs(limit = 20) { return apiGet(`/video/render-jobs?limit=${limit}`); } export const getVideoJob = getVideoRenderJob; export const listVideoJobs = listVideoRenderJobs;