import { invoke, convertFileSrc } from '@tauri-apps/api/core';

interface TranscodeResponse {
  code: number;
  message: string;
  data?: string;
}

/**
 * 获取视频预览 URL
 *
 * 后台自动将视频转码为浏览器兼容格式（H.264 Baseline + YUV420p）。
 * 结果按文件路径+大小+修改时间缓存，重复预览时直接返回缓存。
 *
 * @param path 本地视频绝对路径
 * @returns asset:// URL，可直接用于 <video> 标签
 */
export async function getPreviewVideoUrl(path: string): Promise<string> {
  const resp = await invoke<TranscodeResponse>('transcode_for_preview_cmd', {
    request: { path },
  });

  if (resp.code !== 200 || !resp.data) {
    throw new Error(resp.message || '预览视频处理失败');
  }

  return convertFileSrc(resp.data);
}
